# CVE-2026-62384: NLTK FramenetCorpusReader symlink sandbox bypass

Source: https://junglewise.ai/threats/cve-2026-62384-nltk-framenetcorpusreader-symlink-sandbox-bypass  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-22. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-62384 · Severity: high · CVSS 7.5 · Published 2026-08-22

NLTK's FramenetCorpusReader is a library component for parsing linguistic corpus data. An attacker who can place a symlink inside a shared or multi-tenant corpus directory can exploit a gap in the path validation logic to read arbitrary XML files outside the intended corpus root, exposing sensitive data to other users or applications on the system.

Technologies: [nltk (PyPI)](https://junglewise.ai/threats/technologies/nltk). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-62384 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-62384 being exploited in the wild.

**How severe is CVE-2026-62384?** High severity, with a CVSS score of 7.5, published 22 August 2026.

**Which products and versions are affected?** nltk (PyPI) >= 3.10.0, < 3.10.2, ECOSYSTEM:introduced=3.10.0,fixed=3.10.2.

**Is there a fix for CVE-2026-62384?** Yes. nltk (PyPI): upgrade to 3.10.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-62384 attacked?** It is attacked with local access or from the adjacent network, in a software library.

**Am I affected by CVE-2026-62384?** Check whether you run nltk (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- nltk (PyPI): upgrade to 3.10.2 or later

  ```sh
  pip install "nltk>=3.10.2"
  ```


## Technical details

The vulnerability is a symlink-based sandbox bypass in the FramenetCorpusReader class (nltk/corpus/reader/framenet.py). The underlying issue is that a prior fix (for CVE-2026-54292) added _reject_unsafe_path_component() to block path traversal patterns (/, \, .., drive letters), but the three vulnerable call sites (frame_by_name, _lu_file, doc) still use self.abspath() for lexical path joining rather than the symlink-resolving, scope-checked CorpusReader.open() method used elsewhere. A symlink placed in a corpus subdirectory with a name containing no separators passes the guard and allows reading arbitrary files when followed. No user interaction or special preconditions are required beyond access to place a symlink in a shared corpus directory—a scenario explicitly named in NLTK's threat model. The fix is to route these three call sites through CorpusReader.open() or pass required_root to validate_path() directly, as the related NKJPCorpusReader already does.

## Affected products

- NLTK NLTK >= 3.10.0, < 3.10.2

## Identifiers

- CVE-2026-62384
- GHSA-f833-7jw8-xwrv
- PYSEC-2026-3789

## Timeline

- 2026-09-08: disclosed: GHSA-f833-7jw8-xwrv published
- 2026-09-08: patched: Fixed in NLTK 3.10.2 (commit 736d3212a47de2005b85b785dde6720556d3925d)

## References

- [https://api.github.com/users/LiteshGhute](https://api.github.com/users/LiteshGhute)
- [https://github.com/LiteshGhute](https://github.com/LiteshGhute)
- [https://api.github.com/users/LiteshGhute/gists%7B/gist_id%7D](https://api.github.com/users/LiteshGhute/gists%7B/gist_id%7D)
- [https://api.github.com/users/LiteshGhute/repos](https://api.github.com/users/LiteshGhute/repos)
- [https://avatars.githubusercontent.com/u/61110758?v=4](https://avatars.githubusercontent.com/u/61110758?v=4)
- [https://api.github.com/users/LiteshGhute/events%7B/privacy%7D](https://api.github.com/users/LiteshGhute/events%7B/privacy%7D)

## Related threats

- [NLTK WekaClassifier path traversal in model validation](https://junglewise.ai/threats/cve-2026-109956-nltk-through-3-10-3-contains-a-path-traversal-vulnerability-in)
- [NLTK RecursiveDescentParser uncontrolled recursion denial of service](https://junglewise.ai/threats/cve-2026-12876-nltk-recursivedescentparser-uncontrolled-recursion-denial-of)
- [NLTK tgrep regular expression denial of service](https://junglewise.ai/threats/nltk-tgrep-regular-expression-denial-of-service-02fca1b2)
- [NLTK Downloader hardlink filesystem containment bypass](https://junglewise.ai/threats/nltk-downloader-hardlink-filesystem-containment-bypass-522cb97d)
- [NLTK Pl196xCorpusReader quadratic ReDoS on malformed TEI blocks](https://junglewise.ai/threats/nltk-pl196xcorpusreader-quadratic-redos-on-malformed-tei-blocks-8473e6ef)
