Pythonのライブラリ「h11」に重大な脆弱性

セキュリティニュース

投稿日時: 更新日時:

Pythonのライブラリ「h11」に重大な脆弱性

Python向けの軽量HTTPライブラリ「h11」において、チャンクエンコーディング処理の不備に起因する重大な脆弱性(CVE未付番)が発見されました。
この脆弱性により、特定条件下でリクエストスマグリング(Request Smuggling)攻撃が成立する恐れがあることが判明しています。
なお、問題はバージョン0.16.0
で修正済みです。

脆弱性の対象バージョン

0.15.0以下

脆弱性の対策バージョン

h11 0.16.0以上

脆弱性の概要

h11のバージョン0.15.0以前では、最後の\r\nの検証が正しく行われておらず、任意の2バイトを受け入れてしまう仕様になっていました。
つまり、適切な区切りがなくてもエラーを出さずに次のチャンクとして処理を継続していたのです。

この問題単体では重大な影響を与えるものではありませんが、バグを持つリバースプロキシと組み合わさると非常に危険です。

たとえば、プロキシ側が次のような誤ったパースをしていた場合、意図しないリクエスト解釈が発生します。

  1. 攻撃者が細工したHTTPリクエストを送信

  2. プロキシとサーバ(h11)がリクエストを異なる解釈をしてしまう

  3. サーバ側で不正なリクエストが通過し、本来アクセスできないエンドポイントにリクエストが到達

これにより、次のようなリスクが発生します。

  • アクセス制御回避

  • セッションハイジャック(別ユーザーのセッションクッキーを盗む)

  • セキュリティ境界の突破