| Summary | NLTK version 3.9.4 is vulnerable to a path traversal attack due to an incomplete fix for GitHub Issue #3504. The `_UNSAFE_NO_PROTOCOL_RE` regex in `nltk/data.py` checks for literal `../` sequences but fails to account for percent-encoded traversal sequences such as `..%2f`. The `url2pathname()` function decodes these sequences after the validation step, allowing an attacker to bypass the protection. This vulnerability enables an attacker to read arbitrary files accessible to the Python process by controlling the resource name parameter passed to `nltk.data.load()` or `nltk.data.find()`. The issue affects applications that rely on NLTK for resource loading, including NLP web applications, Jupyter notebooks, and CLI tools. The default `pathsec.ENFORCE=False` setting exacerbates the impact by not blocking the file read at the `open()` stage. |
|---|---|
| Publication Date | June 30, 2026, 10:16 a.m. |
| Registration Date | July 1, 2026, 4:23 a.m. |
| Last Update | June 30, 2026, 11:18 p.m. |
| CVSS3.0 : HIGH | |
| スコア | 7.5 |
|---|---|
| Vector | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| 攻撃元区分(AV) | ネットワーク |
| 攻撃条件の複雑さ(AC) | 低 |
| 攻撃に必要な特権レベル(PR) | 不要 |
| 利用者の関与(UI) | 不要 |
| 影響の想定範囲(S) | 変更なし |
| 機密性への影響(C) | 高 |
| 完全性への影響(I) | なし |
| 可用性への影響(A) | なし |
| Title | NLTKにおけるパストラバーサルの脆弱性 |
|---|---|
| Summary | NLTKバージョン3.9.4は、GitHub Issue #3504の不完全な修正により、パストラバーサル攻撃に対して脆弱な状態にあります。`nltk/data.py`内の`_UNSAFE_NO_PROTOCOL_RE`正規表現はリテラルの`../`シーケンスをチェックしますが、`..%2f`のようなパーセントエンコードされたトラバーサルシーケンスを考慮していません。`url2pathname()`関数は検証ステップの後にこれらのシーケンスをデコードするため、攻撃者は保護を回避できます。この脆弱性によって、攻撃者は`nltk.data.load()`または`nltk.data.find()`に渡されるリソース名パラメータを操作することで、Pythonプロセスがアクセス可能な任意のファイルを読み取ることができます。この問題は、NLPウェブアプリケーション、Jupyterノートブック、CLIツールなど、リソース読み込みにNLTKを利用するアプリケーションに影響を及ぼします。デフォルトの`pathsec.ENFORCE=False`設定は`open()`段階でのファイル読み込みをブロックしないため、影響が悪化します。 |
| Possible impacts | ・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアは停止しません。 |
| Solution | ベンダ情報を参照して適切な対策を実施してください。 |
| Publication Date | June 30, 2026, midnight |
| Registration Date | July 1, 2026, 10:57 a.m. |
| Last Update | July 1, 2026, 10:57 a.m. |
| NLTK |
| NLTK 3.9.4 |
| No | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年07月01日] 掲載 |
July 1, 2026, 10:57 a.m. |