Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-3494_Verfication — 复现并分析 CVE-2026-3494,这是 MariaDB server_audit 插件中的一个审计日志绕过漏洞,利用基于 Docker 的多版本测试来比较存在漏洞版本与已修补版本之间的日志记录行为。 | Kitploit
工具/GitHubGitHub/kelnor/cve-2026-3494_verfication
漏洞分析漏洞利用论文与研究学习与教育数据库安全
GitHubkelnor/cve-2026-3494_verfication

CVE-2026-3494_Verfication

复现并分析 CVE-2026-3494,这是 MariaDB server_audit 插件中的一个审计日志绕过漏洞,利用基于 Docker 的多版本测试来比较存在漏洞版本与已修补版本之间的日志记录行为。

查看仓库
74个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-3494 - MariaDB server_audit 日志记录验证 PoC

本项目提供了一个专用环境,用于验证和分析 MariaDB server_audit 插件在 SQL 查询中使用特定内联注释(#、--)时可能存在的审计日志绕过问题。


主要发现

  • v11.8.6 中的日志遗漏:在 MariaDB v11.8.6 中观察到某些查询(例如带注释的 SET PASSWORD 或 Error 1046 场景)未能被记录到审计日志中,而该版本此前被认为已修复此问题。
  • 潜在的解析器差异:发现近期版本中审计插件解析器行为可能发生了变化,多行注释(#)可能导致 DCL 语句被审计器错误处理或忽略。
  • 版本回归识别:检测到在 v11.8.5 及以下版本中成功记录的日志在 v11.8.6 中被遗漏,表明审计日志记录逻辑可能存在回归。

1. 概述

  • CVE 参考:CVE-2026-3494
  • 受影响版本:MariaDB 11.8.5 及以下版本(包括 10.x 分支)
  • 漏洞详情:当 server_audit 启用了 QUERY_DCL、QUERY_DDL 和 QUERY_DML 等过滤器时,某些包含内联注释的查询可能会绕过日志记录机制。
  • 目标:在相同的查询条件下,比较多个 MariaDB 版本(易受攻击版本 vs. 已修补版本)的审计日志记录行为。

2. 实际结果(验证)

以下矩阵总结了测试期间观察到的日志记录行为:

root@kitploit:~
[MariaDB 10.3.39 / 11.8.5]
- 用例 #1、#2A、#2B、#3、#4 → 全部已记录(正常行为)

[MariaDB 11.8.6(目标版本)]
- 用例 #2B(Error 1046)→ 未记录(日志遗漏)❗
- 用例 #3(带注释的 SET PASSWORD)→ 未记录(日志遗漏)❗
- 用例 #1、#2A、#4 → 已记录(正常行为)

3. 测试环境

本项目使用 Docker Compose 运行三个独立的 MariaDB 实例:


4. 设置与执行

1) 基础设施设置(Docker)

构建并启动 MariaDB 容器。环境会自动配置 server_audit 插件并初始化测试用户。

root@kitploit:~
# 构建并启动容器
docker compose up --build -d

# 验证容器状态
docker ps

2) 准备工作(主机)

安装所需的 Python 依赖:

root@kitploit:~
pip install pymysql

3) 运行 PoC

该脚本可以从项目内的任何目录执行。

root@kitploit:~
python poc/poc.py

5. 测试用例详情

PoC 执行 5 个不同的场景:

  1. TEST_CASE_1(正常):无注释的标准查询(对照组)。
  2. TEST_CASE_2_A(Error 1146):导致“表不存在”错误的查询。
  3. TEST_CASE_2_B(Error 1046):导致“未选择数据库”错误的查询(Jira 复现用例)。
  4. TEST_CASE_3(带注释的 SET PASSWORD):包含嵌入式 # 注释的 SET PASSWORD 命令(绕过检查)。
  5. TEST_CASE_4(带注释的 SELECT):包含嵌入式 # 注释的 SELECT 语句(绕过检查)。

6. 结果解读

  • LOGGED:查询已成功记录到审计日志中。
  • NOT LOGGED:查询未记录到日志中(潜在的绕过或回归)。
  • >> Actual Log:以蓝色显示 server_audit.log 中的原始条目,以验证所记录语句的完整性。

7. 验证日志(实际证据)

以下是实际执行日志,显示了预期行为(11.8.5)与日志遗漏(11.8.6)之间的差异。

MariaDB 11.8.5(预期日志记录行为)
root@kitploit:~
[+] TEST_CASE_2_B_ERROR_1046
    结果:已记录
    >> 实际日志:| 20260504 04:45:05,...,QUERY,mysql,'SELECT * FROM user',1046

[+] TEST_CASE_3_COMMENT_SET_PASSWORD
    结果:已记录
    >> 实际日志:| 20260504 04:45:07,...,QUERY,mysql,'SET PASSWORD # CVE-2026-3494 Test ...',1133
MariaDB 11.8.6(观察到日志遗漏)
root@kitploit:~
[+] TEST_CASE_2_B_ERROR_1046(未选择数据库)
    结果:未记录  <-- 检测到遗漏

[+] TEST_CASE_3_COMMENT_SET_PASSWORD(内联注释 #)
    结果:未记录  <-- 检测到遗漏

[!TIP] 如需所有测试用例和版本的完整终端输出,请参阅完整执行日志。


8. 项目结构

root@kitploit:~
.
├── config/              # MariaDB server_audit 配置
├── init/                # 初始化脚本(用户和插件设置)
├── logs/                # 审计日志卷挂载
├── poc/
│   └── poc.py           # 自动化验证脚本
├── results/
│   └── full_execution_log.md  # 详细的终端输出日志
├── docker-compose.yml   # 多版本环境定义
└── README.md            # 项目文档(当前文件)

9. 免责声明

本项目仅用于教育和安全研究目的。请负责任地使用,未经充分测试,请勿将这些配置应用于生产环境。

下载工具
版本端口状态描述
MariaDB 10.3.393306易受攻击旧版稳定版本验证
MariaDB 11.8.53307易受攻击最新易受攻击版本验证
MariaDB 11.8.63308目标评估最近的审计日志记录变更