]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
libsecureboot do not report expected unverified files
authorSimon J. Gerraty <sjg@FreeBSD.org>
Mon, 12 Feb 2024 22:35:01 +0000 (14:35 -0800)
committerSimon J. Gerraty <sjg@FreeBSD.org>
Mon, 12 Feb 2024 22:35:01 +0000 (14:35 -0800)
commitf616d61ab6b071e5fbfdbae7033a9ef04c1444ad
tree47edbc56733109d8f3552b3ac2247120e5304f8a
parent57e27ff07aff35289892f79288bebf76a3c31fec
libsecureboot do not report expected unverified files

By default only report unverified files at severity VE_WANT
and above.  This inlcudes *.conf but not *.hints, *.cookie
or *.tgz which get VE_TRY as their severity.

If Verbose is set to 0, then VerifyFlags should default to 0 too.
Thus the combination of

module_verbose=0
VE_VEBOSE=0

is sufficient to make the loader almost totally silent.

When verify_prep has to find_manifest and it is verified ok
return VE_NOT_CHECKED to verify_file so that it can skip
repeating verify_fd

Also add better debugging output for is_verified and add_verify_status.

vectx handle compressed modules

When verifying a compressed module (.ko.gz or .ko.bz2)
stat() reports the size as -1 (unknown).
vectx_lseek needs to spot this during closing - and just read until
EOF is hit.

Note: because of the way libsa's open() works, verify_prep will see
the path to be verified as module.ko not module.ko.bz2 etc.  This is
actually ok, because we need a separate module.ko.bz2 entry so that
the package can be verified, and the hash for module.ko is of the
uncompressed file which is what vectx will see.

Re-work local.trust.mk so site.trust.mk need only set
VE_SIGN_URL_LIST (if using the mentioned signing server)

interp.c: restrict interactive input

Apply the same restrictions to interactive input as for
unverified conf and hints files.

Use version.veriexec when LOADER_VERIEXEC is yes

Reviewed by: kevans
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D43810
lib/libsecureboot/Makefile.inc
lib/libsecureboot/Makefile.libsa.inc
lib/libsecureboot/h/verify_file.h
lib/libsecureboot/local.trust.mk
lib/libsecureboot/vectx.c
lib/libsecureboot/verify_file.c
stand/common/interp.c
stand/efi/loader/version.veriexec [new file with mode: 0644]
stand/veriexec.mk