Python の URL 解析の脆弱性 CVE-2023-24329 が FIX:任意のコマンド実行にいたる恐れ

New Python URL Parsing Flaw Could Enable Command Execution Attacks

2023/08/12 TheHackerNews — Python の URL 解析関数に、深刻な脆弱性 CVE-2023-24329 が発見された。その悪用に成功した攻撃者は、ブロック・リストを介して実装された、ドメインやプロトコルのフィルタリング方法のバイパスが可能になるという。そして、最終的には、任意のファイルの読み取りや、コマンドの実行を引き起こすことになると判明した。


8月11日 (金) の CERT Coordination Center (CERT/CC) のアドバイザリには、「urlparse による解析では、URL の先頭に空白文字が埋め込まれている場合に問題が生じる。この問題は、ホスト名とスキームの解析の両方に影響し、最終的にブロック・リストの作成に失敗する」と記されている。

Command Injection Attacks


この脆弱性 CVE-2023-24329 の CVSS 値は 7.5 である。セキュリティ研究者である Yebo Cao は、この問題を 2022年8月に発見/報告したとされている。この問題は、以下のバージョンで修正されている。

  • >= 3.12
  • 3.11.x >= 3.11.4
  • 3.10.x >= 3.10.12
  • 3.9.x >= 3.9.17
  • 3.8.x >= 3.8.17
  • 3.7.x >= 3.7.17

urllib.parse は広く使われている解析関数であり、URL の構成要素への分解や、構成要素の URL 文字列への結合などを行うものだ。

脆弱性 CVE-2023-24329 は、入力検証の欠如の結果として発生し、空白文字で始まる URL (例えば ” https://youtube%5B.%5Dcom”) を供給することで、ブロック・リストのメソッドを回避することが可能なシナリオをもたらす。

Yebo Cao は、「ブロック・リストは洗練されたものではないが、それを必要とするシナリオは、まだ沢山たくさんある。この脆弱性は、スキームとホストに対して開発者が設定した保護を、攻撃者がバイパスする際に有益となる。この脆弱性は、SSRF と RCE の幅広いシナリオにつながるものだと推測できる」と述べている。