30秒で判断
対応すべき人:
- Crawl4AI 0.8.7 未満の API サーバーをネットワークに公開している
- Computed Fields 機能(抽出スキーマ)を外部入力で使用しているアプリケーション
対応不要な人:
- Crawl4AI 0.8.7 以降を使用中
- Crawl4AI をライブラリとしてのみ使用しており、APIサーバーを起動・公開していない
- Crawl4AI APIサーバーがファイアウォールで完全に外部から遮断されている
確認コマンド:
# バージョン確認
pip show crawl4ai | grep Version
# APIサーバーが外部に公開されているか確認
ss -tlnp | grep :11235 # デフォルトポート
概要
Crawl4AI は LLM 向けに最適化されたオープンソースのWebクローラー・スクレイパーです。バージョン 0.8.7 未満において、抽出スキーマの Computed Fields 機能で使用される _safe_eval_expression() 関数に深刻な脆弱性が存在します。
問題の詳細
この関数はASTベースのバリデーターを使用してPython式の評価を制限しようとしていますが、アンダースコア(_)で始まる属性のみをブロックする実装になっています。Pythonのジェネレーターオブジェクトやフレームオブジェクトの属性(gi_frame・f_back・f_builtins 等)はアンダースコアで始まらないため、この制限をバイパスしてサンドボックスを完全に脱出し、任意のPythonコードを実行できます。
攻撃の容易さ: Crawl4AI の JWT 認証はデフォルトで無効になっているため、攻撃者は認証なしで POST /crawl に細工された抽出スキーマを送信するだけで攻撃を成立させられます。
CVSSベクトル
| 指標 | 値 |
|---|---|
| CVSSスコア | 9.8 |
| 深刻度 | Critical |
| CWE | CWE-94(コードインジェクション)、CWE-913(動的コード管理の不適切な制御) |
| 攻撃元区分 | ネットワーク |
| 攻撃条件の複雑さ | 低 |
| 必要な特権レベル | 不要 |
| ユーザー操作 | 不要 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| Crawl4AI | unclecode | < 0.8.7 |
修正バージョンと回避策
- 修正バージョン: 0.8.7 以降にアップデートしてください
pip install --upgrade crawl4ai - 緊急回避策:
- Crawl4AI APIサーバーをインターネットから遮断し、信頼できるクライアントのみに限定する
- JWT認証を有効化する(設定ファイルを参照)
- Computed Fields機能を外部入力から分離する
関連リンク
データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
