目標達成 すべての支援者に感謝 — 100%達成しました!

目標: 1000 CNY · 調達済み: 1000 CNY

100.0%

CVE-2021-20323 — 神龙十问 AI 深度分析摘要

Q1这个漏洞是什么?(本质+后果)

🚨 **本质**:反射型 XSS 漏洞。Keycloak 在处理 POST 请求时,未验证 JSON 中的非法键名,直接将其回显在错误消息中。后果:攻击者可注入恶意脚本,在受害者浏览器中执行。

Q2根本原因?(CWE/缺陷点)

🛡️ **根本原因**:CWE-79 (跨站脚本)。缺陷点在于 `clients-registrations` 端点缺少对 POST 参数(JSON Key)的 sanitization(清理),且响应头被错误设置为 `Content-Type: text/html`。

Q3影响谁?(版本/组件)

📦 **影响范围**:Red Hat Keycloak。具体版本:**10.0.0 到 18.0.0 之间**(不含 18.0.0,且大于 10.0.0)。组件:`keycloak-services`。

Q4黑客能干啥?(权限/数据)

💣 **黑客能力**:窃取会话 Cookie、劫持用户身份、重定向受害者、执行任意 JS 操作。由于影响所有 Realm,攻击面较广。

Q5利用门槛高吗?(认证/配置)

🔓 **利用门槛**:**低**。无需认证(No authentication required)。只需构造特定的 POST 请求,发送包含恶意 JSON Key 的数据即可触发。

Q6有现成Exp吗?(PoC/在野利用)

🔍 **现成 Exp**:**有**。GitHub 上已有多个 PoC 和扫描工具(如 `CVE-2021-20323` 专用工具、Nuclei 模板)。在野利用情况需结合具体环境判断,但技术门槛极低。

Q7怎么自查?(特征/扫描)

🔎 **自查方法**:使用 Nuclei 模板 `http/cves/2021/CVE-2021-20323.yaml` 进行扫描。或手动向 `/clients-registrations` 发送 POST 请求,注入非法 JSON Key,观察响应是否包含 `text/html` 头及回显内容。

Q8官方修了吗?(补丁/缓解)

🩹 **官方修复**:数据未提供具体补丁链接,但明确指出 **18.0.0 及以上版本**已修复该漏洞。建议升级至最新稳定版。

Q9没补丁咋办?(临时规避)

🚧 **临时规避**:由于漏洞依赖 `Content-Type: text/html` 响应,可尝试配置 WAF 或反向代理,强制拦截或修改此类非标准 Content-Type 的响应。限制对 `clients-registrations` 端点的访问权限。

Q10急不急?(优先级建议)

⚡ **优先级**:**高**。无需认证即可触发,且利用工具现成。虽然需要 POST 请求,但结合钓鱼或内部服务调用极易实施。建议立即评估版本并升级。