libfdt: Check for multiple/invalid root nodes
It is possible to construct a devicetree blob with multiple root nodes. Update fdt_check_full() to check for this, along with a root node with an invalid name. CVE-2021-27097 Signed-off-by: Simon Glass <sjg@chromium.org> Reported-by: Bruce Monroe <bruce.monroe@intel.com> Reported-by: Arie Haenel <arie.haenel@intel.com> Reported-by: Julien Lenoir <julien.lenoir@intel.com>
This commit is contained in:
@@ -255,7 +255,8 @@ def test_vboot(u_boot_console, sha_algo, padding, sign_options, required,
|
||||
util.run_and_log_expect_exception(
|
||||
cons, [fit_check_sign, '-f', efit, '-k', dtb],
|
||||
1, 'Failed to verify required signature')
|
||||
run_bootm(sha_algo, 'evil fakeroot', 'Bad Data Hash', False, efit)
|
||||
run_bootm(sha_algo, 'evil fakeroot', 'Bad FIT kernel image format',
|
||||
False, efit)
|
||||
|
||||
# Try adding an @ to the kernel node name. This should be detected.
|
||||
efit = '%stest.evilk.fit' % tmpdir
|
||||
|
Reference in New Issue
Block a user