概要描述
本文介绍 TDH 集群中 PHP 组件针对 CVE-2026-109618、CVE-2026-109619 的排查和临时缓解方法。
升级 Manager 后遗留的 PHP 如果仍能接收请求,依然可能被利用。以下配置仅为部分缓解,正式修复需安装兼容安全更新,或在确认无业务依赖后停用、卸载遗留组件。
详细说明
一、适用范围
核查当前所有 TDH 节点,逐节点操作,每个节点验证通过后再处理下一节点。
以下操作涉及到重启 httpd ,尽量在维护窗口执行。
二、临时方案与影响
| 配置 | 作用与影响 |
|---|---|
memory_limit = -1 |
取消 PHP 脚本内存上限,缓解部分攻击路径;可能导致内存耗尽,影响同机服务,需评估容量及资源隔离 |
file_uploads = Off |
禁用 PHP 文件上传,可能影响通过该入口上传产品包等操作 |
以上措施均不能完整修复两个漏洞。
三、检查版本和运行方式
rpm -qa | grep -Ei '^php|ganglia-web'
php -v
php --ini
httpd -M 2>&1 | grep -i php

通过以上命令确认实际加载的配置文件;
四、PHP 仍在使用:临时缓解
-
备份配置,记录备份文件名。
cp -a /etc/php.ini /etc/php.ini.bak.$(date +%Y%m%d%H%M%S) -
编辑现有有效配置项,避免重复定义。
vi /etc/php.inimemory_limit = -1 file_uploads = Off


-
检查是否存在覆盖配置。
grep -RInE 'memory_limit|file_uploads' /etc/php.ini /etc/php.d /etc/httpd/conf /etc/httpd/conf.d有冲突时核实实际生效位置。
memory_limit=-1需避免被应用重新设为有限值; -
检查语法,确认输出
Syntax OK后重启并查看状态。httpd -t systemctl restart httpd systemctl status httpd --no-pager如果语法检查失败,不执行重启。重启后应为
active (running)。 -
检查参数和内存。
php -i | grep memory_limit php -i | grep file_uploads free -mCLI 预期分别为
-1、Off、Off。验证 Manager 登录、服务状态、监控页面及代表性业务操作正常,且没有异常内存增长或 OOM,再处理下一节点。
如确需临时开启产品包上传,可以将 file_uploads=Off 注释。上传结束后重新设为 file_uploads=Off,重启对应服务并验证。
五、manager升级后 PHP 已无业务依赖:停用和清理
-
查看依赖:
rpm -q --whatrequires php php-gd php-ZendFramework若出现
ganglia-web等依赖,先确认用途,不继续卸载。 -
仅在 httpd 专门承载已废弃入口、没有其他用途时,停用并关闭开机启动:
systemctl stop httpd systemctl disable httpd -
对已核实的软件包先预检查,再卸载。
将<包名列表> 替换为本节点确认可删除的完整包名,用空格分隔:rpm -e --test <包名列表> yum remove <包名列表>注意删除时,不能连带删除 Manager、Agent 或仍在使用的监控组件;
删除时不要使用通配符、--nodeps或自动确认。完成后确认旧入口不可用、组件不会自动拉起,新 Manager 登录与服务状态正常。
六、配置回退
发生异常时暂停后续节点操作,在限制访问的前提下,将 <备份文件> 替换为本次备份的完整路径:
cp -a <备份文件> /etc/php.ini
httpd -t
systemctl restart httpd
语法检查通过后才重启;如修改过其他覆盖配置,也需恢复对应文件。回退会撤销相应缓解,需继续安排安全更新。本步骤不能恢复已经卸载的软件包,卸载前应准备对应版本恢复方案。