Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-20323 — CVE-2021-20323の概念実証と分析であり、Keycloakのclients-registrationsエンドポイントにおける反射型XSS脆弱性について、悪用条件、緩和策の推奨事項、および公式アドバイザリへのリンクを含んでいます。 | Kitploit
ツール/GitHubGitHub/ndmalc/cve-2021-20323
脆弱性分析ウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト論文と研究学習と教育
GitHubndmalc/cve-2021-20323

CVE-2021-20323

CVE-2021-20323の概念実証と分析であり、Keycloakのclients-registrationsエンドポイントにおける反射型XSS脆弱性について、悪用条件、緩和策の推奨事項、および公式アドバイザリへのリンクを含んでいます。

リポジトリを見る
1323年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2021-20323

説明

Keycloak 18.0.0 未満かつ 10.0.0 以降には、clients-registrations エンドポイントに反映型 XSS が存在します。このバグは、エンドポイントでサポートされていないパラメータ名をキーとする JSON 構造を POST で送信することでトリガーされます。レスポンスは、エラーメッセージ内に JSON キーを反映し、ヘッダーが Content-Type: text/html に設定されます。ブラウザで実行されると、JSON キー内の HTML コードが解釈され、JavaScript コードがトリガーされます。認証は不要で、バグは利用可能なすべてのレルムに影響します。

現在、このバグは Content-Type: application/json を必要とし、POST で送信されるため、ユーザーに影響を与える一般的な悪用手順はありません。

このリポジトリは、CVE-2021-20323 の POC と、修正/緩和の推奨事項を提供します。

バグのトリガー方法

このバグは非常に簡単にトリガーできます。

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/json" -d "{\"\":1}"

openid-connect プロバイダーを使用してもトリガー可能です。

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/openid-connect -H "Content-type: application/json" -d "{\"\":1}"

注: 古い Keycloak バージョン(quarkus ではなく wildfly で動作しているもの)では、ベースパスは /realms/* ではなく /auth/realms/* になります。

バグは悪用可能か?

複数の情報源(こちら や こちら)で確認できるように、Content-Type: application/json を必要とする反映型 POST XSS を一般的に悪用することはできません。悪用が可能となる唯一のケースは、CORS ポリシーがデフォルトから手動で緩和され、クロスオリジンリクエストが許可されている場合です。このシナリオは、アプリケーション所有者が機能上の理由から特別なユースケースでのみ想定するのが妥当です。このような場合に悪用可能とするには、攻撃者は CORS ポリシーで許可されているドメイン/サーバーを制御しているか、リレーとして使用できる第二のドメインに XSS がある必要があります。

CVE-2021-20323 では、Keycloak は基本的な form 送信で許可される唯一のタイプである multipart/form-data または application/x-www-form-urlencoded の POST を受け付けません。このため、CVE-2021-20323 は CORS が明示的に許可している場合にのみ悪用可能です。

root@kitploit:~
# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: multipart/form-data" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/x-www-form-urlencoded" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

修正方法

Keycloak 18.0.0 以降にアップデートしてください。

RedHat Single Sign-On(Keycloak を RedHat が再パッケージしたもの)については、既知の修正バージョンはありません。

緩和策の代替案

  1. clients-registrations への呼び出しを禁止するリバースプロキシを設置する。
  2. Keycloak を ACL で設定し、clients-registrations へのアクセスを制限する(この Keycloak ブログ記事 と同様)。

リンク

  • https://github.com/keycloak/keycloak/security/advisories/GHSA-m98g-63qj-fp8j
  • https://nvd.nist.gov/vuln/detail/CVE-2021-20323
  • https://bugzilla.redhat.com/show_bug.cgi?id=2013577
  • https://access.redhat.com/security/cve/CVE-2021-20323
  • https://github.com/keycloak/keycloak/commit/3aa3db16eac9b9ed8c5335ac86f5f50e0c68662d
  • https://security.stackexchange.com/questions/263301/reflected-xss-found-in-web-application-via-post-request-with-json-body-is-this
  • https://www.keycloak.org/2021/12/cve

ライセンス

MIT ライセンス © [ndmalc]

ツールをダウンロード