
複数の SAML ライブラリに、サービスプロバイダへの認証が回避される問題が存在するとして JPCERTが緊急報告をしています。この問題は XML DOM トラバーサルおよび正規化を行う API の挙動に起因しており、攻撃者は XML 署名の検証を無効化することなく、SAML データを改ざんすることが可能とのことです。
【影響範囲】
OneLogin - "python-saml" (CVE-2017-11427)
OneLogin - "ruby-saml" (CVE-2017-11428)
Clever - "saml2-js" (CVE-2017-11429)
OmniAuth SAML (CVE-2017-11430)
Shibboleth OpenSAML C++ (CVE-2018-0489)
【想定される影響】Security Assertion Markup Language (SAML) は主に SSO (Single Sign-On サービス) で使用される、認証や認可を行うための XML ベースのマークアップ言語です。
いくつかの SAML ライブラリでは、XML DOM トラバーサルや正規化の処理を行う API における XML データ中のコメントの扱い方に不整合な点があり、XML 署名検証で XML データの改ざんを検出できない恐れがあります。その結果、遠隔の攻撃者は、改ざんした SAML メッセージを使って SAML サービスプロバイダの認証を回避することが可能となります。
遠隔の第三者によって、SAML データの内容を XML 署名が無効にならない形で改ざんされ、SAML サービスプロバイダの第一段階の認証を回避される恐れがあります。つまり非正規のユーザーがSSO (Single Sign-On サービス) において異なるユーザーになりすまして認証できる恐れがあるということです。
【対策】
アップデートする
本脆弱性に影響を受ける可能性がある SAML サービスプロバイダの方は、最新版の SAML ライブラリを使用するようにソフトウェアをアップデートしてください。詳細;CERT/CC