:: commit 8a7e0735814ac9eb2ff9821d313d4acca683d0b8

Mintsuki <mintsuki@protonmail.com> — 2026-02-08 12:37

parents: f786744b1e

lib/pe: Validate OptionalHeader.Magic against PE32+ before parsing

diff --git a/common/lib/pe.c b/common/lib/pe.c
index 7273a654..967c62ae 100644
--- a/common/lib/pe.c
+++ b/common/lib/pe.c
@@ -179,6 +179,10 @@ static void pe64_validate(uint8_t *image, size_t file_size) {
         panic(true, "pe: Not a valid PE file");
     }
 
+    if (nt_hdrs->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
+        panic(true, "pe: Not a valid PE32+ file");
+    }
+
 #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