ThinkPHP是一个开源免费的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。

近日,奇安信CERT监测到ThinkPHP远程代码执行漏洞(QVD-2022-46174),当ThinkPHP开启了多语言功能时,攻击者可以通过lang参数和目录穿越实现文件包含,当存在其他扩展模块如 pear 扩展时,攻击者可进一步利用文件包含实现远程代码执行。鉴于该漏洞影响范围较大,建议客户尽快做好自查及防护。

漏洞名称

ThinkPHP 远程代码执行漏洞

公开时间

2022-12-08

更新时间

2022-12-09

CVE编号

暂无

其他编号

QVD-2022-46174

威胁类型

代码执行

技术类型

PHP 远程文件包含

目录遍历

厂商

ThinkPHP

产品

ThinkPHP

风险等级

奇安信CERT风险评级

风险等级

高危

蓝色(一般事件)

现时威胁状态

POC状态

EXP状态

在野利用状态

技术细节状态

已发现

未发现

未发现

已公开

漏洞描述

当ThinkPHP开启了多语言功能时,未经身份验证的远程攻击者可以通过lang参数和目录穿越实现文件包含,当存在其他扩展模块如 pear 扩展时,攻击者可进一步利用文件包含实现远程代码执行。

影响版本

6.0.1 <= ThinkPHP <= 6.0.13

ThinkPHP 5.0.x

ThinkPHP 5.1.x

不受影响版本

ThinkPHP >= 6.0.14

ThinkPHP >= 5.1.42

其他受影响组件

奇安信CERT已成功复现ThinkPHP 远程代码执行漏洞(QVD-2022-46174),复现截图如下:

威胁评估

漏洞名称

ThinkPHP 远程代码执行漏洞

CVE编号

暂无

其他编号

QVD-2022-46174

CVSS 3.1评级

高危

CVSS 3.1分数

9.8

CVSS向量

访问途径(AV

攻击复杂度(AC

网络

所需权限(PR

用户交互(UI

不需要

影响范围(S

机密性影响(C

不改变

完整性影响(I

可用性影响(A

危害描述

当ThinkPHP开启了多语言功能时,攻击者可以通过lang参数和目录穿越实现文件包含,当存在其他扩展模块如 pear 扩展时,攻击者可进一步利用文件包含实现远程代码执行。

处置建议

1、安全更新:

目前官方已发布安全更新,建议受影响客户安装更新

https://github.com/top-think/framework/releases

2、自查方案:

  • ThinkPHP 6

打开app/middleware.php

如果 \\\\think\\\\middleware\\\\LoadLangPack::class 没有注释,代表着受此漏洞影响。

  • ThinkPHP 5

打开config/app.php,如果 "lang_switch_on" 为 true,代表着受此漏洞影响。

3、缓解措施:

ThinkPHP默认关闭多语言功能,如果开启了该功能可以按照下面方法关闭。

  • ThinkPHP 6

打开app/middleware.php,将\\\\think\\\\middleware\\\\LoadLangPack::class这行注释掉。

  • ThinkPHP 5

打开config/app.php,将"lang_switch_on"=> true改成 "lang_switch_on"=>false

修改完后,重启应用

参考资料

[1]https://www.kancloud.cn/manual/thinkphp6_0/1037637

[2]https://static.kancloud.cn/manual/thinkphp5/118132

声明:本文来自奇安信 CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。