ThinkPHP 5.1.x中仅5.1.40及更高版本(如5.1.42、5.1.43)为安全可用版本;5.1.0–5.1.37存在多条RCE利用链,5.1.41虽为后期版本但已EOL,未修复核心RCE漏洞,所有低于5.1.40的版本均不应在生产环境使用。

ThinkPHP 5.1 系列中,5.1.0 至 5.1.37 版本均存在高危远程代码执行(RCE)漏洞,其中多个版本被明确标记为“已知公开靶子”,风险极高。5.1.41 虽为后期小修版,但并非安全版本——它自 2021 年起已停止官方维护,未修复核心 RCE 补丁,仍存在反序列化、控制器绕过、模板路径遍历等高危问题。
以下按风险等级和漏洞类型归类说明:
明确存在 RCE 漏洞的版本区间
-
5.1.0 – 5.1.37:官方确认存在多条 RCE 利用链,包括
-
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id类请求可直接执行系统命令 -
$_GET['s']参数含\think\时触发eval或invokeFunction -
Request::input()中 filter 绕过,导致危险函数直调
官方在 5.1.38 起开始修复关键链,5.1.40 是首个被推荐的稳定安全基线版本。
-
看似“新”实则不安全的版本
- 5.1.41:常被误认为“最新版”,实为终止维护版本(EOL)。它未包含 5.1.30 引入的控制器绕过修复、也未修补路由缓存+Facade 调用组合绕过手法,黑产工具包中已有成熟利用方式。
其他关联高危风险版本
- 所有 未启用强制路由(url_route_must = false) 的 5.1.x 部署,无论具体小版本,都默认开放控制器名解析入口,极易被
?s=/index/\think\config/get等路径遍历攻击利用 - 使用
order()、group()、where("id=$id")等手动拼接写法的老项目,即使框架版本略高,SQL 注入风险依然存在
简言之:只要还在用 5.1.x 且不是 5.1.40 或更高(如 5.1.42、5.1.43),就应视为存在可利用的高危漏洞。而 5.1.41 及更早所有版本,都不再接收安全更新,不具备生产环境使用资格。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











