漏洞描述
ThinkPHP Framework 是一个开源的、面向对象的轻量级 PHP 开发框架,用于简化企业级应用和 Web 应用开发。
ThinkPHP Framework 的受影响版本中由于 LoadLangPack#handle 方法没有对 langset 参数进行过滤,且用于加载语言的 Lang.php#load 函数没有对用户传入的文件名参数中的特殊字符(如 ../)进行转义,导致 ThinkPHP 在检测用户语言时存在目录穿越和文件包含漏洞。当用户开启多语言功能时(如:'lang_switch_on'=> true),攻击者可通过在请求中的 header 、cookie 或 query string 参数中注入 payload 进行目录穿越攻击,并通过 pearcmd 文件包含远程执行 webshell 等恶意代码。
漏洞名称 | ThinkPHP Framework 存在远程代码执行漏洞 |
---|---|
漏洞类型 | 代码注入 |
发现时间 | 2022-12-24 |
漏洞影响广度 | 小 |
MPS编号 | MPS-2022-69505 |
CVE编号 | CVE-2022-47945 |
CNVD编号 | - |
影响范围
topthink/framework@[6.0.1, 6.0.14)
topthink/framework@[5.1.0, 5.1.42)
topthink/framework@[5.0, 5.0.25)
修复方案
升级topthink/framework到 5.0.25 或 5.1.42 或 6.0.14 或更高版本
参考链接
https://www.oscs1024.com/hd/MPS-2022-69505
https://nvd.nist.gov/vuln/detail/CVE-2022-47945
https://github.com/top-think/framework/commit/c4acb8b4001b98a0078eda25840d33e295a7f099
https://tttang.com/archive/1865/#toc_thinkphp-6
情报订阅
OSCS(开源软件供应链安全社区)通过最快、最全的方式,发布开源项目最新的安全风险动态,包括开源组件安全漏洞、事件等信息。同时提供漏洞、投毒情报的免费订阅服务,社区用户可通过配置飞书、钉钉、企业微信机器人,及时获得一手情报信息推送:
https://www.oscs1024.com/cm/?src=osc
具体订阅方式详见: