Update dependency nltk to v3.9.4 [SECURITY]#36
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Conversation
442d1e3 to
841c33b
Compare
841c33b to
ec678d6
Compare
ec678d6 to
52b136e
Compare
52b136e to
e955bd1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==3.6.6→==3.9.4ntlk unsafe deserialization vulnerability
CVE-2024-39705 / GHSA-cgvx-9447-vcch
More information
Details
NLTK through 3.8.1 allows remote code execution if untrusted packages have pickled Python code, and the integrated data package download functionality is used. This affects, for example, averaged_perceptron_tagger and punkt.
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
NLTK has a Zip Slip Vulnerability
CVE-2025-14009 / GHSA-7p94-766c-hgjp
More information
Details
A critical vulnerability exists in the NLTK downloader component of nltk/nltk, affecting all versions. The _unzip_iter function in nltk/downloader.py uses zipfile.extractall() without performing path validation or security checks. This allows attackers to craft malicious zip packages that, when downloaded and extracted by NLTK, can execute arbitrary code. The vulnerability arises because NLTK assumes all downloaded packages are trusted and extracts them without validation. If a malicious package contains Python files, such as init.py, these files are executed automatically upon import, leading to remote code execution. This issue can result in full system compromise, including file system access, network access, and potential persistence mechanisms.
Severity
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in nltk
CVE-2026-33230 / GHSA-gfwx-w7gr-fvh7
More information
Details
Summary
nltk.app.wordnet_appcontains a reflected cross-site scripting issue in thelookup_...route. A craftedlookup_<payload>URL can inject arbitrary HTML/JavaScript into the response page because attacker-controlledworddata is reflected into HTML without escaping. This impacts users running the local WordNet Browser server and can lead to script execution in the browser origin of that application.Details
The vulnerable flow is in
nltk/app/wordnet_app.py:nltk/app/wordnet_app.py:144lookup_are handled as HTML responses:page, word = page_from_href(sp)nltk/app/wordnet_app.py:755page_from_href()callspage_from_reference(Reference.decode(href))nltk/app/wordnet_app.py:769word = href.wordnltk/app/wordnet_app.py:796wordis inserted directly into the HTML body:body = "The word or words '%s' were not found in the dictionary." % wordThis is inconsistent with the
searchroute, which does escape user input:nltk/app/wordnet_app.py:136word = html.escape(...)As a result, a malicious
lookup_...payload can inject script into the response page.The issue is exploitable because:
Reference.decode()accepts attacker-controlled base64-encoded pickle data for the URL state.wordis reflected into HTML withouthtml.escape().HTTPServer(("", port), MyServerHandler), so it listens on all interfaces by default, not justlocalhost.PoC
docker run -d --name nltk-wordnet-web -p 8002:8002 \ nltk-sandbox \ python -c "import nltk; nltk.download('wordnet', quiet=True); from nltk.app.wordnet_app import wnb; wnb(8002, False)"("<script>alert(1)</script>", {})Encoded payload:
curl -s "http://127.0.0.1:8002/lookup_gAWVIQAAAAAAAACMGTxzY3JpcHQ-YWxlcnQoMSk8L3NjcmlwdD6UfZSGlC4="I also validated the issue directly at function level in Docker:
Observed output:
Impact
This is a reflected XSS issue in the NLTK WordNet Browser web UI.
An attacker who can convince a user to open a crafted
lookup_...URL can execute arbitrary JavaScript in the origin of the local WordNet Browser application. This can be used to:This primarily impacts users who run
nltk.app.wordnet_appas a local or self-hosted HTTP service and open attacker-controlled links.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
NLTK has Arbitrary File Read via Absolute Path Input in nltk.util.filestring()
CVE-2026-0846 / GHSA-h8wq-7xc4-p3qx
More information
Details
A vulnerability in the
filestring()function of thenltk.utilmodule in nltk version 3.9.2 allows arbitrary file read due to improper validation of input paths. The function directly opens files specified by user input without sanitization, enabling attackers to access sensitive system files by providing absolute paths or traversal paths. This vulnerability can be exploited locally or remotely, particularly in scenarios where the function is used in web APIs or other interfaces that accept user-supplied input.Severity
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
nltk/nltk (nltk)
v3.9.4Compare Source
v3.9.3Compare Source
v3.9.2Compare Source
v3.9.1Compare Source
v3.9Compare Source
v3.8.1Compare Source
v3.8Compare Source
v3.7Compare Source
v3.6.7Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.