{"id":"CVE-2026-39855","summary":"osslsigncode has an Integer Underflow in PE Page Hash Calculation Can Cause Out-of-Bounds Read","details":"osslsigncode is a tool that implements Authenticode signing and timestamping. Prior to 2.13, an integer underflow vulnerability exists in osslsigncode version 2.12 and earlier in the PE page-hash computation code (pe_page_hash_calc()). When page hash processing is performed on a PE file, the function subtracts hdrsize from pagesize without first validating that pagesize \u003e= hdrsize. If a malicious PE file sets SizeOfHeaders (hdrsize) larger than SectionAlignment (pagesize), the subtraction underflows and produces a very large unsigned length. The code allocates a zero-filled buffer of pagesize bytes and then attempts to hash pagesize - hdrsize bytes from that buffer. After the underflow, this results in an out-of-bounds read from the heap and can crash 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. This vulnerability is fixed in 2.13.","aliases":["GHSA-76vv-x5rr-q3mr"],"modified":"2026-07-08T08:13:06.037694381Z","published":"2026-04-09T15:58:38.559Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39855.json","cwe_ids":["CWE-125","CWE-190","CWE-191"],"cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/mtrojnar/osslsigncode/releases/tag/2.13"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39855.json"},{"type":"ADVISORY","url":"https://github.com/mtrojnar/osslsigncode/security/advisories/GHSA-76vv-x5rr-q3mr"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-39855"},{"type":"FIX","url":"https://github.com/mtrojnar/osslsigncode/commit/2a5409b7c4b6c6fad2b093531e8fea6cf08e1568"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/mtrojnar/osslsigncode","events":[{"introduced":"0"},{"fixed":"97a9ade6ec71c4dd41e199079643465af3ee6096"},{"fixed":"2a5409b7c4b6c6fad2b093531e8fea6cf08e1568"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:osslsigncode_project:osslsigncode:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"0"},{"fixed":"2.13"}]}}],"versions":["2.12","2.11","2.10","2.9","2.8","2.7","2.6","2.5","2.4","2.3","2.2","2.1","2.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-39855.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"}]}