CVE-2026-5318LibRaw 是一个广泛用于处理 RAW 图像数据的 C/C++ 库。在 0.22.0 及之前的版本中,该库存在一个安全漏洞。该漏洞位于 JPEG DHT Parser 组件的 `losslessjpeg.cpp` 文件中的 `HuffTable::initval` 函数内。由于对传入参数 `bits[]` 的处理缺乏严格的边界检查,导致攻击者可以通过精心构造的图像数据引发越界写入攻击。此漏洞可以被远程利用,且目前已有公开的利用代码。攻击者诱导受害者打开恶意图像文件即可触发漏洞,可能导致应用程序崩溃或潜在的安全风险。建议用户尽快升级至修复版本。
该漏洞的根源在于 LibRaw 解析 JPEG 格式文件时的 DHT(Define Huffman Table)段处理逻辑。具体而言,`src/decompressors/losslessjpeg.cpp` 中的 `HuffTable::initval` 函数负责初始化哈夫曼表。在处理从文件中读取的 `bits[]` 数组参数时,代码未能充分验证其有效性和长度范围。攻击者可以创建一个特制的 JPEG 文件,其中包含畸形的 DHT 标记,通过操控 `bits[]` 参数的值,使其超出预分配的缓冲区大小。当 LibRaw 尝试解析该文件时,会在堆栈上发生越界写入操作。根据 CVSS 向量分析,虽然主要影响是可用性(A:L),即导致拒绝服务,但在特定内存布局下,越界写入可能进一步导致信息泄露或任意代码执行。由于无需认证且仅需用户交互(如浏览图片),该漏洞具有一定的攻击面。