非 php.net · 非 NVD · 非 CISA

PHP 漏洞追踪

关于 PHP 安全漏洞的非官方简报

English简体中文日本語DeutschFrançaisNederlandsEspañol

安全警报

PHP2Shell:请升级 PHP。这是唯一完整的修复。

CVE-2026-109618 与 CVE-2026-109619 是 PHP 本体中的严重漏洞,未经身份验证即可远程执行代码。PHP 项目已于 2026 年 10 月 21 日为仍受支持的 8.2 至 8.5 分支发布修复。升级后必须重启 PHP。防火墙不能替代升级。

修复步骤

PHP 安全科普 · 防御向

PHP 对象注入:是什么,怎么修

把用户可控的数据交给 unserialize(),等于让攻击者决定 PHP 要创建哪些对象。PHP 手册明确警告不要这样做。

最近更新

这是什么

PHP 反序列化字符串时会重建其中描述的对象,并可能调用 __wakeup()、__destruct() 等魔术方法。如果字符串来自 Cookie、表单字段或 API 请求,攻击者就能挑选应用或其依赖库里已加载的类,把它们的方法串起来,最终可能写文件或执行代码。MITRE 把它归为 CWE-502(不可信数据的反序列化)。

怎么发现

怎么修

只读检查与安全写法

# Find unserialize() calls that may receive request data (read-only)
grep -rnE "unserialize\s*\(" --include=*.php . | grep -vE "/vendor/|/tests?/"

// Safer: exchange data as JSON
$data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);

// If unserialize() is unavoidable for trusted data, forbid objects
$data = unserialize($trusted, ['allowed_classes' => false]);

allowed_classes => false 就够了吗?

它阻止创建对象,去掉了主要风险,但 PHP 手册仍建议不要反序列化不可信输入。默认用 JSON 更安全。

这和 PHP2Shell 有关吗?

无关。PHP2Shell 是 PHP 运行时的漏洞,对象注入是应用代码的漏洞,PHP 打满补丁也照样存在。

其他常见 PHP 漏洞类型

来源

出站链接将离开本站。本站不托管利用代码。

  1. unserialize() — PHP Manual
  2. json_decode() — PHP Manual
  3. PHP Object Injection — OWASP
  4. CWE-502: Deserialization of Untrusted Data — MITRE CWE