CVE-2025-13708CVE-2025-13708是腾讯开源项目NeuralNLP-NeuralClassifier中的一个高危安全漏洞,CVSS评分达到7.8。该漏洞属于不安全反序列化(Deserialization of Untrusted Data)类型,存在于_load_checkpoint函数中。攻击者可以通过构造恶意的序列化数据,在目标系统上执行任意代码。由于该漏洞需要用户交互才能触发(目标用户需访问恶意页面或打开恶意文件),因此属于本地攻击向量但可导致远程代码执行的效果。漏洞影响系统的机密性、完整性和可用性,攻击成功后可获得root权限级别的代码执行能力。此漏洞由趋势科技ZDI(Zero Day Initiative)披露,编号为ZDI-CAN-27184。NeuralNLP-NeuralClassifier是腾讯开源的自然语言处理工具包,广泛应用于文本分类、情感分析等NLP任务,企业用户需及时采取防护措施。
该漏洞的根本原因在于_load_checkpoint函数缺乏对用户提供的序列化数据的安全验证。NeuralNLP-NeuralClassifier在加载模型检查点时使用了pickle模块进行反序列化操作,而pickle在反序列化时不会验证数据来源的合法性。攻击者可以通过构造包含恶意__reduce__()方法的Python对象序列化数据,当应用程序调用_load_checkpoint加载这些恶意检查点文件时,反序列化过程会自动执行攻击者预设的代码。具体利用方式为:攻击者创建一个包含恶意序列化对象的checkpoint文件,诱导用户加载该文件。由于_load_checkpoint直接使用pickle.load()进行反序列化,且没有任何签名验证或数据校验机制,攻击代码将以应用程序运行权限执行。在NLP模型的训练和推理场景中,检查点文件的加载是常见操作,这使得漏洞具有较高的实际利用价值。修复方案应采用安全的序列化格式(如JSON、MessagePack)或实现pickle签名验证机制。