CVE-2026-5439Orthanc服务器在处理ZIP归档时存在严重的内存耗尽漏洞。由于系统在自动解压上传的ZIP文件时,未经验证直接信任归档元数据中的未压缩文件大小字段,攻击者可利用该缺陷构造特制的恶意ZIP文件。该文件包含一个极小的实际数据量,却声明了巨大的解压后大小。当Orthanc尝试解压此类文件时,会根据伪造的大小值尝试分配巨大的内存缓冲区,导致服务器资源耗尽,从而引发拒绝服务攻击。
该漏洞的核心在于ZIP文件解析逻辑中的信任边界问题。Orthanc在接收到ZIP归档后,会读取文件头中的Uncompressed Size字段。在常规的ZIP处理流程中,该字段用于指示解压后的数据大小,以便接收方分配适当的内存缓冲区。然而,Orthanc的实现缺乏对此字段数值的合理性校验,例如检查其是否超过预设阈值或远大于实际压缩包大小。攻击者可以利用Python脚本或十六进制编辑器修改ZIP文件的局部文件头,将一个极小文件的Uncompressed Size字段修改为极大值(如4GB)。当Orthanc服务器处理此文件时,会尝试通过malloc或类似函数申请分配该大小的内存块。由于该请求远超系统可用内存,导致操作系统内存耗尽,触发OOM Killer机制终止Orthanc进程,导致服务中断。由于该漏洞无需认证且无需用户交互,攻击门槛极低。