CVE-2019-14751
NLTK Vulnerable To Path Traversal
CVE-2019-14751 is a high vulnerability (CVSS 7.5) in Nltk, published August 20, 2019. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 5.67%, the 92nd percentile. Fixed in nltk 3.4.5.
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.5
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
CVE-2019-14751- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:P/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
CVE List No score
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
CVE-2019-14751- Updated
- 2026-11-02
EUVDEUVD-2019-0091 No score
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
EUVD-2019-0091- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-mr7p-25v2-35wr
8.7
NLTK Vulnerable To Path Traversal
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
GHSA-mr7p-25v2-35wr- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
7.5
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
CVE-2019-14751- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2019-14751
7.5
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
DEBIAN-CVE-2019-14751- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 11 moreShow less
OSVGHSA-mr7p-25v2-35wr
8.7
NLTK Vulnerable To Path Traversal
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
GHSA-mr7p-25v2-35wr- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2019-14751
7.5
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
UBUNTU-CVE-2019-14751- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVMGASA-2020-0160 No score
Updated python-nltk packages fix security vulnerability
Updated python-ntlk package fixes security vulnerability:
A vulnerability was found in NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ in an NLTK package (ZIP archive) that is mishandled during extraction (CVE-2019-14751).
- Record
MGASA-2020-0160- Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0436-1 No score
Security update for python-nltk
This update for python-nltk fixes the following issues:
Update to 3.4.5 (boo#1146427, CVE-2019-14751):
- CVE-2019-14751: Fixed Zip slip vulnerability in downloader for the unlikely situation where a user configures their downloader to use a compromised server (boo#1146427)
Update to 3.4.4:
- fix bug in plot function (probability.py)
- add improved PanLex Swadesh corpus reader
- add Text.generate()
- add QuadgramAssocMeasures
- add SSP to tokenizers
- return confidence of best tag from AveragedPerceptron
- make plot methods return Axes objects
- don't require list arguments to PositiveNaiveBayesClassifier.train
- fix Tree classes to work with native Python copy library
- fix inconsistency for NomBank
- fix random seeding in LanguageModel.generate
- fix ConditionalFreqDist mutation on tabulate/plot call
- fix broken links in documentation
- fix misc Wordnet issues
- update installation instructions
Version update to 3.4.1:
- add chomsky_normal_form for CFGs
- add meteor score
- add minimum edit/Levenshtein distance based alignment function
- allow access to collocation list via text.collocation_list()
- support corenlp server options
- drop support for Python 3.4
- other minor fixes
Update to v3.4:
- Support Python 3.7
- New Language Modeling package
- Cistem Stemmer for German
- Support Russian National Corpus incl POS tag model
- Krippendorf Alpha inter-rater reliability test
- Comprehensive code clean-ups
- Switch continuous integration from Jenkins to Travis
Updated to v3.3:
- Support Python 3.6
- New interface to CoreNLP
- Support synset retrieval by sense key
- Minor fixes to CoNLL Corpus Reader
- AlignedSent
- Fixed minor inconsistencies in APIs and API documentation
- Better conformance to PEP8
- Drop Moses Tokenizer (incompatible license)
- Record
openSUSE-SU-2020:0436-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0440-1 No score
Security update for python-nltk
This update for python-nltk fixes the following issues:
Update to 3.4.5 (boo#1146427, CVE-2019-14751):
- CVE-2019-14751: Fixed Zip slip vulnerability in downloader for the unlikely situation where a user configures their downloader to use a compromised server (boo#1146427)
Update to 3.4.4:
- fix bug in plot function (probability.py)
- add improved PanLex Swadesh corpus reader
- add Text.generate()
- add QuadgramAssocMeasures
- add SSP to tokenizers
- return confidence of best tag from AveragedPerceptron
- make plot methods return Axes objects
- don't require list arguments to PositiveNaiveBayesClassifier.train
- fix Tree classes to work with native Python copy library
- fix inconsistency for NomBank
- fix random seeding in LanguageModel.generate
- fix ConditionalFreqDist mutation on tabulate/plot call
- fix broken links in documentation
- fix misc Wordnet issues
- update installation instructions
Version update to 3.4.1:
- add chomsky_normal_form for CFGs
- add meteor score
- add minimum edit/Levenshtein distance based alignment function
- allow access to collocation list via text.collocation_list()
- support corenlp server options
- drop support for Python 3.4
- other minor fixes
Update to v3.4:
- Support Python 3.7
- New Language Modeling package
- Cistem Stemmer for German
- Support Russian National Corpus incl POS tag model
- Krippendorf Alpha inter-rater reliability test
- Comprehensive code clean-ups
- Switch continuous integration from Jenkins to Travis
Updated to v3.3:
- Support Python 3.6
- New interface to CoreNLP
- Support synset retrieval by sense key
- Minor fixes to CoNLL Corpus Reader
- AlignedSent
- Fixed minor inconsistencies in APIs and API documentation
- Better conformance to PEP8
- Drop Moses Tokenizer (incompatible license)
This update was imported from the openSUSE:Leap:15.1:Update update project.
- Record
openSUSE-SU-2020:0440-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2022:10040-1 No score
Security update for python-nltk
This update for python-nltk fixes the following issues:
Update to 3.7
-
Improve and update the NLTK team page on nltk.org (#2855, #2941)
-
Drop support for Python 3.6, support Python 3.10 (#2920)
-
Update to 3.6.7
- Resolve IndexError in
sent_tokenizeandword_tokenize(#2922)
- Resolve IndexError in
-
Update to 3.6.6
- Refactor
gensim.doctestto work for gensim 4.0.0 and up (#2914) - Add Precision, Recall, F-measure, Confusion Matrix to Taggers (#2862)
- Added warnings if .zip files exist without any corresponding .csv files. (#2908)
- Fix
FileNotFoundErrorwhen thedownload_diris a non-existing nested folder (#2910) - Rename omw to omw-1.4 (#2907)
- Resolve ReDoS opportunity by fixing incorrectly specified regex (#2906, boo#1191030, CVE-2021-3828).
- Support OMW 1.4 (#2899)
- Deprecate Tree get and set node methods (#2900)
- Fix broken inaugural test case (#2903)
- Use Multilingual Wordnet Data from OMW with newer Wordnet versions (#2889)
- Keep NLTKs 'tokenize' module working with pathlib (#2896)
- Make prettyprinter to be more readable (#2893)
- Update links to the nltk book (#2895)
- Add
CITATION.cffto nltk (#2880) - Resolve serious ReDoS in PunktSentenceTokenizer (#2869)
- Delete old CI config files (#2881)
- Improve Tokenize documentation + add TokenizerI as superclass for TweetTokenizer (#2878)
- Fix expected value for BLEU score doctest after changes from #2572
- Add multi Bleu functionality and tests (#2793)
- Deprecate 'return_str' parameter in NLTKWordTokenizer and TreebankWordTokenizer (#2883)
- Allow empty string in CFG's + more (#2888)
- Partition
tree.pymodule intotreepackage + pickle fix (#2863) - Fix several TreebankWordTokenizer and NLTKWordTokenizer bugs (#2877)
- Rewind Wordnet data file after each lookup (#2868)
- Correct init call for SyntaxCorpusReader subclasses (#2872)
- Documentation fixes (#2873)
- Fix levenstein distance for duplicated letters (#2849)
- Support alternative Wordnet versions (#2860)
- Remove hundreds of formatting warnings for nltk.org (#2859)
- Modernize
nltk.org/howtopages (#2856) - Fix Bleu Score smoothing function from taking log(0) (#2839)
- Update third party tools to newer versions and removing MaltParser fixed version (#2832)
- Fix TypeError: _pretty() takes 1 positional argument but 2 were given in sem/drt.py (#2854)
- Replace
httpwithhttpsin most URLs (#2852)
- Refactor
-
Update to 3.6.5
- modernised nltk.org website
- addressed LGTM.com issues
- support ZWJ sequences emoji and skin tone modifer emoji in TweetTokenizer
- METEOR evaluation now requires pre-tokenized input
- Code linting and type hinting
- implement get_refs function for DrtLambdaExpression
- Enable automated CoreNLP, Senna, Prover9/Mace4, Megam, MaltParser CI tests
- specify minimum regex version that supports regex.Pattern
- avoid re.Pattern and regex.Pattern which fail for Python 3.6, 3.7
-
Update to 3.6.4
- deprecate
nltk.usage(obj)in favor ofhelp(obj) - resolve ReDoS vulnerability in Corpus Reader
- solidify performance tests
- improve phone number recognition in tweet tokenizer
- refactored CISTEM stemmer for German
- identify NLTK Team as the author
- replace travis badge with github actions badge
- add SECURITY.md
- deprecate
-
Update to 3.6.3
- Dropped support for Python 3.5
- Run CI tests on Windows, too
- Moved from Travis CI to GitHub Actions
- Code and comment cleanups
- Visualize WordNet relation graphs using Graphviz
- Fixed large error in METEOR score
- Apply isort, pyupgrade, black, added as pre-commit hooks
- Prevent debug_decisions in Punkt from throwing IndexError
- Resolved ZeroDivisionError in RIBES with dissimilar sentences
- Initialize WordNet IC total counts with smoothing value
- Fixed AttributeError for Arabic ARLSTem2 stemmer
- Many fixes and improvements to lm language…
- Record
openSUSE-SU-2022:10040-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11241-1 No score
python36-nltk-3.5-1.10 on GA media
These are all security issues fixed in the python36-nltk-3.5-1.10 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11241-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14103-1 No score
python310-nltk-3.8.1-2.1 on GA media
These are all security issues fixed in the python310-nltk-3.8.1-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14103-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11469-1 No score
python313-nltk-3.10.1-1.1 on GA media
These are all security issues fixed in the python313-nltk-3.10.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11469-1- Updated
- 2026-11-02
OSVPYSEC-2019-106 No score
NLTK Downloader before 3.4.5 is vulnerable to a directory traversal, allowing attackers to write arbitrary files via a ../ (dot dot slash) in an NLTK package (ZIP archive) that is mishandled during extraction.
- Record
PYSEC-2019-106- Updated
- 2026-11-02
OSVUSN-4106-1 No score
NLTK vulnerability
Mike Salvatore discovered that NLTK mishandled crafted ZIP archives during extraction. A remote attacker could use this vulnerability to write arbitrary files to the filesystem
- Record
USN-4106-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nltkPyPI |
before 3.4.5 | 3.4.5 |
nltkDebian:12 |
before 3.4.5-1 | 3.4.5-1 |
nltkDebian:13 |
before 3.4.5-1 | 3.4.5-1 |
nltkDebian:14 |
before 3.4.5-1 | 3.4.5-1 |
nltkPyPI |
before 3.4.5, plus listed versions 0.80.90.9.30.9.40.9.5 Show 40 moreShow less0.9.60.9.70.9.80.9.92.0.12.0.1rc12.0.1rc2-git2.0.1rc32.0.1rc42.0.22.0.32.0.42.0.52.0b42.0b52.0b62.0b72.0b82.0b93.0.03.0.0b13.0.0b23.0.13.0.23.0.33.0.43.0.53.13.23.2.13.2.23.2.33.2.43.2.53.33.43.4.13.4.23.4.33.4.4 |
3.4.5 |
python-nltkMageia:7 |
before 3.4.5-1.1.mga7 | 3.4.5-1.1.mga7 |
nltkPyPI |
before 3.4.5, plus listed versions 2.0.1rc2-git0.80.90.9.30.9.4 Show 40 moreShow less0.9.50.9.60.9.70.9.80.9.92.0b42.0b52.0b62.0b72.0b82.0b92.0.1rc12.0.1rc32.0.1rc42.0.12.0.22.0.32.0.42.0.53.0.0b13.0.0b23.0.03.0.13.0.23.0.33.0.43.0.53.13.23.2.13.2.23.2.33.2.43.2.53.33.43.4.13.4.23.4.33.4.4 |
3.4.5 |
nltkUbuntu:Pro:14.04:LTS |
before 2.0~b9-0ubuntu4.1~esm2, plus listed versions 2.0~b9-0ubuntu4 |
2.0~b9-0ubuntu4.1~esm2 |
nltkUbuntu:16.04:LTS |
before 3.1-1ubuntu0.1, plus listed versions 3.0.4-13.0.5-13.1-1 |
3.1-1ubuntu0.1 |
nltkUbuntu:18.04:LTS |
before 3.2.5-1ubuntu0.1, plus listed versions 3.2.4-13.2.5-1 |
3.2.5-1ubuntu0.1 |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-nltkopenSUSE:Leap 15.1 |
before 3.4.5-lp151.4.3.1 | 3.4.5-lp151.4.3.1 |
python-nltkSUSE:Package Hub 15 SP1 |
before 3.4.5-bp151.4.3.1 | 3.4.5-bp151.4.3.1 |
python-nltkSUSE:Package Hub 15 SP2 |
before 3.7-bp152.3.3.1 | 3.7-bp152.3.3.1 |
python-nltkopenSUSE:Tumbleweed |
before 3.5-1.10 | 3.5-1.10 |
python-nltkopenSUSE:Tumbleweed |
before 3.8.1-2.1 | 3.8.1-2.1 |
python-nltkopenSUSE:Tumbleweed |
before 3.10.1-1.1 | 3.10.1-1.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | mssalvatore/CVE-2019-14751_PoC | 2019-08-09 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV, PoC in GitHub |
References
github.com/nltk/nltk/blob/3.4.5/ChangeLog
github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10
salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751
github.com/mssalvatore/CVE-2019-14751_PoC
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/QI4IJGLZQ5S7C5LNRNROHAO2P526XE3D
Show 24 moreShow less
lists.opensuse.org/opensuse-security-announce/2020-03/msg00054.html
lists.opensuse.org/opensuse-security-announce/2020-04/msg00001.html
nvd.nist.gov/vuln/detail/CVE-2019-14751
github.com/advisories/GHSA-mr7p-25v2-35wr
github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2019-106.yaml
lists.fedoraproject.org/archives/list/[email protected]/message/QI4IJGLZQ5S7C5LNRNROHAO2P526XE3D
lists.fedoraproject.org/archives/list/[email protected]/message/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE
security-tracker.debian.org/tracker/CVE-2019-14751
github.com/nltk/nltk
advisories.mageia.org/MGASA-2020-0160.html
bugs.mageia.org/show_bug.cgi?id=26403
lists.fedoraproject.org/archives/list/[email protected]/thread/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE
ubuntu.com/security/CVE-2019-14751
ubuntu.com/security/notices/USN-4106-1
cve.org/CVERecord?id=CVE-2019-14751
lists.opensuse.org/archives/list/[email protected]/thread/JQ6ZSSQHXJZYKCAD25PTWOW4FERVCB35
bugzilla.suse.com/1146427
suse.com/security/cve/CVE-2019-14751
lists.opensuse.org/archives/list/[email protected]/thread/SFZR2OIXN3DNJB2LDMS5AUHVO5SLFWAB
lists.opensuse.org/archives/list/[email protected]/thread/6ZUSFUYB3S2F4VLUQBWFBYRLCIHMR43P
bugzilla.suse.com/1191030
suse.com/security/cve/CVE-2021-3828
suse.com/security/cve/CVE-2024-39705
suse.com/security/cve/CVE-2026-12072
Left out here: the rest of 1 source description. The JSON record has them.