ThinkPHP远程代码执行漏洞安全通告
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
时间线
2022年12月9日,奇安信 CERT发布安全风险通告。
推荐阅读
文章来源:奇安信 CERT
点击下方卡片关注我们,
带你一起读懂网络安全 ↓
