注目★★★★★GitHub Advisory
compliance-trestle に SSRF 対策回避の脆弱性、IPv6 や 0.0.0.0 で内部ネットワークへアクセス可能
30秒で把握
- 1compliance-trestle 4.0.3 の URLSecurityValidator が IPv4 マップ IPv6 と 0.0.0.0 を許可・SSRF 制限回避
- 2OSCAL プロファイルの imports/back-matter リンク経由でクラウドメタデータ・内部ネットワークへアクセス可能
- 3外部 OSCAL 源を処理する場合はファイル検証強化・ネットワーク分離・IAM 最小化で対策
要約
compliance-trestle 4.0.3 の URLSecurityValidator に SSRF (Server-Side Request Forgery) 対策の不完全さがあり、IPv4 マップ IPv6 リテラル ([::ffff:169.254.169.254] 等) と IPv4 未指定アドレス (0.0.0.0) を使うことで、ローカルホストやクラウドメタデータエンドポイント、RFC 1918 プライベートネットワークへのアクセス制限を回避できる。悪意のある OSCAL プロファイルで imports または back-matter.resources リンク先にこれらのアドレスを指定すると、HTTPSFetcher・SFTPFetcher の remote-fetch 経由で検証をすり抜けリクエストが送出される。TRESTLE_BLOCK_PRIVATE_IPS=true 設定下でもプライベートネットワークへの接触が可能になる。
あなたへの影響
compliance-trestle を用いて外部ソースの OSCAL プロファイルをインポート・検証する運用をしている場合、ファイルの仕入先・バリデーション方法の再点検が必要。
推奨:特にクラウドメタデータエンドポイント (AWS / GCP / Azure) やローカル管理インタフェースへの意図しないアクセスが成立する可能性があるため、ネットワークセグメンテーションと shared IAM 権限の最小化で多層防御を強化すべき。