注目★★★★★GitHub Advisory
SimpleSAMLphp SAML 検証バイパス、異なる IdP から応答を受け入れる脆弱性
30秒で把握
- 1SimpleSAMLphp SAML SP が unsigned Response と署名付き assertion の組み合わせで異なる IdP からの応答を受け入れる脆弱性
- 2マルチ IdP 環境で低信頼度 IdP が高信頼度向けの認証フローを迂回・テナント分離や段階認証が機能しなくなる可能性
- 3多段階 IdP 構成の場合、本番環境での IdP 設定を再確認し必要に応じてコード補強またはセキュリティ更新を適用
要約
SimpleSAMLphp の SAML サービスプロバイダ (SP) ACS パスが、マルチ IdP 環境で意図しない IdP からの応答を受け入れる脆弱性が判明した。unsigned `Response/InResponseTo` と signed assertion 内の `SubjectConfirmationData/InResponseTo` 欠落の組み合わせにより、異なる IdP が発行した応答が、別の IdP 用に作成された SP 状態にバインドされる。低信頼度の IdP が高信頼度の IdP 向けの認証フローを満たし、ユーザーを特定 IdP に意図的にルーティングする SP フローを迂回できるため、多段階認証・テナント境界・属性スコープが信頼度で分かれる環境では認証・認可バイパスに該当する可能性がある。
あなたへの影響
SimpleSAMLphp を本番運用する場合。
推奨:アカウント・テナント・信頼度が異なる複数 IdP が設定されていないか即座に確認し、当該パターンに該当すればベンダーのセキュリティ更新を待たずに既存 `enable_unsolicited` 設定と `SubjectConfirmationData/InResponseTo` の強制検証をコード側で補強する必要がある。