php2shell致命补丁修复

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

修复 PHP2Shell 超高危漏洞(CVE-2026-109618 / CVE-2026-109619,CVSS v4.0 9.2,无需认证远程代码执行)。适用于任何操作系统与任何 PHP 版本,重点覆盖 PHP 官方不再提供补丁的 EOL 版本(8.1 及更早,包括 5.x / 7.x)的自主修复路径。

一句话选型结论

按资料字段整理

php2shell致命补丁修复是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_e81594ea/skill-php2shell-remediation
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_e81594ea仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量7.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
php2shell致命补丁修复当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

7.3 KB
模型实际读到的说明书原文,来自技能仓库

PHP2Shell 修复 Skill(供 AI Agent 使用)

你(AI agent)的任务:在一台受影响的机器上,把 PHP 修到不受 PHP2Shell 攻击的状态。本 skill 给出完整决策流程。禁止跳过探测直接给方案。

0. 漏洞事实卡(先自己读懂)

  • 两个洞同根:PHP 处理致命错误用 longjmp() 直接跳出请求不留清理,半初始化/悬空内存状态被后续清理代码或下一个请求使用
  • 无需登录,攻击流量走业务端口(80/443),应用层登录/WAF/维护模式全部拦不住(攻击发生在应用代码运行前,尤其 mod_php)
  • 除 RCE 外还能读 worker 进程内存(其他请求的密码/会话令牌/API 密钥)
  • 官方修复版本:8.2.35 / 8.3.36 / 8.4.27 / 8.5.12(2026-10-21 发布)
  • 官方 minimal source backport:仅 7.4 / 8.0 / 8.1
  • 7.3 及更早(含 5.x):官方零支持,但 sury.org 已把补丁 backport 到 5.6–8.1 全部分支(2026-10-21,Debian/Ubuntu 打包,patch 可抽取复用)
  • CVSS v4.0 双 9.2;Cloudflare 在补丁发布前已观察到攻击尝试
  • 官方明确:没有能完全替代升级的缓解措施

1. 探测(必做,输出一份现状清单)

# 1) web 层真实版本(最重要!CLI 版本可能和 web SAPI 不一致)
php -v                                      # CLI
php-fpm -v 2>/dev/null || true              # FPM(如存在)
# mod_php 场景:放一个 <?php echo PHP_VERSION; 的页面 curl 访问,确认 web 层版本

# 2) 部署架构:mod_php / php-fpm / php-cgi / FrankenPHP / LiteSpeed
httpd -M 2>/dev/null | grep -i php          # Apache 模块
ps aux | grep -E 'php-fpm|php-cgi' | grep -v grep
nginx -T 2>/dev/null | grep -i 'fastcgi_pass|php'

# 3) 现有构建参数(源码编译场景复用)
php-config --configure-options 2>/dev/null

# 4) OS 与包管理器
cat /etc/os-release; which yum dnf apt apk 2>/dev/null

# 5) 暴露面(决定优先级)
# 从外网 curl -I http://目标IP/ 能通 → P0 紧急;仅内网/堡垒机可达 → P1

常见坑:php -v 显示 8.3 但网站实际跑的是另一个 PHP(多版本共存、Remi SCL、面板切换)。必须以 web SAPI 实际加载的版本为准。

2. 按版本分流(核心决策树)

PHP 版本?
├─ 8.2 / 8.3 / 8.4 / 8.5 → 官方补丁版本:8.2.35 / 8.3.36 / 8.4.27 / 8.5.12
│   → 按 references/system-matrix.md 对应系统一条命令升级,重启服务,完事
├─ 8.0 / 8.1 / 7.4 → 官方有 minimal source backport
│   → 优先找 distro/LTS 厂商包(Debian/Ubuntu sury、CloudLinux TuxCare 等)
│   → 没有包就源码编译:官方 backport 或 sury 同版本 patch,见 references/eol-patch-porting.md
├─ 5.6 / 7.0 / 7.1 / 7.2 / 7.3 → 官方零支持
│   → Debian/Ubuntu:sury 源直接 apt 升级(sury 已 backport 到 5.6)
│   → 其他系统:从 sury Debian 源码包抽 patch 打到官方原始源码编译
│     (已验证:5.6 的 patch 在 php.net museum 原始源码上零 reject 干净应用)
│     完整方法见 references/eol-patch-porting.md,CentOS 6 现成实现见本包 centos6-php56/
└─ < 5.6 → patch 都没有了,唯一正解是升级;过渡期用第 3 节缓解 + 隔离

Remi 仓库注意:Remi(RHEL 系常用第三方源)在发布当日明确没有同步更新,且其 EOL 分支早已停维护。RHEL 系跑 EOL PHP 的,直接走"抽 sury patch + 源码编译"路线。

3. 修不动时的临时缓解(不完整,只是争取时间)

按攻击面逐条堵,用 php_admin_value(FPM pool 或 Apache 配置)强制下发防应用覆盖:

; CVE-2026-109618:让攻击者无法在"半初始化时刻"触发内存耗尽
memory_limit = -1
post_max_size = 8M        ; 无上传业务 8M,有上传 32M

; CVE-2026-109619:切断已验证的 session 上传进度触发路径
session.upload_progress.enabled = 0

改完必须重启所有 PHP worker(php-fpm 全部 pool / httpd)。
更狠但有效:下线、IP 白名单、套 Cloudflare(免费 WAF 规则已覆盖已知向量)。
改配置 ≠ 修复,能编译就编译。

4. 通用源码编译流程(任何 EOL 版本,任何 Linux)

  1. 拿官方原始源码:https://museum.php.net/php5/php-5.6.40.tar.gz(5.x);7.x/8.x 用 https://www.php.net/releases/ 对应归档
  2. 拿补丁:见 references/eol-patch-porting.md(sury 包抽取法 + 移植法)
  3. patch -p1 --dry-run 验证干净应用(有 reject 就按移植法处理,不要硬打)
  4. ./configure(复用 php-config --configure-options,去掉旧 prefix/apxs 路径按本机调整)→ make -j$(nproc)
  5. 不要 make install。备份后只替换两个东西:web SAPI 二进制(mod_php 的 libs/libphp5.so 或 FPM 的 sapi/fpm/php-fpm)+ CLI(sapi/cli/php)
  6. 重启 web 服务,验证(第 5 节),留好回滚备份
  7. 老 OS 先修源:CentOS 6 → mirrors.aliyun.com/centos-vault/6.10;CentOS 7 → centos-vault/7.9.2009;EPEL → mirrors.aliyun.com/epel-archive/

5. 验证(三关全过才算修完)

# 关1:版本/构建日期变了
php -v                          # Build date 应为修复日之后
# 关2:补丁代码真的编进去了(补丁新增导出符号)
nm <web层二进制: libphp5.so 或 php-fpm> | grep zend_mm_safe_error_ex   # 有输出=OK
# 关3:服务真的在跑新二进制
systemctl restart php-fpm httpd 2>/dev/null; ps aux | grep php          # 启动时间=刚才

修完做入侵回查(攻击可能早于修复):web 根目录新文件/webshell、异常 cron、web 用户发起的出站连接、php-fpm/httpd spawn 出的 shell 进程,日志回溯至少到 2026-06。

6. 硬规则(agent 必须遵守)

  1. 动手前先输出探测结果 + 选定路线,让用户确认再改(替换二进制是高危操作)
  2. 任何替换前必须备份原二进制,保留一键回滚路径
  3. web SAPI 版本 > CLI 版本,以 web 层为准
  4. 补丁 dry-run 不干净 → 走移植法,不许 patch --force 硬上
  5. 修完必须过第 5 节三关验证,缺一不可
  6. 明确告知用户:EOL 版本打补丁只是止血,整套系统的迁移计划仍要排

7. 参考资料

  • 官方公告:php.net security releases(GHSA-w8hw-w9fx-j79w / GHSA-6wmf-4rv5-p3rp)
  • PHP Foundation 说明:thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security/
  • EOL 分支 backport 来源:packages.sury.org/php/(Debian 源码包内含 patch)
  • 系统对照速查 → references/system-matrix.md
  • EOL 补丁抽取与移植方法 → references/eol-patch-porting.md
  • 已验证实战案例(CentOS 6.5 + PHP 5.6)→ 本包 ../centos6-php56/

常见问题

5 问
答案由本站依据条目字段整理
php2shell致命补丁修复怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_e81594ea/skill-php2shell-remediation。安装方式为未标注。装完刷新技能列表或重开客户端。

php2shell致命补丁修复支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

php2shell致命补丁修复权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

php2shell致命补丁修复收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

php2shell致命补丁修复用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。