summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2022-08-01 15:04:44 -0700
committerJulius Werner <jwerner@chromium.org>2022-09-03 00:41:33 +0000
commit39914a50ae16756262b29b35a2142b9833680b6b (patch)
tree6f9013d2323c4a20ad42bfb55c27b4aafdd45da6
parentd96ca2465227f29354b41ce2ea7a17f1c5b8f1c1 (diff)
downloadcoreboot-39914a50ae16756262b29b35a2142b9833680b6b.tar.gz
coreboot-39914a50ae16756262b29b35a2142b9833680b6b.tar.bz2
coreboot-39914a50ae16756262b29b35a2142b9833680b6b.zip
soc/intel: Add SI_DESC region to GSCVD ranges
Intel platforms have soft straps stored in the SI_DESC FMAP section which can alter boot behavior and may open up a security risk if they can be modified by an attacker. This patch adds the SI_DESC region to the list of ranges covered by GSC verification (CONFIG_VBOOT_GSCVD). Signed-off-by: Julius Werner <jwerner@chromium.org> Change-Id: I0f1b297e207d3c6152bf99ec5a5b0983f01b2d0b Reviewed-on: https://review.coreboot.org/c/coreboot/+/66346 Reviewed-by: Yu-Ping Wu <yupingso@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/security/vboot/Makefile.inc2
-rw-r--r--src/soc/intel/common/Makefile.inc9
2 files changed, 11 insertions, 0 deletions
diff --git a/src/security/vboot/Makefile.inc b/src/security/vboot/Makefile.inc
index faa79cb18319..d38fbace4980 100644
--- a/src/security/vboot/Makefile.inc
+++ b/src/security/vboot/Makefile.inc
@@ -292,6 +292,8 @@ endif
fmap-section-offset-cmd = $(FUTILITY) dump_fmap -p $(obj)/coreboot.rom | \
grep '^$(1) ' | cut '-d ' -f2
+fmap-section-size-cmd = $(FUTILITY) dump_fmap -p $(obj)/coreboot.rom | \
+ grep '^$(1) ' | cut '-d ' -f3
ifeq ($(CONFIG_VBOOT_GSCVD),y)
#
diff --git a/src/soc/intel/common/Makefile.inc b/src/soc/intel/common/Makefile.inc
index 43fc2f8146b3..28842da0ba7c 100644
--- a/src/soc/intel/common/Makefile.inc
+++ b/src/soc/intel/common/Makefile.inc
@@ -68,4 +68,13 @@ $(foreach mma_test, $(MMA_TEST_CONFIG_NAMES),\
endif
+# SI_DESC contains soft straps that may modify security-relevant behavior, so it should be
+# verified by GSCVD.
+vboot-gscvd-ranges += $(shell ( \
+ offset=$$($(call fmap-section-offset-cmd,SI_DESC)) ;\
+ if [ -n "$$offset" ]; then \
+ printf "%x:%x" $$offset $$($(call fmap-section-size-cmd,SI_DESC)) ;\
+ fi ;\
+))
+
endif