【预警】ThinkPHP远程代码执行,可能getshell-高危

安全预警


漏洞ThinkPHP远程代码执行


等级高危


影响范围

ThinkPHP 5.0和5.1版本


漏洞描述

本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。


修复方案

推荐尽快更新到最新版本


如果暂时无法更新到最新版本,可以参考下面的版本库代码记录,自行增加相关代码。


V5.1.31主要更新日志

  • 改进field方法

  • 改进count方法返回类型

  • download函数增加在浏览器中显示文件功能

  • 修正多对多模型的中间表数据写入

  • 改进sqlsrv驱动支持多个Schemas模式查询

  • 统一助手函数与\think\response\Download函数文件过期时间

  • 完善关联模型的save方法 增加make方法仅创建对象不保存

  • 修改条件表达式对静态变量的支持

  • 修正控制器名获取

  • 改进view方法的field解析


V5.0.23主要更新日志

  • Query支持调用模型的查询范围

  • 聚合查询字段支持DISTINCT

  • 改进闭包验证的参数

  • 多对多关联支持指定中间表数据名称

  • after/before验证支持指定字段验证

  • 改进多对多关联

  • 改进验证类

  • 增加afterWith和beforeWith验证规则 用于比较日期字段

  • 完善规则提示

  • 改进断线重连

  • 修正软删除的destroy方法

  • 修复模型的save方法当data变量为空 数据不验证

  • 模型增加replace方法

  • MorphOne 增加 make 方法创建关联对象实例

  • 改进count方法返回值类型

  • 改进聚合查询方法的正则判断

  • 改进sqlsrv驱动

  • 完善关联的save方法

  • 修正控制器名获取



受影响产品及版本:

thinkphp    5.0

thinkphp    5.1


解决方案:

本次版本更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.05.1版本,推荐尽快更新到最新版本。

如果暂时无法更新到最新版本,可以参考下面的版本库代码记录,自行增加相关代码。(5.0版本代码 | 5.1版本代码