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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →