CVE-2026-39856osslsigncode 2.12及更早版本中存在越界读取漏洞。该漏洞位于PE页面哈希计算代码中,由于未验证PE节头中的PointerToRawData和SizeOfRawData是否指向文件有效范围内,攻击者可利用特制PE文件触发漏洞,在签名或验证过程中导致进程崩溃,从而影响系统可用性。
该漏洞的技术根源在于osslsigncode工具中的pe_page_hash_calc()函数缺乏有效的边界检查机制。当工具处理PE文件以计算页面哈希时,该函数从PE节头中提取PointerToRawData和SizeOfRawData字段,并直接将其用于内存映射区域的寻址,未验证这些偏移量和大小是否超出了实际文件映射的范围。攻击者可以通过修改PE文件的节头结构,将PointerToRawData设置为一个极大的值,使其指向文件末尾之外。当osslsigncode尝试对这类文件进行签名(特别是启用-ph参数时)或验证包含页面哈希的已签名文件时,程序会尝试访问非法内存地址,导致段错误和进程崩溃。