Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
php2shell-eol-backport — 针对 RHEL、CentOS 和 Oracle Linux 7 / 6 中已停止维护的 PHP 5.4 / 5.3 软件包,为 CVE-2026-109618 / CVE-2026-109619(php2shell)提供的非官方修复 | Kitploit
工具/GitHubGitHub/alvm/php2shell-eol-backport
防御工具漏洞分析配置审计DevSecOps实用工具与框架供应链安全
GitHubalvm/php2shell-eol-backport

php2shell-eol-backport

针对 RHEL、CentOS 和 Oracle Linux 7 / 6 中已停止维护的 PHP 5.4 / 5.3 软件包,为 CVE-2026-109618 / CVE-2026-109619(php2shell)提供的非官方修复

查看仓库
11小时7分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

php2shell-eol-backport

针对企业级 Linux 6 和 7 已停止维护(EOL)的 PHP 软件包——php-5.3.3(RHEL / CentOS / Oracle Linux 6)和 php-5.4.16(RHEL / CentOS / Oracle Linux / Scientific Linux 7)——CVE-2026-109618 和 CVE-2026-109619(“php2shell”)的非官方修复。

PHP 于 2026 年 10 月 21 日在 8.2.35、8.3.36、8.4.27 和 8.5.12 中修复了这两个漏洞,并发布了针对 7.4、8.0 和 8.1 的源码回溯补丁。PHP 5 没有任何发布,EL6 / EL7 的厂商也未提供修复。如果你必须让此类系统继续运行,本项目为你提供重新构建的厂商软件包,其中移植了官方的最小修复。

这不是来自 PHP、Red Hat 或 Oracle 的官方修复。 它在你能够迁移到受支持的 PHP 版本之前降低风险——请尽快完成迁移。 在 EL8 / EL9 / EL10 上,请改为安装厂商的更新(例如 ELSA/RHSA-2026:87080、87151、87079)。

修复内容

  • CVE-2026-109618 和 CVE-2026-109619,CVSS 4.0 9.2。
  • 该补丁是将 php-src 提交 712e60f9ed (“Avoid state corruption via bailout”)——即针对 PHP 7.4 的官方最小回溯补丁——移植到 PHP 5.3 / 5.4 代码库。它应用在厂商软件包及其所有现有安全补丁之上。
  • 这些补丁是针对厂商源码树制作的。它们不适用于原始的 php-5.4.16 / php-5.3.3 发布压缩包,因为后者缺少厂商在同一代码中后续的安全修复 (例如 multipart 头部解析中的 CVE-2015-4024)。
发行版厂商软件包本项目提供的修复软件包
RHEL / CentOS / Oracle Linux / Scientific Linux 7php-5.4.16-48.el7php-5.4.16-48.el7.php2shell.1
RHEL / CentOS / Oracle Linux 6php-5.3.3-50.el6_10php-5.3.3-50.el6_10.php2shell.1

发布版本后缀排序高于厂商软件包,且低于任何未来的厂商勘误 (例如 48.el7_9.1),因此如果官方修复出现,它会通过常规更新替换此修复。

这在 PHP 5 上有多严重?

可能比在 PHP 7 和 8 上轻,但目前尚无确定答案:

  • Red Hat 将 RHEL 6 / 7 的 php 软件包评定为不受 CVE-2026-109619 影响(“不存在易受攻击的代码”), 并将 CVE-2026-109618 列为正在调查中 (CSAF VEX)。
  • 一项针对 PHP 5.3 的独立分析 发现内存耗尽故障可以被触发,但已公开的内存破坏步骤依赖于 PHP 7 引擎内部机制,因此在 PHP 5 上已知攻击最终导致拒绝服务。PHP 5.4–5.6 是通过 比较代码评估的,并未经过测试,且其他攻击路径尚未被排除。

本项目仍然应用官方缓解措施:它移除了不安全的错误路径本身,而不仅仅是 已知的触发方式。

安装

从 GitHub Pages 上已签名的 yum 仓库:

# EL7
curl -o /etc/yum.repos.d/php2shell-eol-backport.repo \
  https://alvm.github.io/php2shell-eol-backport/php2shell-eol-backport-el7.repo
# EL6
curl -o /etc/yum.repos.d/php2shell-eol-backport.repo \
  https://alvm.github.io/php2shell-eol-backport/php2shell-eol-backport-el6.repo

yum update 'php*'            # confirm the signing key: fingerprint under "Signing key" below
service httpd restart        # and php-fpm, if you use it

该仓库仅包含本项目的 PHP 软件包,且软件包与仓库元数据均已签名(gpgcheck=1、repo_gpgcheck=1)。RPM 包和源码 RPM 包也附在每个 release 中,并附带已签名的 SHA256SUMS;可使用 yum localinstall 进行安装。

检查系统

./tools/check-patched.sh

它将每个已安装的 PHP 5 软件包列为 FIXED 或 VULNERABLE,检查 PHP CLI 是否运行修复后的代码,并在 httpd 或 php-fpm 于更新前启动且仍在运行旧代码时发出警告。

行为变更与已知限制

该修复遵循官方的最小化向后移植,优先考虑安全性而非优雅的错误处理:

  • 内存耗尽会终止 PHP 进程。 当请求超出 memory_limit(或分配大小溢出)时,PHP 会向 stderr(Web 服务器错误日志)打印 Fatal error: ...,进程立即退出。Apache / php-fpm 会启动新的工作进程。关闭函数不会运行,该请求中上传的临时文件不会被删除——tmpwatch(EL6)和 systemd-tmpfiles(EL7)会随时间从 /tmp 中清理它们。
  • 会话上传进度被禁用(PHP 5.4;PHP 5.3 没有此功能)。
  • 多部分请求: 仅保留每个部分的 Content-Disposition 和 Content-Type 头(PHP 仅使用这些),新的 php.ini 指令 max_multipart_body_parts 限制部分数量(默认 -1 = max_input_vars + max_file_uploads)。
  • 该补丁新增一个导出函数(zend_mm_safe_error_ex),不更改任何现有 API 或 ABI,因此为供应商软件包构建的扩展可继续工作。

这是对已公开攻击路径的最小化缓解措施,而非 PHP 5 的完整安全更新。

验证方式

  • 从供应商源码 RPM 构建(SHA-256 固定于 build/build.sh);spec 变更共 8 行(spec/*/php.spec.diff)。

  • 将 PHP 测试套件(make test,在 RPM 构建期间运行)与同一供应商软件包的未修改重建版本进行比较。唯一新增的失败是预期内的:会话上传进度测试(功能已禁用)和 tests/lang/bug45392.phpt(致命错误消息现在以空行开头,与官方 7.4 补丁一致)。

    测试数失败:供应商失败:已打补丁
    EL7, PHP 5.4.16123731423(8 个上传进度 + bug45392)
    EL6, PHP 5.3.3112135556(bug45392)

    确切计数在不同构建环境之间略有差异:在 GitHub runner 上,两个 SPL 文件所有者测试(DirectoryIterator_getOwner/getGroup_basic)也会失败,且 time_sleep_until_basic 对时序敏感。它们均未涉及补丁更改的代码。

  • 将 PHP 5.4 补丁与针对 Amazon Linux 2 的 php-5.4.16 的同一修复的独立移植版本进行了比较:核心变更完全相同。差异列于 docs/ALTERNATIVES.md。

  • 未编写或使用任何漏洞利用代码。请自行对照上游提交审查该补丁。

替代方案

  • 商业方案: TuxCare Extended Lifecycle Support 于 2026 年 10 月 21 日发布了适用于 EL6 和 EL7 的修复软件包。
  • 其他免费补丁: 大多针对上游 5.4.45 / 5.3.29 源码,另有一个针对 Amazon Linux。

有关供应商状态、项目列表和比较,请参见 docs/ALTERNATIVES.md。

自行构建

需要 Docker,每次构建约需 3 GB 可用磁盘空间。

build/build.sh el7      # results in _build/el7/RPMS
build/build.sh el6      # results in _build/el6/RPMS

脚本会下载厂商源码 RPM,校验其 SHA-256,并在一个固定版本的 Oracle Linux 容器中使用本仓库的 spec 文件和补丁重新构建。

签名密钥

软件包和发布标签使用以下密钥签名:

pub   rsa4096/80797C97A561BC94 2026-10-22 [SC] [expires: 2029-10-21]
      2757 B60F D23D ED25 021B  BE37 8079 7C97 A561 BC94
uid   Oleksii Molchanov (php2shell-eol-backport signing key) <[email protected]>

密钥位于此仓库(RPM-GPG-KEY-php2shell-eol-backport)以及 keyserver.ubuntu.com 上。

仓库布局

patches/el7, patches/el6   the fix, as a patch against the vendor source tree
spec/el7, spec/el6         vendor spec files with the patch added, and their diffs
build/                     reproducible container build
tools/check-patched.sh     check an installed system
docs/ALTERNATIVES.md       vendor status, other projects, comparison
SECURITY.md                how to report a security problem

报告问题

如有缺陷,请提交 issue。若补丁本身存在安全问题,请参阅 SECURITY.md。

致谢与许可

  • 该修复由 PHP 安全团队完成;本项目仅对其进行移植。报告者信息请参阅 GitHub 安全公告。
  • 补丁:PHP License 3.01(LICENSE.PHP),与其所修改的代码一致。构建脚本与工具:MIT(LICENSE)。Spec 文件源自 Red Hat / Fedora 打包(MIT)。
下载工具