メインコンテンツへスキップ
公開日: 2020年6月30日 CVE番号: CVE-2020-15084 謝辞: IST Group

概要

5.3.3 以前 (5.3.3 を含む) のバージョンでは、設定で algorithms エントリの指定を必須としていませんでした。 設定で algorithms が指定されていない場合、jwks-rsa または場合によっては他の非対称暗号ライブラリと組み合わせることで、認可の回避につながる可能性があります。

影響を受けますか?

以下の条件をすべて満たす場合、この脆弱性の影響を受けます。
  • express- を使用しており、かつ
  • express-jwt の設定で algorithms を設定しておらず、かつ
  • secret として jwks-rsa などのライブラリを使用している。

どう修正すればよいですか?

express-jwt の設定で algorithms を指定します。以下は、正しい設定例です。
const checkJwt = jwt({
  secret: jwksRsa.expressJwtSecret({
    rateLimit: true,
    jwksRequestsPerMinute: 5,
    jwksUri: `https://{DOMAIN}/.well-known/jwks.json`
  }),
  // オーディエンスとIssuerを検証する。
  audience: process.env.AUDIENCE,
  issuer: `https://{DOMAIN}/`,
  // 許可するアルゴリズムを制限する
  algorithms: ['RS256']
});

この更新はユーザーに影響しますか?

許可するalgorithmsを指定している場合、このパッチで提供される修正がユーザーに影響することはありません。このパッチにより、algorithmsの設定が必須になりました。