Skip to content

Extend rbran's parser robustness fixes with file-backed bounds and configurable limits (PE)#8357

Open
Weitao-Sun wants to merge 3 commits into
devfrom
test_fuzz-pe
Open

Extend rbran's parser robustness fixes with file-backed bounds and configurable limits (PE)#8357
Weitao-Sun wants to merge 3 commits into
devfrom
test_fuzz-pe

Conversation

@Weitao-Sun

Copy link
Copy Markdown

Summary

Split out from #8303 per review feedback, containing the PE portion only. (Mach-O is being merged in #8303; ELF is a separate PR.)

Builds on rbran's parser robustness fixes with the following improvements:

  • PEView::Init: fixes a divide-by-zero FPE and adds a loop guard against malformed import directory data.
  • Adds IsRVARangeBackedByFile, which resolves and validates every RVA in a range independently (each byte finds its own containing section), rather than resolving only the first RVA's section and checking just the first/last byte — which could give a wrong answer if the range crosses a section boundary.
  • The import lookup table loop's section-derived bound now also validates that the section's declared raw-data extent doesn't exceed the file's actual length.

rbran and others added 3 commits July 22, 2026 17:11
Replace magic-number loop guards in import directory and import lookup
table parsing with section-backed bounds. Add IsRVARangeBackedByFile
helper that validates every byte in the given RVA range resolves to a
file-backed offset, rather than only its two endpoints, and guard the
import lookup table's section-derived bound against a section header
that declares more raw data than the file actually contains.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants