by default, "ezjail-admin install" will download and install release tarballs fetched via FTP without verifying their integrity. If an FTP mirror is compromised or a man-in-the-middle attack is conducted this will allow an attacker to execute arbitrary code within the jail.
I'm aware of the option to have ezjail-admin use files from a local directory instead and am using this myself. Still, I believe the default should not result in the above situation particularly since the handbook recommends ezjail to novice users.
That said, I'm not sure how to implement this feature in FreeBSD. The .asc release announcements are signed and include checksums of all release artifacts. If the GPG public keys used for signing this .asc were installed on the host one could at least ensure that the downloaded files are as genuine as the host OS. If the user has verified the installation media used for the host OS a proper chain of trust would be established. This is how some Linux distributions (Debian) and OpenBSD have addressed this problem. Unfortunately, FreeBSD does not appear to ship the signing public keys as part of the released images.
At a minimum, ezjail should include a list of trusted checksums as part of the port/package. This does, however, put the burden of verifying this list and keeping it up to date on the maintainer.
I'm currently working on just using "bsdinstall jail" to do the heavy lifting for me. Your issue should just go away, then.
Thanks for the quick reply! I'm glad to hear you're actively working on ezjail again!
As for "bsdinstall jail", does it actually check any signatures?
If I read its source code correctly it appears that it first fetches the MANIFEST file, then the base.txz listed therein as well as any additional distribution files selected by the user, and finally computes the SHA256 checksums of the downloaded files which are then compared against the checksums from the MANIFEST.
The MANIFEST file is not signed. Thus, this will only prevent accidental corruption of files in transit. It doesn't provide any protection against malicious tampering, does it?
what is the current status?
Does ports-secteam have to be active here?