{"id":"CVE-2019-14751","aliases":["DEBIAN-CVE-2019-14751","EUVD-2019-0091","GHSA-mr7p-25v2-35wr","MGASA-2020-0160","PYSEC-2019-106","UBUNTU-CVE-2019-14751","USN-4106-1","openSUSE-SU-2020:0436-1","openSUSE-SU-2020:0440-1","openSUSE-SU-2022:10040-1","openSUSE-SU-2024:11241-1","openSUSE-SU-2024:14103-1","openSUSE-SU-2026:11469-1"],"status":"published","title":"NLTK Vulnerable To Path Traversal","description":"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.","severity":{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.05674,"percentile":0.93042,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-22"],"published":"2019-08-20T00:00:00Z","modified":"2026-10-20T10:52:42Z","exploits":[{"source":"pocgithub","id":"mssalvatore/CVE-2019-14751_PoC","title":"mssalvatore/CVE-2019-14751_PoC","date":"2019-08-09","url":"https://github.com/mssalvatore/CVE-2019-14751_PoC"}],"fixes":[{"ecosystem":"PyPI","package":"nltk","fixed_in":["3.4.5"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"nltk","fixed_in":["3.4.5-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"nltk","fixed_in":["3.4.5-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"nltk","fixed_in":["3.4.5-1"],"sources":["osv"]},{"ecosystem":"Mageia:7","package":"python-nltk","fixed_in":["3.4.5-1.1.mga7"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:14.04:LTS","package":"nltk","fixed_in":["2.0~b9-0ubuntu4.1~esm2"],"sources":["osv"]},{"ecosystem":"Ubuntu:16.04:LTS","package":"nltk","fixed_in":["3.1-1ubuntu0.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:18.04:LTS","package":"nltk","fixed_in":["3.2.5-1ubuntu0.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.1","package":"python-nltk","fixed_in":["3.4.5-lp151.4.3.1"],"sources":["osv"]},{"ecosystem":"SUSE:Package Hub 15 SP1","package":"python-nltk","fixed_in":["3.4.5-bp151.4.3.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-nltk","fixed_in":["3.5-1.10"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5"}]}],"versions":["0.8","0.9","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9","2.0.1","2.0.1rc1","2.0.1rc2-git","2.0.1rc3","2.0.1rc4","2.0.2","2.0.3","2.0.4","2.0.5","2.0b4","2.0b5","2.0b6","2.0b7","2.0b8","2.0b9","3.0.0","3.0.0b1","3.0.0b2","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.1","3.2","3.2.1","3.2.2","3.2.3","3.2.4","3.2.5","3.3","3.4","3.4.1","3.4.2","3.4.3","3.4.4"]},{"source":"osv","ecosystem":"Mageia:7","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-1.1.mga7"}]}]},{"source":"osv","ecosystem":"PyPI","package":"nltk","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"f59d7ed8df2e0e957f7f247fe218032abdbe9a10"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5"}]}],"versions":["2.0.1rc2-git","0.8","0.9","0.9.3","0.9.4","0.9.5","0.9.6","0.9.7","0.9.8","0.9.9","2.0b4","2.0b5","2.0b6","2.0b7","2.0b8","2.0b9","2.0.1rc1","2.0.1rc3","2.0.1rc4","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","3.0.0b1","3.0.0b2","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.1","3.2","3.2.1","3.2.2","3.2.3","3.2.4","3.2.5","3.3","3.4","3.4.1","3.4.2","3.4.3","3.4.4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:14.04:LTS","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0~b9-0ubuntu4.1~esm2"}]}],"versions":["2.0~b9-0ubuntu4"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1-1ubuntu0.1"}]}],"versions":["3.0.4-1","3.0.5-1","3.1-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.5-1ubuntu0.1"}]}],"versions":["3.2.4-1","3.2.5-1"]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1-1ubuntu0.1"}]}],"versions":["3.0.4-1","3.0.5-1","3.1-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.2.5-1ubuntu0.1"}]}],"versions":["3.2.4-1","3.2.5-1"]},{"source":"osv","ecosystem":"openSUSE:Leap 15.1","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-lp151.4.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP1","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.4.5-bp151.4.3.1"}]}]},{"source":"osv","ecosystem":"SUSE:Package Hub 15 SP2","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.7-bp152.3.3.1"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.5-1.10"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.8.1-2.1"}]}],"bundled":2},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-nltk","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.10.1-1.1"}]}],"bundled":3}],"products":[{"vendor":"nltk","product":"nltk"}],"references":[{"url":"https://github.com/nltk/nltk/blob/3.4.5/ChangeLog","tags":["x_refsource_CONFIRM","x_transferred","Release Notes","advisory","web","report"]},{"url":"https://github.com/nltk/nltk/commit/f59d7ed8df2e0e957f7f247fe218032abdbe9a10","tags":["x_refsource_CONFIRM","x_transferred","Patch","fix","web"]},{"url":"https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751/","tags":["x_refsource_MISC","x_transferred","Exploit","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://github.com/mssalvatore/CVE-2019-14751_PoC","tags":["x_refsource_MISC","x_transferred","Exploit","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/QI4IJGLZQ5S7C5LNRNROHAO2P526XE3D/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","web"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-03/msg00054.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","web"]},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-04/msg00001.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-14751","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-mr7p-25v2-35wr","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/nltk/PYSEC-2019-106.yaml","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/QI4IJGLZQ5S7C5LNRNROHAO2P526XE3D","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE","tags":["web"]},{"url":"https://salvatoresecurity.com/zip-slip-in-nltk-cve-2019-14751","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2019-14751","tags":["advisory"]},{"url":"https://github.com/nltk/nltk","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2020-0160.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=26403","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/thread/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE/","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/ZGZSSEJH7RHH3RBUEVWWYT75QU67J7SE/","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/QI4IJGLZQ5S7C5LNRNROHAO2P526XE3D/","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2019-14751","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-4106-1","tags":["advisory"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-14751","tags":["report"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/JQ6ZSSQHXJZYKCAD25PTWOW4FERVCB35/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1146427","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2019-14751","tags":["web"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/SFZR2OIXN3DNJB2LDMS5AUHVO5SLFWAB/","tags":["advisory"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/thread/6ZUSFUYB3S2F4VLUQBWFBYRLCIHMR43P/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1191030","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2021-3828","tags":["web"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2024-39705","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-12072","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2019-14751","description":"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.","status":"published","published":"2019-08-22T15:59:59Z","modified":"2024-08-05T00:26:38.633Z","updated_at":"2026-11-02T14:20:18.085548Z"}],"euvd":[{"id":"EUVD-2019-0091","description":"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.","status":"published","published":"2019-08-22T15:59:59Z","modified":"2024-08-05T00:26:38Z","updated_at":"2026-11-03T02:40:38.622868Z"}],"ghsa":[{"id":"GHSA-mr7p-25v2-35wr","title":"NLTK Vulnerable To Path Traversal","description":"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.","status":"published","published":"2019-08-23T21:53:51Z","modified":"2024-10-07T14:49:06Z","cvss":[{"version":"4.0","score":8.7,"vector":"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","level":"high"},{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:38:08.742903Z"}],"nvd":[{"id":"CVE-2019-14751","description":"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.","status":"published","published":"2019-08-22T16:15:10.213Z","modified":"2026-06-17T02:18:56.613Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:05:23.725587Z"}],"osv":[{"id":"CVE-2019-14751","description":"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.","status":"published","published":"2019-08-22T16:15:10.213Z","modified":"2026-10-20T10:52:42.793657484Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:11.029493Z"},{"id":"DEBIAN-CVE-2019-14751","description":"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.","status":"published","published":"2019-08-22T16:15:10.213Z","modified":"2026-09-21T07:02:26.565817422Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:45:31.467893Z"},{"id":"GHSA-mr7p-25v2-35wr","title":"NLTK Vulnerable To Path Traversal","description":"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.","status":"published","published":"2019-08-23T21:53:51Z","modified":"2024-10-07T15:12:16.483022Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"},{"version":"4.0","score":8.7,"vector":"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","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:52.170928Z"},{"id":"UBUNTU-CVE-2019-14751","description":"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.","status":"published","published":"2019-08-20T00:00:00Z","modified":"2026-02-04T02:44:19.865362Z","cvss":[{"version":"3.0","score":7.5,"vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:54:19.6877Z"},{"id":"MGASA-2020-0160","title":"Updated python-nltk packages fix security vulnerability","description":"Updated python-ntlk package fixes security vulnerability:\n\nA vulnerability was found in NLTK Downloader before 3.4.5 is vulnerable\nto a directory traversal, allowing attackers to write arbitrary files via\na ../ in an NLTK package (ZIP archive) that is mishandled during extraction\n(CVE-2019-14751).\n","status":"published","published":"2020-04-05T17:07:15Z","modified":"2026-04-16T04:40:56.102116806Z","updated_at":"2026-11-02T15:49:41.151324Z"},{"id":"openSUSE-SU-2020:0436-1","title":"Security update for python-nltk","description":"This update for python-nltk fixes the following issues:\n\nUpdate to 3.4.5 (boo#1146427, CVE-2019-14751):\n\n* CVE-2019-14751: Fixed Zip slip vulnerability in downloader for the\n  unlikely situation where a user configures their downloader to use\n  a compromised server (boo#1146427)\n\nUpdate to 3.4.4:\n\n* fix bug in plot function (probability.py)\n* add improved PanLex Swadesh corpus reader\n* add Text.generate()\n* add QuadgramAssocMeasures\n* add SSP to tokenizers\n* return confidence of best tag from AveragedPerceptron\n* make plot methods return Axes objects\n* don't require list arguments to PositiveNaiveBayesClassifier.train\n* fix Tree classes to work with native Python copy library\n* fix inconsistency for NomBank\n* fix random seeding in LanguageModel.generate\n* fix ConditionalFreqDist mutation on tabulate/plot call\n* fix broken links in documentation\n* fix misc Wordnet issues\n* update installation instructions\n\nVersion update to 3.4.1:\n\n* add chomsky_normal_form for CFGs\n* add meteor score\n* add minimum edit/Levenshtein distance based alignment function\n* allow access to collocation list via text.collocation_list()\n* support corenlp server options\n* drop support for Python 3.4\n* other minor fixes\n\nUpdate to v3.4:\n\n* Support Python 3.7\n* New Language Modeling package\n* Cistem Stemmer for German\n* Support Russian National Corpus incl POS tag model\n* Krippendorf Alpha inter-rater reliability test\n* Comprehensive code clean-ups\n* Switch continuous integration from Jenkins to Travis\n\nUpdated to v3.3:\n\n* Support Python 3.6\n* New interface to CoreNLP\n* Support synset retrieval by sense key\n* Minor fixes to CoNLL Corpus Reader\n* AlignedSent\n* Fixed minor inconsistencies in APIs and API documentation\n* Better conformance to PEP8\n* Drop Moses Tokenizer (incompatible license)\n","status":"published","published":"2020-03-31T14:23:34Z","modified":"2026-02-04T03:29:50.390887Z","updated_at":"2026-11-02T16:58:31.152112Z"},{"id":"openSUSE-SU-2020:0440-1","title":"Security update for python-nltk","description":"This update for python-nltk fixes the following issues:\n\nUpdate to 3.4.5 (boo#1146427, CVE-2019-14751):\n\n* CVE-2019-14751: Fixed Zip slip vulnerability in downloader for the\n  unlikely situation where a user configures their downloader to use\n  a compromised server (boo#1146427)\n\nUpdate to 3.4.4:\n\n* fix bug in plot function (probability.py)\n* add improved PanLex Swadesh corpus reader\n* add Text.generate()\n* add QuadgramAssocMeasures\n* add SSP to tokenizers\n* return confidence of best tag from AveragedPerceptron\n* make plot methods return Axes objects\n* don't require list arguments to PositiveNaiveBayesClassifier.train\n* fix Tree classes to work with native Python copy library\n* fix inconsistency for NomBank\n* fix random seeding in LanguageModel.generate\n* fix ConditionalFreqDist mutation on tabulate/plot call\n* fix broken links in documentation\n* fix misc Wordnet issues\n* update installation instructions\n\nVersion update to 3.4.1:\n\n* add chomsky_normal_form for CFGs\n* add meteor score\n* add minimum edit/Levenshtein distance based alignment function\n* allow access to collocation list via text.collocation_list()\n* support corenlp server options\n* drop support for Python 3.4\n* other minor fixes\n\nUpdate to v3.4:\n\n* Support Python 3.7\n* New Language Modeling package\n* Cistem Stemmer for German\n* Support Russian National Corpus incl POS tag model\n* Krippendorf Alpha inter-rater reliability test\n* Comprehensive code clean-ups\n* Switch continuous integration from Jenkins to Travis\n\nUpdated to v3.3:\n\n* Support Python 3.6\n* New interface to CoreNLP\n* Support synset retrieval by sense key\n* Minor fixes to CoNLL Corpus Reader\n* AlignedSent\n* Fixed minor inconsistencies in APIs and API documentation\n* Better conformance to PEP8\n* Drop Moses Tokenizer (incompatible license)\n\nThis update was imported from the openSUSE:Leap:15.1:Update update project.","status":"published","published":"2020-04-01T07:47:41Z","modified":"2025-05-07T18:10:41.296695Z","updated_at":"2026-11-02T16:58:31.152112Z"},{"id":"openSUSE-SU-2022:10040-1","title":"Security update for python-nltk","description":"This update for python-nltk fixes the following issues:\n\nUpdate to 3.7\n\n  - Improve and update the NLTK team page on nltk.org (#2855,\n    #2941)\n  - Drop support for Python 3.6, support Python 3.10 (#2920)\n\n- Update to 3.6.7\n\n  - Resolve IndexError in `sent_tokenize` and `word_tokenize`\n    (#2922)\n\n- Update to 3.6.6\n\n  - Refactor `gensim.doctest` to work for gensim 4.0.0 and up\n    (#2914)\n  - Add Precision, Recall, F-measure, Confusion Matrix to Taggers\n    (#2862)\n  - Added warnings if .zip files exist without any corresponding\n    .csv files. (#2908)\n  - Fix `FileNotFoundError` when the `download_dir` is\n    a non-existing nested folder (#2910)\n  - Rename omw to omw-1.4 (#2907)\n  - Resolve ReDoS opportunity by fixing incorrectly specified\n    regex (#2906, boo#1191030, CVE-2021-3828).\n  - Support OMW 1.4 (#2899)\n  - Deprecate Tree get and set node methods (#2900)\n  - Fix broken inaugural test case (#2903)\n  - Use Multilingual Wordnet Data from OMW with newer Wordnet\n    versions (#2889)\n  - Keep NLTKs 'tokenize' module working with pathlib (#2896)\n  - Make prettyprinter to be more readable (#2893)\n  - Update links to the nltk book (#2895)\n  - Add `CITATION.cff` to nltk (#2880)\n  - Resolve serious ReDoS in PunktSentenceTokenizer (#2869)\n  - Delete old CI config files (#2881)\n  - Improve Tokenize documentation + add TokenizerI as superclass\n    for TweetTokenizer (#2878)\n  - Fix expected value for BLEU score doctest after changes from\n    #2572\n  - Add multi Bleu functionality and tests (#2793)\n  - Deprecate 'return_str' parameter in NLTKWordTokenizer and\n    TreebankWordTokenizer (#2883)\n  - Allow empty string in CFG's + more (#2888)\n  - Partition `tree.py` module into `tree` package + pickle fix\n    (#2863)\n  - Fix several TreebankWordTokenizer and NLTKWordTokenizer bugs\n    (#2877)\n  - Rewind Wordnet data file after each lookup (#2868)\n  - Correct __init__ call for SyntaxCorpusReader subclasses\n    (#2872)\n  - Documentation fixes (#2873)\n  - Fix levenstein distance for duplicated letters (#2849)\n  - Support alternative Wordnet versions (#2860)\n  - Remove hundreds of formatting warnings for nltk.org (#2859)\n  - Modernize `nltk.org/howto` pages (#2856)\n  - Fix Bleu Score smoothing function from taking log(0) (#2839)\n  - Update third party tools to newer versions and removing\n    MaltParser fixed version (#2832)\n  - Fix TypeError: _pretty() takes 1 positional argument but 2\n    were given in sem/drt.py (#2854)\n  - Replace `http` with `https` in most URLs (#2852)\n\n- Update to 3.6.5\n\n  - modernised nltk.org website\n  - addressed LGTM.com issues\n  - support ZWJ sequences emoji and skin tone modifer emoji in\n    TweetTokenizer\n  - METEOR evaluation now requires pre-tokenized input\n  - Code linting and type hinting\n  - implement get_refs function for DrtLambdaExpression\n  - Enable automated CoreNLP, Senna, Prover9/Mace4, Megam,\n    MaltParser CI tests\n  - specify minimum regex version that supports regex.Pattern\n  - avoid re.Pattern and regex.Pattern which fail for Python 3.6,\n    3.7\n\n- Update to 3.6.4\n\n  - deprecate `nltk.usage(obj)` in favor of `help(obj)`\n  - resolve ReDoS vulnerability in Corpus Reader\n  - solidify performance tests\n  - improve phone number recognition in tweet tokenizer\n  - refactored CISTEM stemmer for German\n  - identify NLTK Team as the author\n  - replace travis badge with github actions badge\n  - add SECURITY.md\n\n- Update to 3.6.3\n\n  - Dropped support for Python 3.5\n  - Run CI tests on Windows, too\n  - Moved from Travis CI to GitHub Actions\n  - Code and comment cleanups\n  - Visualize WordNet relation graphs using Graphviz\n  - Fixed large error in METEOR score\n  - Apply isort, pyupgrade, black, added as pre-commit hooks\n  - Prevent debug_decisions in Punkt from throwing IndexError\n  - Resolved ZeroDivisionError in RIBES with dissimilar sentences\n  - Initialize WordNet IC total counts with smoothing value\n  - Fixed AttributeError for Arabic ARLSTem2 stemmer\n  - Many fixes and improvements to lm language model package\n  - Fix bug in nltk.metrics.aline, C_skip = -10\n  - Improvements to TweetTokenizer\n  - Optional show arg for FreqDist.plot, ConditionalFreqDist.plot\n  - edit_distance now computes Damerau-Levenshtein edit-distance\n\n- Update to 3.6.2\n\n  - move test code to nltk/test\n  - fix bug in NgramAssocMeasures (order preserving fix)\n\n- Update to 3.6\n\n  - add support for Python 3.9\n  - add Tree.fromlist\n  - compute Minimum Spanning Tree of unweighted graph using BFS\n  - fix bug with infinite loop in Wordnet closure and tree\n  - fix bug in calculating BLEU using smoothing method 4\n  - Wordnet synset similarities work for all pos\n  - new Arabic light stemmer (ARLSTem2)\n  - new syllable tokenizer (LegalitySyllableTokenizer)\n  - remove nose in favor of pytest\n\n- Update to v3.5\n\n  * add support for Python 3.8\n  * drop support for Python 2\n  * create NLTK's own Tokenizer class distinct from the Treebank\n    reference tokeniser\n  * update Vader sentiment analyser\n  * fix JSON serialization of some PoS taggers\n  * minor improvements in grammar.CFG, Vader, pl196x corpus reader,\n    StringTokenizer\n  * change implementation \u003c= and \u003e= for FreqDist so they are partial\n    orders\n  * make FreqDist iterable\n  * correctly handle Penn Treebank trees with a unlabeled branching\n    top node\n\n- Update to 3.4.5 (boo#1146427, CVE-2019-14751):","status":"published","published":"2022-07-03T14:01:14Z","modified":"2025-05-07T18:10:41.360458Z","updated_at":"2026-11-02T16:58:32.653274Z"},{"id":"openSUSE-SU-2024:11241-1","title":"python36-nltk-3.5-1.10 on GA media","description":"These are all security issues fixed in the python36-nltk-3.5-1.10 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:50:17.806312Z","updated_at":"2026-11-02T16:58:34.894275Z"},{"id":"openSUSE-SU-2024:14103-1","title":"python310-nltk-3.8.1-2.1 on GA media","description":"These are all security issues fixed in the python310-nltk-3.8.1-2.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-07-04T00:00:00Z","modified":"2026-02-04T02:23:33.499677Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2026:11469-1","title":"python313-nltk-3.10.1-1.1 on GA media","description":"These are all security issues fixed in the python313-nltk-3.10.1-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-08-06T00:00:00Z","modified":"2026-08-07T10:00:49.63540985Z","updated_at":"2026-11-02T16:58:39.516824Z"},{"id":"PYSEC-2019-106","description":"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.","status":"published","published":"2019-08-22T16:15:00Z","modified":"2023-11-08T04:01:10.707423Z","updated_at":"2026-11-02T15:52:52.192131Z"},{"id":"USN-4106-1","title":"NLTK vulnerability","description":"Mike Salvatore discovered that NLTK mishandled crafted ZIP archives during\nextraction. A remote attacker could use this vulnerability to write\narbitrary files to the filesystem\n","status":"published","published":"2019-08-20T13:46:38Z","modified":"2026-02-10T04:41:36Z","updated_at":"2026-11-02T16:58:14.019824Z"}]}}
