CVE-2026-5444Orthanc服务器在处理DICOM文件中嵌入的PAM图像时存在严重的堆缓冲区溢出漏洞。该漏洞源于对图像尺寸计算的不当处理。攻击者可利用精心构造的图像宽高值,在32位无符号算术计算中触发整数溢出。这导致程序错误地分配了一个极小的缓冲区,而在后续的像素处理过程中,程序仍按原始大尺寸向该缓冲区写入大量数据,从而引发严重的堆溢出。该漏洞可能导致应用程序崩溃或任意代码执行,对系统的完整性和可用性造成严重影响。
漏洞根源位于Orthanc服务器的PAM图像解析逻辑之中,具体触发场景为处理嵌入了恶意PAM图像的DICOM文件。在解析过程中,程序需要根据图像的宽度、高度和颜色深度计算所需缓冲区的大小,此处使用了不安全的32位无符号整数乘法运算。攻击者可以构造特殊的图像头信息,例如将宽度和高度设置为极大的数值,使得它们的乘积在32位空间内发生整数溢出,回绕为一个极小的正整数。程序随后基于这个溢出后的错误值分配内存,导致缓冲区大小严重不足。然而,后续的像素数据处理循环并未检测此异常,仍依据原始的巨大尺寸参数进行数据写入操作。这种“分配小、写入大”的不匹配导致了严重的堆缓冲区溢出,攻击者可利用此漏洞破坏堆结构,进而可能实现拒绝服务攻击或远程代码执行。