不建议在新部署中使用phpmyadmin 4.9,因其已eol、存在多个未修复高危漏洞、不兼容mysql 8.0认证插件、缺乏2fa及关键安全机制,必须升级至5.2.x+。
不建议在新部署中使用 phpmyadmin 4.9 作为生产环境管理工具,已有明确安全风险且官方已停止支持。
4.9 版本已不受官方维护,漏洞修复已终止
phpMyAdmin 官方自 2022 年起将 4.9.x 列入 EOL(End-of-Life)版本,5.0.0 于 2020 年发布后,4.9 就不再接收安全补丁。你查到的 CVE-2020-26935(SearchController SQL 注入)、CVE-2020-22278(CSV 注入)、CVE-2023-xxxxx(XSS 拖放上传)等高危漏洞,在 4.9 分支中**没有对应修复提交**——这些补丁只存在于 5.0+ 的 release 分支里。
- 运行
docker exec -it phpmyadmin php -r "require('/var/www/html/libraries/Config.class.php'); echo PMAM_VERSION;"确认真实版本,别信镜像 tag 标的4.9.5—— 很多镜像实际加载的是未打补丁的旧 commit - GitHub 上
phpmyadmin/phpmyadmin仓库的STABLE_4_9分支最后一次 commit 时间是 2021 年 12 月,之后全部 issue 和 PR 都被关闭或迁移至master(即 5.x)
MySQL 8.0+ 兼容性问题会直接导致功能失效
4.9 对 MySQL 8.0 默认认证插件 caching_sha2_password 支持极差,不是“连不上”那么简单:即使 root 登录成功,访问 mysql.user 表时也会因协议握手失败而报 #1142 - SELECT command denied to user,根本无法管理用户账户——这不是权限没给够,而是底层 mysqli 扩展不兼容。
- 临时 workaround(
ALTER USER ... IDENTIFIED WITH mysql_native_password)仅适用于测试环境,违背 MySQL 8.0 安全设计初衷 - phpMyAdmin 4.9 的
Auth类未实现sha256_password或caching_sha2_password握手流程,升级 PHP 版本也无法解决
关键安全加固能力缺失
4.9 缺少 5.0+ 引入的几项基础防护机制,导致你即使手动改 config.inc.php,仍存在不可绕过的攻击面:
- 无原生 2FA 支持:
$cfg['TwoFactor']相关配置在 4.9 中不存在,所有第三方插件方案都需 patch 核心代码,引入额外风险 - 反序列化控制粒度粗:虽可删
/scripts/setup.php,但import.php和 session 反序列化点仍依赖 PHP 层allowed_classes,而 4.9 多处调用未传该参数(PHP 7.0+ 才支持) - UI 层逻辑漏洞(如 CVE-2018-12613)未修复:该漏洞允许低权限用户通过构造 URL 触发任意数据库操作,4.9 的
tbl_replace.php和tbl_create.php仍含原始有缺陷逻辑
如果你当前系统已卡在 4.9,最现实的做法是:用 mysqldump + mysql 命令行完成日常运维,仅将 phpMyAdmin 降级为只读只查的临时调试入口,并严格限制 IP、关闭上传、禁用 setup.php;真正要上线新服务,必须升级到 5.2.x 或更高稳定版——它不是“更好用”,而是“能用”。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











