应立即升级至ThinkPHP 6.0.14或更高版本,该版本已彻底修复CVE-2022-38352漏洞;若当前为6.0.0–6.0.13则受影响,需执行composer update并清除缓存;临时缓解仅限禁用反序列化入口、设类白名单及加强监控。

直接升级到 ThinkPHP 6.0.14 或更高版本是最有效、最推荐的处理方式。该漏洞(CVE-2022-38352)已在 6.0.14 中被官方彻底修复,无需手动补丁或临时绕过。
确认是否受影响
检查项目中 composer.lock 或 vendor/topthink/framework/composer.json:
- 若
topthink/framework版本为6.0.0至6.0.13(含),则明确受影响; - 注意:6.0.13 是最后一个存在此漏洞的正式版,后续所有 6.0.x 小版本(如 6.0.14、6.0.15)均已修复。
升级操作步骤
运行以下命令更新框架(确保 Composer 配置正常,镜像可用):
composer update topthink/framework:^6.0.14
升级后建议执行:
- 清除运行时缓存:
php think clear - 检查日志与异常是否消失,尤其留意
unserialize()相关错误或可疑的Php::display调用痕迹
临时缓解措施(仅限无法立即升级的场景)
-
禁用反序列化入口:严格审查代码,删除或加固所有
unserialize($_*[])调用,尤其是$_GET、$_POST、$_COOKIE中的参数; -
限制反序列化类白名单:在 PHP 配置中启用
unserialize_callback_func并配合自定义回调函数,或使用allowed_classes参数(PHP 7.4+)显式指定仅允许的类名; -
监控关键行为:在日志中捕获
Psr6Cache::__destruct、think\log\Channel::__call、think\log\driver\Socket::save等调用链相关关键词,设置告警。
不要依赖的“伪修复”
立即学习“PHP免费学习笔记(深入)”;
- 修改
Psr6Cache类或重写__destruct方法——该类来自第三方组件league/flysystem-cached-adapter,直接修改易被覆盖且不解决根本链路; - 仅过滤输入中的特定字符串(如
O:、__destruct)——攻击者可通过编码、分段、Phar 等方式绕过。
漏洞利用门槛低、EPSS 达 92.56%,实际环境中已出现自动化扫描和批量利用。升级不是可选项,而是必须项。



















