CVE-2022-4981CVE-2022-4981是DCMTK(OFFIS DICOM Toolkit)医疗影像通信库中的一个空指针解引用漏洞。该漏洞存在于DCMTK 3.6.7及以下版本中,影响组件dcmqrscp(DICOM Query/Retrieve Service Class Provider)的DcmQueryRetrieveConfig::readPeerList函数,具体位于/dcmqrcnf.cc文件中。攻击者可以通过精心构造的输入操纵该函数,导致空指针解引用,从而触发程序崩溃或拒绝服务。该漏洞的CVSS 3.1评分为3.3分,属于低危级别。攻击者需要本地访问权限和低权限账户即可发起攻击,无需用户交互。该漏洞的利用代码已公开披露,可能被恶意攻击者利用。官方已发布补丁(commit 957fb31e5),建议用户升级到DCMTK 3.6.8版本以修复此漏洞。DCMTK作为广泛使用的开源DICOM(医学数字成像和通信)标准实现库,被大量医疗信息系统(PACS、HIS等)所采用,因此该漏洞可能影响众多医疗影像应用的安全性。
该漏洞的根本原因在于DcmQueryRetrieveConfig::readPeerList函数在处理对等节点列表(peer list)配置时,未对关键指针或资源进行有效性验证。当函数接收到特定构造的配置数据时,可能导致对空指针的解引用操作,从而触发未定义行为。
具体技术细节如下:
1. 漏洞位置:/dcmqrcnf.cc文件中的DcmQueryRetrieveConfig::readPeerList函数
2. 触发条件:本地攻击者通过修改DCMTK的配置文件(如dcmqrscp.cfg)或传入特制的对等节点列表数据
3. 漏洞原理:函数在解析对等节点列表时,未对返回的指针或对象进行空值检查,直接进行解引用操作
4. 攻击向量:本地攻击(AV:L),需要低权限(PR:L),无需用户交互(UI:N)
5. 影响范围:机密性无影响(C:N),完整性无影响(I:N),可用性低影响(A:L)
利用方式:攻击者需要在目标系统上拥有本地访问权限,通过构造特殊的配置文件或命令行参数,触发readPeerList函数中的空指针解引用路径。攻击成功将导致dcmqrscp服务进程崩溃,造成拒绝服务攻击。由于该漏洞利用代码已公开,攻击门槛进一步降低。