LXD uses privileged containers, though - this exposes a lot more attack surface, since uid 0 inside the container equals uid 0 outside.
> By default containers are unprivileged […]
https://linuxcontainers.org/lxd/docs/master/security/#contai...
As for LXC:
> LXC containers can be of two kinds:
> - Privileged containers
> - Unprivileged containers
> […]
> The latter has been introduced back in LXC 1.0 (February 2014) […]