腾讯云公告 > 公告详情
扫码查看公告

【安全预警】关于ThinkPHP 多个版本远程代码执行漏洞安全预警

尊敬的腾讯云客户,您好:
  近日,腾讯云安全中心监测到ThinkPHP  V5.1.* 及 V5.2.* 全版本被曝均存在远程代码执行 漏洞,攻击者可利用该漏洞进行远程非法利用攻击
       为避免您的业务受影响,腾讯云安全中心建议您及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。
 
【漏洞详情】
  1月11日,ThinkPHP官方发布了一个安全更新,修复一个远程代码执行漏洞,该漏洞由于框架对控制器名没有进行足够的检查,在没有开启强制路由的情况下可能导致服务器被入侵, 主要影响 ThinkPHP V5.0.*  全版本,目前官方已经新版本修改该漏洞(详见11日公告:https://cloud.tencent.com/announce/detail/411)。
  1月15日,ThinkPHP 5.1与5.2全版本由于\library\think\Request.php文件配置缺陷,导致也存在代码执行问题,官方目前暂未发布修复补丁。
 
【风险等级】
   高风险
 
【漏洞风险】
  远程代码执行漏洞
 
【影响版本】
 目前已知受影响版本如下:
 ThinkPHP V5.0.*  版本
 ThinkPHP V5.1.*  版本
 ThinkPHP V5.2.*  版本
 
【安全版本】
 ThinkPHP V5.0.24 版本
 ThinkPHP V5.1.*  版本 官方暂未发布修复更新
 ThinkPHP V5.2.*  版本 官方暂未发布修复更新
 
【修复建议】
 ThinkPHP V5.0.*  版本目前官方已经发布新版本进行了统一修复,如在受影响范围,建议参照【安全版本】及时进行加固或升级操作。
 新版本下载地址:
  版本查看方法:
  5.0 可在 base.php 内中查看版本号,如:define('THINK_VERSION', '5.0.23');
  ThinkPHP V5.1.*及 V5.2.* 版本官方暂未发布修复版本,临时缓解方案参考如下:

5.1.x系列,编辑 library/think/Request.php 文件, 查找如下内容:
$this->method    = strtoupper($_POST[$this->config['var_method']]);
$method          = strtolower($this->method);
$this->{$method} = $_POST;
修改为:
$method = strtoupper($_POST[Config::get('var_method')]);
if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
$method          = strtolower($this->method);
$this->{$method} = $_POST;
}

5.2.x系列,编辑 src/think/Request.php文件, 查找:
$this->method = strtoupper($_POST[$this->config['var_method']]);
$method       = strtolower($this->method);
unset($_POST[$this->config['var_method']]);
$this->{$method} = $_POST;
修改为:
$this->method = strtoupper($_POST[$this->config['var_method']]);
$method       = strtolower($this->method);

if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
unset($_POST[$this->config['var_method']]);
$this->{$method} = $_POST;

}


【备注】建议您在升级前做好数据备份工作,避免出现意外。
 
【漏洞参考】



img

2019-01-15