2025年5月、MicrosoftがBuildカンファレンスで発表した「NLWeb(Natural Language Web)」は、AIエージェントがWebサイトと自然言語で対話できる未来のWeb基盤として注目を集めました。ShopifyやTripAdvisorなども導入を進める中、セキュリティ研究者Aonan Guan氏がNLWebのコードに重大な脆弱性を発見し、話題となっています(Neowin)。
脆弱性の内容はディレクトリトラバーサル攻撃です。Guan氏はNLWebの static_file_handler.py
にある以下のコードに注目しました。
safe_path = os.path.normpath(path.lstrip('/')) full_path = os.path.join(root, safe_path)
この os.path.normpath()
はパスを正規化する関数ですが、../
を含むパスをブロックする機能はありません。結果として、攻撃者が curl コマンドなどを使って、以下のようなリクエストを送ると…
curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd"
UNIX系システムのユーザー情報ファイル /etc/passwd
が返されてしまうという事態に。
さらに .env
ファイルなど、アプリケーションの機密情報も取得可能であることが確認されました。
Microsoftの対応
この問題は2025年5月28日に報告され、Microsoftは2日後にパッチを公開しています。..
を含むパスのブロックや、許可された拡張子(.html, .css, .jsなど)のみを許容する変更、絶対パスを解決し、指定されたルートディレクトリ内にあるかを確認する処理の追加などの対策が行われています。
エージェンティック・ウェブの新たな課題
Guan氏は、「自然言語で操作するWeb」は便利な一方で、新たな攻撃面(attack surface)を生み出す可能性があると警告しています。エージェンティック・ウェブでは、ユーザーの自然言語入力が、意図せず危険なファイルパスやコマンドに変換される可能性があるため、入力検証とアクセス制御の徹底が不可欠となります。
今回の問題は、AIとWebの融合が進む中で、利便性と安全性のバランスをどう取るかという課題を浮き彫りにしています。NLWebのような革新的技術を活用するには、セキュリティへの深い理解と慎重な設計が不可欠となりそうです。