何が起きたか
バージョン0.9.0より前、Crawl4AIのDocker APIサーバーはユーザー提供のbrowser_config.extra_argsをサニタイズせずにChromiumの起動引数に直接渡していました。これらの引数は子プロセス呼び出しを制御するため、攻撃者は起動コマンド全体を置き換えることができ、API アクセス以外の認証を必要としないリモートコード実行が可能になります。
なぜ重要か
Crawl4AIは LLM/RAG パイプラインへの供給を目的とした人気のあるオープンソースクローラーです。Docker APIサーバーの CVSS 10.0 認証不要RCEは、AI アプリケーション向けコンテンツを取得するために使用されるインターネット公開またはマルチテナントCrawl4AIデプロイメントが完全に制御される可能性があることを意味し、データ窃盗、接続されたAIインフラストラクチャへの横方向移動、またはさらなる攻撃の足がかりとしての使用を可能にします — JadePuffer/Langflowの AI ツール RCE パターンによる完全な侵害と直接類似しています。
攻撃経路
Docker APIサーバーはリクエスト提供のbrowser_config.extra_argsを受け入れ、これはサニタイズされないままChromiumの起動引数に流れます。攻撃者はChromium コマンドラインスイッチを注入して子プロセス起動コマンドを置き換え、クローラーをホストしているサーバー上で任意のコード実行を実現できます。
影響を受けるシステム
Crawl4AI (unclecode/crawl4ai) Docker APIサーバー、バージョン 0.9.0 より前
緩和策
Crawl4AI >= 0.9.0 にアップグレードしてください。信頼できないネットワークへ Crawl4AI Docker API サーバーを公開する場合、browser_config パラメーターに対するアロウリストを使用してください。