CVE-2026-78683: NLTK: Unsafe Pickle Deserialization in TransitionParser Allows Remote Code Execution
The NLTK library’s TransitionParser.parse() method deserializes model files using pickle_load() with the default restricted=False parameter, allowing arbitrary Python code execution when loading a malicious model file. The library provides a RestrictedUnpickler class for safe deserialization, but it is never used by production code paths, leaving the vulnerability unpatched.
References
- github.com/advisories/GHSA-rhp5-r9x4-f5g2
- github.com/nltk/nltk/commit/f26b3753038d937b68145daf15e9636f8451053c
- github.com/nltk/nltk/pull/3631
- github.com/nltk/nltk/releases/tag/v3.10.0
- github.com/nltk/nltk/security/advisories/GHSA-rhp5-r9x4-f5g2
- github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2026-3734.yaml
- nvd.nist.gov/vuln/detail/CVE-2026-78683
- www.vulncheck.com/advisories/nltk-before-remote-code-execution-via-unsafe-pickle-deserialization
Code Behaviors & Features
Detect and mitigate CVE-2026-78683 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →