MariaDB 于 2026 年 10 月 16 日公开三枚 CVSS 3.1 评分均为 9.9 的高危漏洞,分别编号 CVE-2026-85746、CVE-2026-85748 与 CVE-2026-92262。三者共同点是网络向量、复杂度低、只需低权限数据库账号、无需用户交互,且作用域越界——受影响的组件不止数据库进程本身,还可能波及宿主机与相邻服务。
事件概述
受影响区间从 10.6.1 起,直到下列修复版本之前:10.6.28、10.11.19、11.4.13、11.8.9、12.3.3、13.0.2。三枚漏洞在同一次点版本更新中修复,建议在同一维护窗口完成升级。
这已是近期数据库层第二次出现成组高分漏洞。多数生产环境的 MariaDB 长期停留在装机时的版本,容器镜像里更是几年不动,升级窗口常被业务连续性挤掉。
技术细节
CVE-2026-85746:ST_AsText 越界写
当 SQL 调用 ST_AsText 把深度嵌套的 GeometryCollection 转成 WKT 文本时,递归序列化既没有正确核算已输出字节数,也没有预留足够空间,于是写穿输出缓冲区(CWE-787)。攻击者构造一个 GIS 对象即可造成内存破坏;单独利用通常只到崩溃,但与另一枚内存类漏洞组合后可能发展为代码执行。
CVE-2026-85748:SYS_REFCURSOR 释放后使用
低权限账号可连续打开大量 SYS_REFCURSOR 游标,触发释放后使用与内存破坏,与其它漏洞组合时可能达成远程代码执行,修复落在 12.3.3。
CVE-2026-92262:#mysql50# 表名编码绕过
这是从 MySQL 时代继承的历史包袱(CWE-706)。#mysql50# 前缀原本用于标记旧版表名,却允许绕过常规表名文件系统编码。攻击者用它建表即可按未编码旧名访问目标文件,后果介于崩溃、数据损坏、外泄到远程代码执行之间。
影响评估
三枚漏洞的 CVSS 向量完全一致:AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H。翻译成运维语言:只要能连上 3306(或走应用层的 SQL 注入),手上有一个普通账号,就具备触发条件;一旦成功,机密性、完整性、可用性全部沦陷,影响范围还会溢出数据库进程。
对站长与主机商来说,最现实的威胁不是「黑客专门来打 MariaDB」,而是站点被注入后攻击者从数据库继续往宿主机走。共享主机上几十个站点共用一个实例,一个低权限账号就够用。截至 10 月 17 日尚无公开的在野利用确证,但情报平台口径不一,有的标注利用代码可用,建议按有 PoC 对待。
修复建议
直接升到对应分支的修复版本:10.6.28、10.11.19、11.4.13、11.8.9、12.3.3 或 13.0.2。生产环境按「备份 → 从库试跑 → 主库切换」顺序做,别跳过备份。暂时无法升级时,可先收窄暴露面:
- 把
CREATE TABLE与 GIS 函数权限从业务账号收回,业务库只保留增删改查; - 数据库端口不对公网开放,只监听内网地址或走 SSH 隧道;
- 应用侧做输入校验,空间数据入库前限制嵌套层级与总长度;
- 排查历史遗留的
#mysql50#表名,确认数据目录权限与隔离; - 开启审计日志,重点看短时间内大量游标创建与异常 GIS 查询。
mysql -uroot -p -e "SELECT VERSION();"
mysql -uroot -p -N -e "SELECT table_name FROM information_schema.tables WHERE table_name LIKE '#mysql50#%';"