注目★★★★★GitHub Advisory
NLTK にパストラバーサル脆弱性、パーセント符号化で任意ファイル読み取り可能
30秒で把握
- 1NLTK の nltk.data.load() にパストラバーサル脆弱性、パーセント符号化 (%2e%2e) で安全チェック回避可能
- 2デコード前に安全性チェック実施で、%2e%2e などの複数パターンが .. に統一・任意ファイル読み取り可能
- 3修正は unquote() でデコード後にバリデーション実施、NLTK 使用コードの入力検証とライブラリ更新を確認推奨
要約
NLTK の nltk.data.load() と nltk.data.find() にパストラバーサル脆弱性が存在する。url2pathname() がパーセント符号化シーケンス (%2e%2e など) をデコードする際、デコード前に安全性チェックを行うため、%2e%2e を使うと.. に変換後のチェック回避が可能だ。攻撃者は NLTK データディレクトリの外にある任意ファイルを読み取れる。修正は unquote() でデコードしてからバリデーションを行うことで、パーセント符号化ペイロード (%2e%2e /.%2e / %2E%2E など複数パターン) が全て同一の../ シーケンスに変換される点を事前に検証すれば回避できる。
あなたへの影響
NLTK を使用するアプリケーションやシステムは。
推奨:直ちに修正版への更新を確認し、ユーザー入力を resource_name に直接渡していないかコードレビューを実施すべき。