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。