CVE-2025-11266CVE-2025-11266是Grassroots DICOM(GDCM)库中的一个高危安全漏洞,CVSS评分6.6,属于中等严重程度。该漏洞是一种越界写入(Out-of-Bounds Write)缺陷,存在于GDCM库解析DICOM医学影像文件的过程中。GDCM是一个开源的DICOM标准实现库,广泛应用于医学影像处理软件、医疗设备和PACS系统中。攻击者可以通过构造恶意的DICOM文件来触发此漏洞。当目标用户打开一个包含畸形PixelData(像素数据)片段的DICOM文件时,GDCM库在解析封装后的像素数据时会发生无符号整数下溢,导致缓冲区索引计算错误。这种计算错误会引起越界内存写入,最终导致程序崩溃(分段错误),造成拒绝服务(DoS)条件。值得注意的是,该漏洞的利用非常简单,无需特殊权限或复杂的攻击条件,用户只需打开恶意文件即可触发漏洞。这使得该漏洞具有较高的实际威胁性,特别是在医疗影像共享和远程诊断场景中。
该漏洞的根本原因在于GDCM库在解析DICOM文件的PixelData标签时存在整数下溢问题。DICOM标准允许将压缩的像素数据存储为多个封装片段(Encapsulated Fragments),每个片段包含长度信息和实际数据。GDCM在处理这些片段时,使用无符号整数进行缓冲区索引计算。当解析畸形的PixelData时,攻击者可以构造特殊的片段长度值,使得无符号整数在减法运算中发生下溢。例如,当计算访问偏移量时,Length - HeaderSize的操作可能导致负值,但由于使用无符号整数表示,结果变成一个极大的正值。这个错误的偏移量被用于内存访问时,就会触发越界写入操作。具体来说,漏洞发生在gdcm::PixmapReader::ReadEncapsulatedPixelData函数或相关的数据解析逻辑中。攻击者精心构造的DICOM文件可以包含:1)异常的片段数量;2)非法的片段长度值;3)不匹配的偏移量计算。这些精心设计的值会导致程序在写入像素数据缓冲区时超出预定边界,最终触发内存访问违规和程序崩溃。由于GDCM通常以较高权限运行在医疗系统上,此漏洞不仅影响终端用户设备,还可能波及整个医疗影像基础设施。