概要
バージョン3.0.5
よりも以前のpassport-wsfed-saml2ライブラリーに脆弱性が発見されました。passport-wsfed-saml2 はWS-Federationプロトコルで、Passport.jsのSAML2トークン認証プロバイダーです。
IDプロバイダーがSAML応答の全体に署名しないで、応答に含まれるアサーションだけに署名する場合、この脆弱性によって、攻撃者は別のユーザーになりすまし、権限を昇格できる可能性があります。
この脆弱性を悪用する攻撃者は、その応答を使って別のNameIdentifier で要求を作成し、ユーザーになりすましてログインできる可能性があります。また、悪意のある行為者が管理者権限を持つ特定のユーザーとして認証した場合には、権限を昇格することもできます。攻撃者は既存のアカウントを持っているか、暗号化されたトラフィックを傍受して、SAML応答をその場で書き換えることができなければなりません。
この更新は、アサーション と応答 の要素を対象としたラッピング攻撃を回避すると同時に、XPath表現にいくつかの防御的な変更を提供することによって、脆弱性に対処します。また、SAML応答の署名に関する情報をログに記録する方法の改善も実装されています。
この脆弱性を修正するには、ライブラリーのアップグレードが必要です。
自分は影響を受けますか?
この脆弱性の影響を受けるのは、SAMLP IDプロバイダー接続 を使用しているクラウドテナントで、IDプロバイダーが以下を行った場合です。- SAML応答の署名とアサーションの署名を行った
- SAML応答に署名しないで、アサーションに署名した
修正方法
passport-wsfed-saml2 ライブラリーを使用している開発者は、最新バージョンにアップグレードしてください:3.0.5
。
更新されたパッケージはnpmで入手できます。今後の追加のバグ修正を確実に受け取るために、ライブラリーのパッチとマイナーレベルの更新が適用されるようpackage.json
ファイルが更新されていることを確認してください。