:: commit 5df9958154577f0acfe3421103b6c02204a9c3cf

Mintsuki <mintsuki@protonmail.com> — 2026-04-02 17:22

parents: dd2354bae9

lib/pe: Validate SizeOfOptionalHeader is large enough

diff --git a/common/lib/pe.c b/common/lib/pe.c
index 80ba4af7..d1e6a58e 100644
--- a/common/lib/pe.c
+++ b/common/lib/pe.c
@@ -183,6 +183,10 @@ static void pe64_validate(uint8_t *image, size_t file_size) {
         panic(true, "pe: Not a valid PE32+ file");
     }
 
+    if (nt_hdrs->FileHeader.SizeOfOptionalHeader < sizeof(IMAGE_OPTIONAL_HEADER64)) {
+        panic(true, "pe: SizeOfOptionalHeader too small");
+    }
+
 #if defined(__x86_64__) || defined(__i386__)
     if (nt_hdrs->FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) {
         panic(true, "pe: Not an x86-64 PE file");
tab: 248 wrap: offon