CVE-2025-63675CVE-2025-63675是cryptidy加密库中的一个严重安全漏洞,影响版本至1.2.4。该漏洞位于symmetric_encryption.py文件中的aes_decrypt_message函数,由于使用了不安全的pickle.loads函数对未信任数据进行反序列化,导致攻击者可以在受害者系统上执行任意代码。cryptidy是一个用于对称加密的Python库,提供了AES加密和解密功能,广泛应用于需要数据加密保护的Python应用程序中。该漏洞的危险性在于攻击者只需构造一个恶意的加密数据,当目标系统使用cryptidy库的解密功能处理该数据时,即可触发远程代码执行。CVSS 3.1评分6.9,属于中等严重程度,主要因为攻击复杂度较高(需要本地访问或社工攻击诱骗用户处理恶意加密数据),但一旦成功利用,将对系统机密性和完整性造成严重影响。由于pickle模块本身存在已知的安全风险,禁止对不可信来源的数据进行反序列化操作,因此该漏洞利用门槛相对较低,攻击者可以利用Python pickle反序列化特性执行任意代码。
该漏洞的根本原因在于cryptidy库的symmetric_encryption.py文件中,aes_decrypt_message函数(第220-238行)使用了Python的pickle.loads函数对解密后的数据进行反序列化操作。在正常的加密通信场景中,发送方使用cryptidy库对数据进行加密传输,接收方使用同一库进行解密。然而,如果攻击者能够控制或替换加密数据(中间人攻击),或者诱骗受害者解密攻击者提供的恶意数据,就可以在解密过程中触发代码执行。具体攻击原理如下:攻击者首先构造一个包含恶意Python代码的pickle序列化对象,然后使用cryptidy库提供的加密功能对该对象进行加密,生成恶意的加密数据。当受害者使用aes_decrypt_message函数解密该数据时,pickle.loads会反序列化恶意对象,从而执行攻击者预先植入的代码。由于pickle的反序列化机制支持任意对象重建,攻击者可以构造任意命令执行、文件读写或网络连接等恶意操作。该漏洞属于典型的反序列化漏洞,与著名的Python pickle反序列化漏洞(如CVE-2011-2523等)具有相同的攻击模式。