-
Notifications
You must be signed in to change notification settings - Fork 908
Description
项目使用的 laravel/framework: 5.5.*
版本可能受到 不安全反序列化导致远程代码执行 (CVE-2018-15133) 漏洞的影响。
漏洞详情:
漏洞点:
laravel/framework
版本通过 5.5.40 和 5.6.x 通过 5.6.29。本项目使用的 laravel/framework: 5.5.*
版本可能受此漏洞影响。
漏洞描述:
CVE-2018-15133
描述了 Laravel 框架中的一个远程代码执行漏洞。此漏洞发生在 Illuminate/Encryption/Encrypter.php
的 decrypt
方法对潜在不受信任的 X-XSRF-TOKEN
值进行反序列化时。攻击者可以通过构造恶意的序列化数据,利用 PHP 的反序列化机制来执行任意代码。尽管攻击者需要知道应用程序的 APP_KEY
,但如果 APP_KEY
在其他地方泄露(例如,通过之前发现的调试模式配置弱点或信息泄露),那么此漏洞将变得非常危险。
影响:
远程代码执行 (RCE),允许攻击者在服务器上执行任意代码,从而导致完全的系统入侵。
受影响的组件和版本:
laravel/framework
版本5.5.0
到5.5.40
(包含)laravel/framework
版本5.6.0
到5.6.29
(包含)
概念验证 (POC):
该漏洞通常需要结合 phpggc
工具生成恶意的反序列化 payload,并通过控制 X-XSRF-TOKEN
HTTP 头发送到服务器。攻击的成功取决于 APP_KEY
的已知。
漏洞利用原理:
Laravel 使用加密机制来保护 X-XSRF-TOKEN
。当应用程序解密此 token 时,它会调用 unserialize
函数。如果攻击者能够伪造一个经过加密且包含恶意序列化对象的 X-XSRF-TOKEN
,并且应用程序在没有充分验证的情况下对其进行反序列化,那么攻击者就可以利用 PHP 的面向对象编程 (OOP) 特性触发“魔术方法”(如 __destruct
),从而执行任意代码。
建议修复措施:
- 升级 Laravel 框架: 强烈建议将 Laravel 框架升级到已修复此漏洞的版本。对于 Laravel 5.5 系列,应升级到 5.5.41 或更高版本。对于 Laravel 5.6 系列,应升级到 5.6.30 或更高版本。
- 保护
APP_KEY
: 确保APP_KEY
始终保密,不应在公共仓库、日志文件或通过调试模式泄露。 - 禁用调试模式: 在生产环境中始终禁用
APP_DEBUG
。