CVE-2025-13837CVE-2025-13837是Python标准库中plistlib模块的一个拒绝服务漏洞。该漏洞由于plistlib模块在解析plist文件时,根据文件本身指定的字节大小来分配内存进行数据读取,存在严重的安全隐患。攻击者可以精心构造一个恶意的plist文件,通过在文件中声明一个巨大的数据大小值,诱导plistlib模块分配超出实际需要的内存资源,从而导致目标系统发生内存耗尽(OOM)情况,最终造成拒绝服务(DoS)攻击。此漏洞影响所有使用Python plistlib模块解析不可信来源plist文件的应用程序。由于攻击向量为本地(AV:L)且需要用户交互(UI:R),攻击复杂度相对较高,但仍需引起重视。CVSS评分5.5,属于中等严重程度,主要影响系统的可用性。
Python的plistlib模块用于解析和生成Apple的plist格式文件。在解析过程中,模块会根据plist文件中嵌入的size字段来分配内存缓冲区以读取数据。攻击者可以通过构造一个恶意的plist文件,在size字段中指定一个极大的数值(例如数GB的大小),使得plistlib模块在解析时尝试分配巨大的内存空间。当系统无法满足如此大量的内存分配请求时,会触发MemoryError异常,导致应用程序崩溃或系统变得极不稳定。这种攻击方式利用了程序对输入数据信任的特性,属于典型的整数溢出/内存分配漏洞的变体。攻击成功的关键在于:1)目标系统使用存在漏洞的plistlib版本;2)攻击者能够诱使目标用户或系统加载恶意plist文件;3)系统可用内存不足以应对恶意分配请求。修复方案通常是在分配内存前对size值进行合理性校验,设置内存分配上限。