Skip to content

CVE 回帰マトリクス

別の OIDC / OAuth / JOSE 実装に対して CVE が公表されたとき、本ライブラリにとっての問いは 「同じ欠陥が本ライブラリにも届きうるか、届かないとすれば構造的に何が防いでいるか」 です。コードレビューだけでは正直な答えは出せず、将来のリファクタで回避経路が再び開いてしまったときにビルドが落ちるテストが必要です。

本ページはそのテスト群の公開リストです。ここに載っている CVE には、少なくとも 1 本のユニット / fuzz テストが対応し、対象の経路を実際に呼び出して拒否動作を固定化しています。表の各行に挙げたファイル名・テスト名はリポジトリに実在します。

CVE 回帰マトリクスの流れ: 他実装の CVE から欠陥クラスを抽出し、本ライブラリの到達可能性を調べ、到達する場合は拒否テストで固定する。外部 CVE他実装の欠陥欠陥クラスalg confusion など到達可能性構造的に届くか拒否テストクラス除外

表の読み方

  • CVE — 他実装に対する元の脆弱性開示です。本ライブラリに対する CVE 記録ではありません。テストが防ごうとしている 欠陥クラス を示すためのフィールドです。
  • クラス — 根本的な欠陥の種類(algorithm confusion、redirect_uri マッチング、PKCE ダウングレード等)。
  • RFC アンカ — テストが固定対象としている仕様セクション。
  • テスト — 該当箇所が退行したらビルドを落とすテスト。

JOSE / JWT 検証

CVEクラスRFC アンカテスト
CVE-2015-9235 (jsonwebtoken)alg=none 受理RFC 8725 §3.1internal/jose.FuzzJOSEParse (alg=none seed)
internal/tokens.TestVerify_AlgConfusion_HSUsingECPublicKeyBytesAsSecret
CVE-2016-10555 (jwt-simple)alg=HS256 受理、公開鍵を HMAC secret として使用RFC 8725 §2.1internal/tokens.TestVerify_AlgConfusion_HSUsingECPublicKeyBytesAsSecret
CVE-2015-2951 (jose4j)alg=none 受理RFC 8725 §3.1internal/jose.FuzzJOSEParse
CVE-2024-54150 (cjwt)algorithm confusionRFC 8725 §2.1internal/tokens.TestVerify_AlgConfusion_HSUsingECPublicKeyBytesAsSecret
CVE-2026-22817 / CVE-2026-27804 / CVE-2026-23552 (Hono JWT 2026 cluster)大文字小文字違いの alg=NONE で deny-list を回避RFC 8725 §3.1internal/jose.TestParseAlgorithm_CaseVariantsRejected
internal/jose.FuzzJOSEParse (case-variant seeds)
CVE-2026-33322 (MinIO OIDC)algorithm confusionRFC 8725 §2.1internal/tokens.TestVerify_AlgConfusion_HSUsingECPublicKeyBytesAsSecret
CVE-2026-48526 (PyJWT)非対称公開 JWK を HMAC 検証 secret として受理RFC 8725 §2.1internal/tokens.TestVerify_AlgConfusion_HSUsingECPublicKeyBytesAsSecret
CVE-2018-0114 (Cisco / node-jose)jwk ヘッダの盲信 — JWS 自身が運ぶ鍵で検証してしまうRFC 8725 §3.1–3.5internal/jose.TestParseSigned_HeaderInjection_NeverFetches
internal/jose.FuzzJOSEParse (jku seed)
CVE-2018-1000531 (inversoft prime-jwt)alg ヘッダのダウングレード + jwk ヘッダの盲信RFC 8725 §3.1internal/jose.TestParseSigned_HeaderInjection_NeverFetches
CVE-2017-11424 (python-jose 系)ヘッダ内の jku URL を辿って鍵を取得RFC 8725 §3.1internal/jose.TestParseSigned_HeaderInjection_NeverFetches
CVE-2019-7644 (Auth0 jsonwebtoken-koa)jwk ヘッダの盲信RFC 8725 §3.1internal/jose.TestParseSigned_HeaderInjection_NeverFetches
CVE-2026-34240 / GHSA-vm9r-h74p-hg97 (Dart jose)jwk ヘッダの盲信 — 検証側が攻撃者提供の鍵素材を検証候補鍵として扱ってしまうRFC 8725 §3.1–3.5internal/jose.TestParseSigned_HeaderInjection_NeverFetches
CVE-2025-59420 (Authlib)crit 拡張リストを無視RFC 7515 §4.1.11 / RFC 8725 §3.5internal/jose.TestParseSigned_CritHeaderRejectedAtVerify
CVE-2026-32597 (PyJWT)同じ crit 無視欠陥RFC 8725 §3.5internal/jose.TestParseSigned_CritHeaderRejectedAtVerify
CVE-2026-28498 (Authlib)未知 / 未対応の alg を渡された hash-binding verifier が fail-openRFC 8725 §3.1internal/jose.TestParseSigned_RejectsUnsupportedRegisteredAlg_NoFailOpen
CVE-2026-29000 (pac4j-jwt)JWE 復号を認証と取り違え、復号後の unsigned / plain inner JWT を受理RFC 8725 §3.1 / RFC 9101 §5.2internal/jar.TestVerify_RejectsJWEWrappedUnsignedJWT
CVE-2024-29371 (jose4j JWE 解凍 bomb)細工された JWE によるリソース枯渇RFC 8725 §3.11internal/jose.FuzzJOSEParse (oversize seed)
internal/parendpoint.FuzzPARFormBody
internal/introspectendpoint.FuzzIntrospectFormBody
internal/revokeendpoint.FuzzRevokeFormBody
CVE-2026-27962 (Authlib)攻撃者提供の jwk ヘッダを検証鍵として信頼RFC 7515 §4.1.3 / RFC 8725 §3.1internal/jose.TestParseSigned_HeaderInjection_NeverFetches
internal/clientauth.TestPrivateKeyJWTVerifier_KeySelectionIgnoresTheAssertionsOwnHeader
CVE-2026-48525 / CVE-2025-61920 (PyJWT / Authlib)oversized JOSE segment を拒否前に処理し、リソース枯渇RFC 8725 §3.11test/scenarios.TestEndpoints_OversizedJWSIsRefusedBeforeItIsDecoded

Authorize / redirect_uri

CVEクラスRFC アンカテスト
CVE-2024-10318 (NGINX OIDC リファレンスモジュール)フロントチャネル id_token が nonce バインディングなしに発行 → セッションフィクセーションOIDC Core §15.5.2 / RFC 9700 §2.1.2internal/authorize.TestRequest_Validate_RejectsImplicitAndHybridResponseTypes (response_type=code 限定)
internal/backchannel.TestSignLogoutToken_EmitsRequiredClaims (logout_token の typ 区別)
CVE-2024-8883 (Keycloak)redirect_uri パッチをワイルドカード / suffix で迂回RFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/authorize.TestRequest_Validate_RedirectURIAttackVariants
CVE-2020-15234 (ory/fosite)大文字小文字違いの redirect_uri が登録値にマッチRFC 6749 §3.1.2.3internal/authorize.TestRequest_Validate_RedirectURIAttackVariants
GHSA-rfq3-w54c-f9q5 (ory/fosite)loopback redirect ルールでホスト / クエリの差し替えを許してしまった欠陥 (修正後はポートのみが実行時に変動可)。本ライブラリは登録値との完全一致のみ許容するためさらに厳格RFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/authorize.TestRequest_Validate_RedirectURIAttackVariants
CVE-2026-7571 (Keycloak)無効化したはずの implicit フロー制御を迂回。偽装したクライアント状態経由でフロントチャネルに access token が露出RFC 9700 §2.1.2internal/authorize.TestRequest_Validate_RejectsImplicitAndHybridResponseTypes
CVE-2026-3872 (Keycloak)ワイルドカード redirect_uri..;/ でパストラバーサルRFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/authorize.TestRequest_Validate_RedirectURIAttackVariants
CVE-2026-7504 (Keycloak)ワイルドカード redirect_uri の authority / userinfo 部に複数の @ byte を混ぜてパーサを混乱させるRFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/authorize.TestRequest_Validate_RedirectURIAttackVariants
CVE-2026-9689 (Keycloak)HTTP parameter pollution: 重複した OIDC 認可リクエストパラメータが、認可レスポンス側の重複パラメータとして反射されるRFC 6749 §3.1 / RFC 9700 §4.1internal/authorize.TestParseValues_DuplicateParameter
CVE-2026-44681 (Authlib)malformed な認可リクエストで、検証済みでない攻撃者指定 redirect_uri にリダイレクトしてしまう。正しくは first-party error を返すべきRFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/authorizeendpoint.TestAuthorize_RejectsBadRedirectURIWithJSON
CVE-2026-32235 (Backstage auth-backend)DCR の redirect-URI allowlist を迂回RFC 6749 §3.1.2.3 / RFC 9700 §4.1internal/registrationendpoint.TestDCR_RegisteredRedirectURIIsMatchedByteExactly
internal/registrationendpoint.TestDCR_RejectsRedirectURIShapesThatBlurTheMatch

PKCE / コード交換

CVEクラスRFC アンカテスト
CVE-2024-23647 (authentik ≤2023.10.6, CVSS 6.1)/tokencode_challenge 無し で発行された code に対しても code_verifier を受理 — PKCE ダウングレード。本ライブラリは public / native client への非 PKCE 認可コード発行も /authorize で拒否し、token 側ガードは defense in depth として残すRFC 9700 §4.8 / RFC 7636 §4.6internal/authorize.TestRequest_Validate_PublicClientAlwaysRequiresPKCE
test/scenarios.TestScenario_PKCE_007_PublicClientCodeRequiresPKCE
internal/grants/authcode.TestExchange_NoPKCE_RejectsSmuggledVerifier
CVE-2025-4144 (Cloudflare workers-oauth-provider <0.0.5, CVSS 8.1)同じダウングレードを別エコシステムで再現。public / native client は非 PKCE code が発行される前に拒否されるRFC 9700 §4.8internal/authorize.TestRequest_Validate_PublicClientAlwaysRequiresPKCE
test/scenarios.TestScenario_PKCE_007_PublicClientCodeRequiresPKCE
internal/grants/authcode.TestExchange_NoPKCE_RejectsSmuggledVerifier

認可コード横取り (クロスクライアント取得)

CVEクラスRFC アンカテスト
GHSA-vh7g-p26c-j2cw (dexidp/dex, 2024)フロントチャネルで横取りした認可コードを 別の client_id で交換して、被害者向けに発行されたトークンを取得できた欠陥。構造的緩和は (code, client_id, redirect_uri[, code_verifier]) のタプル一致を交換時に強制することRFC 6749 §4.1.3 / OIDC Core §3.1.3.4internal/grants/authcode.TestExchange_RejectsClientMismatch
CVE-2026-4282 (Keycloak)shared single-use-object namespace 経由の認可コード偽造RFC 6749 §4.1.3op/store/contract.namespaceDisjoint
op/store/contract.namespaceConsumeIsScoped

クライアント認証 / private_key_jwt

CVEクラスRFC アンカテスト
CVE-2025-27370 (OIDF 連携、OIDC 系統)private_key_jwt aud confusion: 鍵を複数 AS で使い回したクライアントを、敵対 AS が中継してなりすましRFC 7523bis / FAPI 2.0 §5.2.2internal/clientauth.TestPrivateKeyJWTVerifier_AudIssuer_AcceptedViaAuxAudiences
CVE-2025-27371 (IETF 連携、OAuth 2.0 系統)同じ欠陥、OAuth プロファイル系統RFC 7523bisinternal/clientauth.TestPrivateKeyJWTVerifier_AudIssuer_AcceptedViaAuxAudiences
CVE-2020-15222 (ory/fosite < 0.31.0, GHSA-mh3m-8c74-74xh)private_key_jwtjti の一意性が強制されない — assertion replayRFC 7523 §3 / CWE-345internal/clientauth.TestPrivateKeyJWTVerifier_JTIReplay_Rejected
GHSA-v3q9-2p3m-7g43 (ory/fosite, 2020 cluster)同じ jti リプレイ欠陥クラスが別 GHSA として再開示されたもの。構造的緩和は同一 (assertion の exp 期間中、jti ごとに 1 回限りの使用)RFC 7523 §3 / CWE-345internal/clientauth.TestPrivateKeyJWTVerifier_JTIReplay_Rejected
CVE-2026-1180 (Keycloak)動的クライアントの private_key_jwt 鍵解決時に jwks_uri 経由で SSRFRFC 7591 §2 / RFC 7523 §3internal/securefetch.TestPolicy_SSRFContract
CVE-2024-53861 (PyJWT)issuer の prefix を完全一致として受理RFC 7523 §3internal/clientauth.TestPrivateKeyJWTVerifier_IssuerMustMatchWholly
CVE-2026-11800 (Keycloak)client assertion の鍵選択またはアルゴリズム方針を JOSE ヘッダで誘導RFC 8725 §3.1internal/clientauth.TestPrivateKeyJWTVerifier_KeySelectionIgnoresTheAssertionsOwnHeader
internal/clientauth.TestPrivateKeyJWTVerifier_RejectsAlgOutsideClientPin
CVE-2026-48523 (PyJWT)登録済み JWK が verifier のアルゴリズム方針を拡張RFC 8725 §3.1internal/clientauth.TestPrivateKeyJWTVerifier_RegisteredKeyCannotWidenTheAlgorithmPolicy
CVE-2026-22746 (Spring Security)存在しない client_id の応答時間差によるアカウント列挙CWE-208internal/clientauth.TestVerifyClient_PrivateKeyJWT_UnknownClient_DummyVerifyShim
internal/clientauth.TestPrivateKeyJWTVerifier_NoKeysRunsTimingShim

Remote JWKS と fetch の安全性

CVEクラスRFC アンカテスト
CVE-2026-48522 (PyJWKClient)制限のない jwks_uri scheme でローカルまたは非 HTTP リソースを取得RFC 7591 §2internal/registrationendpoint.TestDCR_ClientMetadataIsTreatedAsAttackerInput
internal/jar.TestFetcher_JWKSURISchemeIsConstrainedToTheNetwork
CVE-2026-48524 (PyJWKClient)未知の kid により JWKS の再取得を無制限に強制RFC 8725 §3.10internal/jar.TestFetchFresh_BypassesFreshCacheThenThrottles
internal/jar.TestJWKSCache_SingleflightCollapsesConcurrentFetches

トークン introspection

CVEクラスRFC アンカテスト
CVE-2026-37979 (Keycloak)introspection の audience バイパス — confidential クライアントが別のリソースサーバ向けトークンの claim を取得できたRFC 7662 §2.2internal/introspectendpoint.TestHandler_JWTAccessToken_DifferentClient
internal/introspectendpoint.TestHandler_OpaqueAccessToken_DifferentClient
CVE-2026-8922 (Keycloak)失効条件の一方が他方を覆い隠し、失効済みトークンを active と判定RFC 7662 §2.2internal/introspectendpoint.TestEndToEnd_ActiveHonoursEveryRevocationInput

リフレッシュトークンのローテーション

CVEクラスRFC アンカテスト
CVE-2026-1035 (Keycloak)ローテーション強制の TOCTOU レースによるリフレッシュトークン再利用バイパスRFC 9700 §2.2.2 / RFC 6749 §6op/storeadapter/inmem.TestConsumeRefresh_Race
CVE-2026-9802 (Keycloak)再起動でプロセス内の stale-token 判定が初期化され、ローテーション済み refresh token をリプレイRFC 9700 §2.2.2 / RFC 6749 §6internal/grants/refresh.TestExchange_RotationVerdictSurvivesAProcessThatNeverSawTheRotation

セッションライフサイクル (フィクセーション / ローテーション)

CVEクラスRFC アンカテスト
GHSA-xhpr-465j-7p9q (Keycloak, 2024)メール検証経由の初回ログインフィッシング (CWE-384 セッションフィクセーション)。信頼境界をまたぐ前から存在していたセッションが検証後も有効なまま使われ、cookie を仕込んだ攻撃者が検証後の信頼に乗ってしまう欠陥。構造的緩和は信頼境界でセッション ID をローテーションし、CreatedAt は維持して攻撃者がローテーションを誘発しても寿命を延ばせないようにすることOIDC Core §3.1.2.7internal/sessions.TestManager_Rotate_IssuesFreshIDPreservingChooserGroup
internal/sessions.TestManager_Rotate_PreservesCreatedAt
CVE-2026-7507 (Keycloak)OIDC ログインのセッションフィクセーション → アカウント乗っ取り。事前に植えられた session ID が fresh authentication 後も生き残る欠陥。構造的緩和は、authorize / interaction 境界で fresh authn factor が完了した時点で cookie-bound session ID をローテーションし、古い session record を削除することOIDC Core §3.1.2.7internal/authorizeendpoint.TestInteractionPost_RotatesSessionIDAfterFreshAuthn
CVE-2025-68158 (Authlib)URL 上の interaction state を開始元とは別のブラウザが解決OIDC Core §3.1.2.7internal/authorizeendpoint.TestInteraction_ResolvesOnlyForTheBrowserThatStartedIt

Token exchange と custom grant

CVEクラスRFC アンカテスト
CVE-2026-1486 (Keycloak)custom grant の事前条件失敗後にもトークンを発行RFC 8693 §2.2.1internal/tokenendpoint.TestCustomGrant_NoTokenEscapesAFailedPrecondition
CVE-2026-9704 (Keycloak)token exchange が delegation parameter を黙って落として続行RFC 8693 §2.1test/scenarios.TestTokenExchange_DelegationParametersAreNeverSilentlyDropped

多要素認証 (TOTP / step-up)

CVEクラスRFC アンカテスト
GHSA-9r3w-4j8q-pw98 (cal.com)TOTP コードを送るだけでパスワード検証を完全に飛ばせた欠陥 — primary factor の証明なしで TOTP ステップが進むRFC 6238 / OIDC Core §2 (acr 意味論)internal/authn.TestLoginFlowTOTPRequiresPrimary (オーケストレータ層)
internal/authn/totp.TestAuthenticator_BeginRequiresSubject
internal/authn/totp.TestAuthenticator_ContinueRequiresSubject (アダプタ層)
GHSA-5jfq-x6xp-7rw2 (Keycloak)二要素バイパス — 同じ構造クラス。同じ二層緩和 (オーケストレータのステップ順序 + アダプタ側の Subject 必須ゲート) で対応RFC 6238 / OIDC Core §2(上と同じテスト群)
CVE-2026-37982 (Keycloak)required-action email link の one-time-use 意味論が壊れており、傍受された WebAuthn / TOTP enrollment link をリプレイして攻撃者の authenticator を登録できたone-time credential invariant / OIDC Core §2 (amr 意味論)internal/authn/emailotp.TestContinueVerifyReplayRejected
CVE-2026-9798 (Keycloak)CIBA 認証フローが interactive login 側の brute-force lockout を迂回し、別の credential-attempt budget を得ていたCIBA Core §7 / cross-factor lockout invariantinternal/authn/lockout.TestCrossFactorPivotTriggersLockout
CVE-2026-33473 / CVE-2025-43798 / CVE-2021-43177 (Vikunja / Liferay / devise-two-factor)TOTP コードを当該または前の time step でリプレイRFC 6238internal/authn/totp.TestVerify_ReplaysSameStepRejected
CVE-2026-28787 (OneUptime)WebAuthn ceremony challenge のリプレイWebAuthn Level 3 §13.4.3internal/authn.TestTickFactorScratchRoundtrip
internal/authn/passkey.TestAuthenticator_ChallengeComesOnlyFromServerHeldState
CVE-2026-6856 (Keycloak)vouch されていない direct attestation の AAGUID allowlist を受理WebAuthn Level 3 §6.4.4internal/authn/passkey.TestAAGUIDAllowlistOnlyDecidesOnAVouchedAAGUID
CVE-2026-22751 (Spring Security)one-time email code の同時使用で複数認証が成功one-time credential invariantinternal/authn/emailotp.TestContinueVerify_ConcurrentSubmissionsOfOneCodeYieldOneSuccess

DPoP / sender-constrained token

CVEクラスRFC アンカテスト
CVE-2026-54431 (liboauth2)DPoP proof が、公開鍵だけであるべき jwk ヘッダに private EC key material を含んでいても受理していたRFC 9449 §4.3 step 7internal/dpop.TestVerify_RejectsPrivateKeyInJWKHeader

mTLS クライアント ID

CVEクラスRFC アンカテスト
CVE-2026-22747 / CVE-2026-47838 (Spring Security)X.509 subject DN の文字列表現をパースして、細工された属性が別 ID と衝突RFC 8705 §2.1internal/mtls.TestVerifyTLSClientAuth_SubjectDN_CraftedNameDoesNotCollideOnceRendered
internal/mtls.TestVerifyTLSClientAuth_SubjectDN_MultiValuedMatcherDoesNotFlatten

Dynamic Client Registration

CVEクラスRFC アンカテスト
CVE-2026-22752 (Spring Authorization Server)未検証の client metadata による stored XSS、権限拡張、SSRFRFC 7591 §2internal/registrationendpoint.TestDCR_ClientMetadataIsTreatedAsAttackerInput
op/interaction.TestHTMLDriver_ClientDisplayNameCannotBecomeMarkup

JARM / レスポンス署名

CVEクラスRFC アンカテスト
CVE-2023-6927 (Keycloak)response_mode=form_post.jwt で CVE-2023-6134 を迂回 — JARM 追加時に bearer フローと同じ alg 制約が抜けたFAPI 2.0 Message Signing §5.4 / RFC 8725 §3.1internal/jarm.TestSigner_AlgIsES256_Structural
CVE-2023-6134 (Keycloak、親 CVE)元の form-post ダウングレード(6927 経由で追跡)RFC 8725 §3.1internal/jarm.TestSigner_AlgIsES256_Structural

エラーレスポンスの出力面 (redirect / form_post)

authorize エンドポイントは、クエリ付きリダイレクトと自動送信される form_post HTML の 2 つの出力面でエラーを返します。どちらの面でも、敵対的な redirect_urierror_description が HTML 注入や open-redirect 連鎖を起こさないよう、RP 由来の byte 列をエスケープしなければなりません。

CVEクラスRFC アンカテスト
GHSA-27gc-wj6x-9w55 (Keycloak, 2024)error_description をエスケープせず HTML エラーページに反射してしまう欠陥 (CWE-79 / CWE-601) — フィッシング / open-redirect 連鎖。二層の緩和: (1) error_description の値はハードコードされた sentinel 文字列のクローズドカタログで、RP の byte 列が直接届かない (2) 通信路上では url.Values.Encode がリダイレクト面を percent-encode し、html.EscapeStringform_post 面の action=value= を共にエスケープRFC 6749 §4.1.2.1 / RFC 9700 §4.10internal/jarm.TestWriteFormPost_EscapesRedirectAndJWT
internal/authorizeendpoint.TestBuildRedirectError_EncodesHostileBytes_NoXSS
internal/authorizeendpoint.TestBuildRedirectError_StripsControlBytes

運用の可観測性 (revoke の失敗が見えない問題)

CVEクラスRFC アンカテスト
GHSA-7mqr-2v3q-v2wm (ory/fosite)/revoke がストレージエラーを黙って握りつぶしていた欠陥。RFC 7009 §2.2 は通信路上の 200 応答を維持することを要求し続けるため、失効処理が実際に失敗しても運用側に観測可能な信号がない状態でした。本ライブラリは通信路上の 200 を維持しつつ、NotFound 以外のストア障害では token.revoke_failed 監査イベントを発火し、SOC ツール側で「気付かれにくい失敗」クラスを検知できるようにしていますRFC 7009 §2.2internal/revokeendpoint.TestHandler_RefreshToken_StoreFault_EmitsAudit

DoS / パース安全性

JOSE と各エンドポイントの fuzz ハーネスが、細工された入力でも panic を起こさないことを保証します:

対象fuzzer防いでいる CVE リスク
JOSE パースinternal/jose.FuzzJOSEParseRFC 8725 §3.11 / CVE-2024-29371(解凍 bomb), 2015 alg=none cluster
PAR エンドポイント bodyinternal/parendpoint.FuzzPARFormBodyCVE-2024-29371(CVSS 7.5、jose4j JWE 解凍 bomb)
Introspection エンドポイント bodyinternal/introspectendpoint.FuzzIntrospectFormBodyCVE-2024-29371
Revocation エンドポイント bodyinternal/revokeendpoint.FuzzRevokeFormBodyRFC 8725 §3.11 / CVE-2024-29371(panic を起こさないこと)

FuzzJOSEParse の「panic しないこと」と JWS-only 契約は、OP が決して受理しない入力形(compact JWS のみ、JWE / 圧縮の経路は不在、CBC-mode JWE alg は 許可リスト外)を起点とする依存ライブラリ側のアドバイザリ群もクラス単位で覆っています:

アドバイザリソースクラスカバレッジ
GHSA-78h2-9frx-2jm8go-joseJWE 復号時の panic — ParseSigned は JWS のみで JWE 復号経路に到達しない
GHSA-c6gw-w398-hv78go-jose病的 JSON でのパース DoS — no-panic fuzz 契約でカバー
GHSA-c5q2-7r4c-mv6ggo-jose圧縮増幅 (CVE-2024-29371 cluster) — compact JWS のみで圧縮経路なし
GHSA-pvcr-v8j8-j5q3lestrrat-go/jwxJSON 形式パース panic — compact-only 拒否でカバー
GHSA-hj3v-m684-v259lestrrat-go/jwxJWE 圧縮 DoS — 同じ compact-only 契約
GHSA-7f9x-gw85-8grflestrrat-go/jwx悪意ある JWE パラメータ DoS — 同じ compact-only 契約
GHSA-rm8v-mxj3-5rmqlestrrat-go/jwxCBC-mode JWE の padding oracle 可能性 — JWS-only の許可リスト (RS256 / PS256 / ES256 / EdDSA) が CBC-mode JWE alg を全排除

このリストに 意図的に 含めないもの

  • 本ライブラリ自身に対する CVE。 本ライブラリには現時点で公表 CVE はありません。発生した場合は SECURITY.md脆弱性報告 のフローで扱い、本ページではありません。
  • OP の入力契約が構造的に弾けない依存ライブラリ側欠陥。 これらは CI の govulncheck で追跡し、バージョン更新で解決します。一方、OP の compact-JWS-only / JWS-only 許可リスト契約がトリガとなる入力を構造的に拒否できる場合 (JWE 側の panic、CBC padding oracle など) は、上の表に「クラスカバレッジ」として fuzz ハーネスへのポインタを添えて掲載しています。
  • TLS / トランスポート層の欠陥 (例: GHSA-gr79-9v6v-gc9rGHSA-q8hq-4h99-fj7xGO-2026-5856)。本ライブラリは HTTP サーバを所有しないため、TLS の構成は組み込み側の責任です。runtime / 標準ライブラリの修正は固定 Go toolchain で取り込みます。現在のリリースは crypto/tls の ECH privacy fix を含む toolchain go1.26.5 でビルド・テストしています。詳細は セキュリティ方針 を参照。
  • ライブラリが所有・実装していない outbound egress / SSRF 面 (例: CVE-2026-4874CVE-2026-1518CVE-2026-54430)。HTTP egress policy は組み込み側のネットワーク境界であり、Keycloak の backchannel-notification callback や liboauth2 の AWS-ALB JWKS fetch のような面は本ライブラリには存在しません。存在する OIDC jwks_uri SSRF クラスは上の CVE-2026-1180 でカバーしています。
  • RP callback 側の欠陥 (例: GHSA-3gx8-q682-38mxGHSA-wxw3-q3m9-c3jr)。nonce / state の保存と callback 検証は RP の責務です。OP は state を反射し、ID Token に nonce を載せますが、クライアント側 callback の session binding は所有しません。
  • SAML 側の欠陥 (例: GHSA-m9hp-7r99-94h5)。本ライブラリは SAML を実装しません (OP のみ)。
  • 追跡中だが未カバーの advisory。 ソースリポジトリ側の advisory queue は現在空です。将来 tracking 状態の advisory が追加された場合は、具体的なテストで契約を固定するまでこの公開 matrix には載せません。
  • CVE 番号が無い理論的攻撃。 仕様セクション(例: RFC 8725 §3.x)だけを動機としたテストはコードベースに存在しますが、欠陥クラスを既知の特定 CVE と紐づけられない限り本ページには載せません。

全体像

CVE 起点のテストは、他の 3 種の回帰素材と並んで存在します:

  1. 仕様シナリオ — リポジトリの test/scenarios/ が、CVE の有無に関わらず OIDC / OAuth / FAPI の仕様文言を直接カタログ化しています。
  2. OFCS 適合ハーネスOFCS 適合状況 を参照してください。OpenID Foundation 認定テストスイートが、FAPI 2.0 プランに沿って公開エンドポイントを end-to-end で実行します。
  3. Fuzz ハーネス — 上で列挙したものです。PR ごとに実行されます。

本ライブラリが回帰テストで固定化すべき CVE リスクがここに載っていない場合は Issue を起票してください。公開で議論すること自体が脆弱性に該当する内容であれば、脆弱性報告 のフローに従ってください。