Description
An out-of-bounds read vulnerability exists in osslsigncode version 2.12 and earlier in the PE page-hash computation code (pe_page_hash_calc()). When processing PE sections for page hashing, the function uses PointerToRawData and SizeOfRawData values from section headers without validating that the referenced region lies within the mapped file.
An attacker can craft a PE file with section headers that point beyond the end of the file. When osslsigncode computes page hashes for such a file, it may attempt to hash data from an invalid memory region, causing an out-of-bounds read and potentially crashing the process.
The vulnerability can be triggered while signing a malicious PE file with page hashing enabled (-ph), or while verifying a malicious signed PE file that already contains page hashes. Verification of an already signed file does not require the verifier to pass -ph.
Impact
- Denial of Service: Application crash due to an out-of-bounds read during PE page-hash processing
This report should not claim confirmed high-severity confidentiality impact. The reviewed code supports a crash scenario, but it does not by itself demonstrate a reliable memory disclosure channel.
Notes
A proof-of-concept trigger is reported to exist. The upstream 2.13 release groups this issue with other PE page-hash memory corruption fixes.
Fixed in version 2.13: https://github.com/mtrojnar/osslsigncode/releases/tag/2.13
Description
An out-of-bounds read vulnerability exists in osslsigncode version 2.12 and earlier in the PE page-hash computation code (
pe_page_hash_calc()). When processing PE sections for page hashing, the function usesPointerToRawDataandSizeOfRawDatavalues from section headers without validating that the referenced region lies within the mapped file.An attacker can craft a PE file with section headers that point beyond the end of the file. When osslsigncode computes page hashes for such a file, it may attempt to hash data from an invalid memory region, causing an out-of-bounds read and potentially crashing the process.
The vulnerability can be triggered while signing a malicious PE file with page hashing enabled (
-ph), or while verifying a malicious signed PE file that already contains page hashes. Verification of an already signed file does not require the verifier to pass-ph.Impact
This report should not claim confirmed high-severity confidentiality impact. The reviewed code supports a crash scenario, but it does not by itself demonstrate a reliable memory disclosure channel.
Notes
A proof-of-concept trigger is reported to exist. The upstream 2.13 release groups this issue with other PE page-hash memory corruption fixes.
Fixed in version 2.13: https://github.com/mtrojnar/osslsigncode/releases/tag/2.13