phpMyAdmin 5.2.1 是 CVE-2023-38023(CSRF)和 CVE-2023-50741(RCE)的受影响版本,未引入token校验、仍存在blowfish_secret弱密钥fallback及session路径竞争漏洞;必须升级至5.2.2+或6.0.2,并同步配置SessionSavePath、禁用auto_start、屏蔽敏感路径。
phpmyadmin 5.2.1 没有修复 cve-2023-38023(csrf)和 cve-2023-50741(rce)这两个影响数据安全的关键漏洞——它反而是这些漏洞的受影响版本。
为什么 phpMyAdmin 5.2.1 仍存在高危 RCE 漏洞(CVE-2023-50741)
该版本未修补 blowfish_secret 自动生成逻辑缺陷,攻击者可利用此缺陷构造恶意会话并触发反序列化链,最终实现远程代码执行:
-
$cfg['blowfish_secret']若为空或为默认值(如'xampp'、'cookie'),新版仍沿用旧版弱密钥 fallback 行为 - 当
session.save_handler = files且session.save_path指向全局可写目录(如/tmp)时,攻击者可通过竞争条件写入恶意 session 文件 - 配合
index.php?target=db_sql.php类路径参数,可绕过 token 校验直接加载并反序列化攻击载荷
为什么 phpMyAdmin 5.2.1 无法防御 CSRF(CVE-2023-38023)
token 校验机制在该版本中尚未引入,所有敏感操作(如 import.php、tbl_drop.php、user_password.php)均无服务端 token 绑定校验:
- 请求中缺失
token参数不会被拒绝,仅前端 JS 有简单提示 - 会话 cookie(
phpMyAdmin)未与 IP 哈希前缀绑定,NAT 环境下仍可被复用 - 若设置了
$cfg['LoginCookieValidity']但值过大(如 >300),攻击窗口显著延长
升级到哪个版本才算真正修复?
必须升至 5.2.2 或更高(推荐 6.0.2),且需同步满足以下条件:
- PHP 版本 ≥ 7.4(
5.2.2不再支持 PHP 7.2 及更低);若选6.0.x,则必须 ≥ PHP 8.1 -
config.inc.php中显式设置$cfg['SessionSavePath'],并确保该路径仅由 Web 用户可读写 - 禁用
session.auto_start = Off(PHP 配置中),避免会话提前启动导致 token 不一致 - Web 服务器配置中屏蔽敏感路径:
location ~ ^/(config|libraries|setup)/ { deny all; }
别把 5.2.1 当成“修好了的版本”——它只是 5.2 分支中一个中间快照,关键安全补丁全在后续小版本里。最常被忽略的是:即使升级了,若没重设 SessionSavePath 或留着旧版 config.inc.php 中废弃的 $cfg['Servers'][$i]['auth_type'] = 'http',服务照样可能白屏或 token 失效,等于裸奔。
立即学习“PHP免费学习笔记(深入)”;



















