From 1b795cee9dc36e55c73a325e922ca0d980baa87d Mon Sep 17 00:00:00 2001 From: hoelee Date: Fri, 23 Oct 2026 02:02:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(posts):=20PHP2Shell=20=E2=80=94=20every=20?= =?UTF-8?q?PHP=20runtime=20I=20manage=20was=20vulnerable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds EN + ZH post php2shell-patching-every-php-runtime-i-manage: measured PHP versions across the fleet, the order the fixes shipped in, the 8.5 package trap, the OLS vhost handler switch, and the silent bot-block bug the sweep uncovered. Ships og cards (EN/ZH), banner + webp, 2 thumbs. --- ...ll-patching-every-php-runtime-i-manage.jpg | Bin 0 -> 79269 bytes ...l-patching-every-php-runtime-i-manage.webp | Bin 0 -> 45606 bytes ...ll-patching-every-php-runtime-i-manage.jpg | Bin 0 -> 72009 bytes ...tching-every-php-runtime-i-manage-400.webp | Bin 0 -> 6956 bytes ...tching-every-php-runtime-i-manage-800.webp | Bin 0 -> 17460 bytes ...ll-patching-every-php-runtime-i-manage.jpg | Bin 0 -> 65093 bytes scripts/og-gen/art-meta.json | 3 + ...ell-patching-every-php-runtime-i-manage.md | 316 ++++++++++++++++++ ...ell-patching-every-php-runtime-i-manage.md | 202 +++++++++++ 9 files changed, 521 insertions(+) create mode 100644 public/banners/php2shell-patching-every-php-runtime-i-manage.jpg create mode 100644 public/banners/php2shell-patching-every-php-runtime-i-manage.webp create mode 100644 public/og/php2shell-patching-every-php-runtime-i-manage.jpg create mode 100644 public/og/thumb/php2shell-patching-every-php-runtime-i-manage-400.webp create mode 100644 public/og/thumb/php2shell-patching-every-php-runtime-i-manage-800.webp create mode 100644 public/og/zh-php2shell-patching-every-php-runtime-i-manage.jpg create mode 100644 src/content/posts/php2shell-patching-every-php-runtime-i-manage.md create mode 100644 src/content/posts/zh/php2shell-patching-every-php-runtime-i-manage.md diff --git a/public/banners/php2shell-patching-every-php-runtime-i-manage.jpg b/public/banners/php2shell-patching-every-php-runtime-i-manage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c9ee88ef174be93ed091f50f933e276bfe1bbcb GIT binary patch literal 79269 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 literal 0 HcmV?d00001 diff --git a/public/og/thumb/php2shell-patching-every-php-runtime-i-manage-400.webp b/public/og/thumb/php2shell-patching-every-php-runtime-i-manage-400.webp new file mode 100644 index 0000000000000000000000000000000000000000..2e054699ab7fb0b99bd5a9f4811fb8347eb4044d GIT binary patch literal 6956 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 literal 0 HcmV?d00001 diff --git a/public/og/thumb/php2shell-patching-every-php-runtime-i-manage-800.webp b/public/og/thumb/php2shell-patching-every-php-runtime-i-manage-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..bb45879838c8807c8ca2ea4f2db7200780432a70 GIT binary patch literal 17460 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 D%f}6Z literal 0 HcmV?d00001 diff --git a/public/og/zh-php2shell-patching-every-php-runtime-i-manage.jpg b/public/og/zh-php2shell-patching-every-php-runtime-i-manage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..140d6b97d1aca38334cc7ba6c1d67be7444f00a8 GIT binary patch literal 65093 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�q?O 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 aWPjsl&xn@ $(readlink -f /proc/$p/exe)" +done | sort -u +``` + +```text +chaij6203 -> /usr/local/lsws/lsphp84/bin/lsphp +hoele6451 -> /usr/local/lsws/lsphp84/bin/lsphp +numer9393 -> /usr/local/lsws/lsphp84/bin/lsphp +... +``` + +## Step 2: moving to 8.5.12, and the package that does not exist + +With the CVE closed I could work at a civilised pace. The target was PHP +**8.5.12** for everything that supports it, one branch of 8.3 kept as a +fallback, and the two obsolete branches (8.1, 8.2) removed. + +The install failed on the first attempt, in a way worth recording. I mirrored +the existing 8.4 package set by find-and-replace, which produced +`lsphp85-opcache` — and the whole apt run aborted: + +```text +E: Unable to locate package lsphp85-opcache +``` + +In PHP 8.5, OPcache is part of the base package (verify with +`lsphp85 -i | grep 'Zend OPcache'` → enabled), so the `-opcache` sub-package +simply does not exist for that branch in the LiteSpeed repo. Build the list from +the repository's own inventory instead of from the previous branch: + +```bash +apt-cache search '^lsphp85' | awk '{print $1}' | tr '\n' ' ' +``` + +One more trap: `lsphp -m` prints the usage banner and exits, because the LSAPI +SAPI has no script to run. Use `lsphp -i | grep …`, or the sibling CLI binary +`/usr/local/lsws/lsphp85/bin/php -m`. + +## Where a site's PHP version actually lives + +This is the part that surprised me, and it is why I did not simply click the +version dropdown. On this box, each vhost carries its **own** PHP handler — the +site's runtime is a line in the site's own config file: + +```text +/usr/local/lsws/conf/vhosts//vhost.conf + +extprocessor { + type lsapi + address UDS://tmp/lshttpd/.sock + path /usr/local/lsws/lsphp85/bin/lsphp <- this line + ... +} +``` + +The global `extProcessor lsphp` in `httpd_config.conf` — which still points at +`lsphp83` — is only the fallback for the default vhost. Changing it does nothing +for your sites. + +So the switch is a one-line edit, a config test, and a graceful restart: + +```bash +cp -a /usr/local/lsws/conf/vhosts//vhost.conf \ + /root/vhost-backup/.vhost.conf.bak-$(date +%F-%H%M) +sed -i 's#/usr/local/lsws/lsphp[0-9]*/bin/lsphp#/usr/local/lsws/lsphp85/bin/lsphp#' \ + /usr/local/lsws/conf/vhosts//vhost.conf +/usr/local/lsws/bin/lshttpd -t # errors? stop here +/usr/local/lsws/bin/lswsctrl restart # graceful, ~2 s, all vhosts +``` + +The panel's database is part of the runtime state too. CyberPanel keeps +`phpSelection` in `cyberpanel.websiteFunctions_websites`; leave it saying +`PHP 8.4` while the vhost says 8.5 and the next panel-side save (or a staging +clone) will happily rewrite the vhost back to what the panel believes: + +```sql +UPDATE cyberpanel.websiteFunctions_websites + SET phpSelection = 'PHP 8.5' + WHERE domain IN (...); +``` + +I rolled it out one site at a time — a test WordPress install first, then a +low-traffic client site, then the rest, then my own site last. Rollback at any +point is the same `sed` in reverse plus a restart, five seconds. + +## Verify with bytes, not status codes + +"200 OK" is a weak assertion. A PHP fatal in a page fragment, a plugin that +silently stops rendering a block, a shortcode that returns an empty string — +all of those still return 200. So before each switch I captured the rendered +homepage and its byte count, and after each switch I required the same count: + +```bash +curl -skL -o /dev/null -w '%{http_code} %{size_download}\n' https:/// +``` + +```text +hoelee.com 200 227390 (before and after: identical) +chaijoywood.com 200 266192 (identical) +nestz.com.my 200 222780 (identical) +truetrading.com.my 200 134535 (identical) +test.hoelee.com 200 80869 (identical) +sifumail.com 200 44861 (identical) +numerology.digikedai.com 200 142762 (stayed on 8.4.27) +``` + +I also grep every response for `Fatal error` / `Uncaught` / `Deprecated:`, and +hit `/wp-json/` — a 200 there means WordPress actually bootstrapped, queried the +database and serialised a response, which is a much stronger signal than a +cached homepage render. Zero errors across all of them. (WordPress 6.9 and 7.x +are documented as fully supporting PHP 8.5; the residual risk is plugins, not +core. My sites run 19–44 plugins each, which is exactly why the byte-count check +earned its keep.) + +## The bug the vulnerability found for me + +While testing, I noticed `/xmlrpc.php`, `/.env` and `/readme.html` were still +returning 200 on one client site — in October 2026, on a vhost I had +deliberately hardened in September with eight deny contexts. + +The cause was not the contexts. It was two stray `}` left in that vhost file by +my own earlier edit. A `vhost.conf` is the **body** of a `virtualHost` block — +the outer braces live in `httpd_config.conf` — so those two braces closed +nothing, and every `context` appended after them sat outside the vhost and +registered nowhere. The config parser had been saying so on every single run: + +```text +[ERROR] [PlainConf] [virtualHostConfig:] parseline found more '}' in + /usr/local/lsws/conf/vhosts/truetrading.com.my/vhost.conf:80 +``` + +I had read that line as noise for weeks. It was the whole diagnosis. After +removing the two braces and reloading, the same three URLs answered **403**, and +the config test went from two errors to zero. + +The lesson is not "check your braces". It is that **a security control that +fails silently is worse than no control**, because it buys you the confidence +without the protection — and the warning that would have told you is sitting in +a log you have decided is noisy. + +## What I deliberately did not upgrade + +Two of those systems have no fix to install, and saying that plainly is part of +the job. + +**Synology DSM** ships PHP as Package Center packages. The newest `PHP8.4` +build in Synology's public archive is still **8.4.19-0050** — pre-fix, and +Synology's PHP packages historically lag by days to months. So Web Station gets +a mitigation, not a patch: `session.upload_progress.enabled = 0`, +`session.use_strict_mode = 1`, `session.use_only_cookies = 1` in the PHP +profile, and a hard rule that Web Station's docroot is not exposed to the +internet while the runtime is unpatched. + +**unRaid** bundles PHP in the OS image. My box runs 7.1.4 with webGUI PHP +**8.3.19**; the current stable (7.3.3) and even 7.4.0-rc.1 ship **8.4.26** — +still below 8.4.27. There is no patch to apply yet, so the control is +reachability: the webGUI answers on the LAN only and is not tunnelled. + +**numerology.digikedai.com** stays on 8.4.27 on purpose. It is a CodeIgniter 4 +application on framework 4.7.4, whose documented support stops at PHP 8.4. A +revenue-handling app is the wrong place to discover 8.5 deprecations, so it gets +the patched runtime now and the branch migration after a framework update and a +staging test. + +## What I'd do differently + +1. **Probe versions on a schedule, not during an incident.** The measurement + work above took an hour because I was doing it under pressure. A tiny script + that runs `php -v` in every container and every host runtime weekly would + have answered the whole question in one table before the advisory landed. +2. **Treat the control panel's database as runtime state.** Half my confusion + was "the panel says 8.4" versus "the process says 8.5". Two sources of truth + is a bug. +3. **Delete the old branches on the same day.** 8.1 and 8.2 were installed, + unused, and unsupported — 194 MB of attack surface kept alive by inertia. + They are gone now. +4. **Read the config test output every time, out loud.** The stray-brace bug had + been printing its own diagnosis on every restart for a month. + +## The result + +One command closed a 9.2-severity unauthenticated RCE across eight public sites +in about two minutes. Over the following hour, seven of them moved to PHP +**8.5.12**, the eighth stayed on **8.4.27** by choice, the fallback branch went +to **8.3.36**, and two obsolete branches were removed — with every site's +rendered output byte-identical before and after, zero PHP errors, and a config +test that now passes clean. + +The vulnerability also handed me a real finding: eight bot-block rules that had +never been live, on a public site, in a config file whose parser had been +complaining about them the entire time. + +Zero-day PHP bugs are rare. Silent security controls are not. + +--- + +## Want this done on your servers? + +I patch and maintain self-hosted PHP fleets for a living — WordPress on +CyberPanel/OpenLiteSpeed, Dockerised PHP behind Traefik, Synology and unRaid +hosts included. If you have sites you are not sure are on a patched runtime, I +will measure every one of them, tell you honestly which ones have no vendor fix +yet, and schedule the rest around your traffic. + +Reach me at [me@hoelee.com](mailto:me@hoelee.com?subject=PHP%20runtime%20patch%20audit) or WhatsApp +[+60 12-797 2969](https://wa.me/60127972969), or see what I do at +[hoelee.com](https://hoelee.com). diff --git a/src/content/posts/zh/php2shell-patching-every-php-runtime-i-manage.md b/src/content/posts/zh/php2shell-patching-every-php-runtime-i-manage.md new file mode 100644 index 0000000..1f17884 --- /dev/null +++ b/src/content/posts/zh/php2shell-patching-every-php-runtime-i-manage.md @@ -0,0 +1,202 @@ +--- +title: "PHP2Shell:我管的每台机器,PHP 运行时全都中了" +description: "CVE-2026-109618 与 CVE-2026-109619 是 PHP 语言本身的未授权远程代码执行,披露前就已被利用。这篇记录我在自己管理的系统上实测到的版本、先修哪里,以及真正把它关掉的那几条命令。" +pubDate: 2026-10-23 +category: devops +tags: ["php", "security", "cve", "cyberpanel", "litespeed", "wordpress", "patching", "self-hosting"] +ogImage: /og/zh-php2shell-patching-every-php-runtime-i-manage.jpg +banner: /banners/php2shell-patching-every-php-runtime-i-manage.jpg +draft: false +--- + +## 这次和过去十个「PHP 高危漏洞」不一样 + +大多数打着 PHP 名号的高危通告,其实是应用层的 bug 借了框架的名字:某个插件、某个 CMS 路由、某个反序列化写坏了的库。它们也危险,但补法很明确——升级那一个东西,影响面就是它服务的那些页面。 + +**PHP2Shell 在 PHP 自己身上。** 两个漏洞:CVE-2026-109618,内存耗尽(OOM)让一次操作半途中断、请求状态只初始化了一半,而 PHP 自己的清理逻辑随后把这份无效状态当成有效的;CVE-2026-109619,陈旧全局状态跨过请求边界存活下来。两个都是 CVSS v4.0 **9.2**,默认配置下未授权即可远程执行代码。Wiz 的研究团队在 `wordpress:latest`、`drupal:latest`、`joomla:latest` 上打出了 pre-auth RCE,另外还演示了一条纯内存泄漏路径:不需要执行任何代码,就能读到其他请求的密码、token 和 API key。 + +三个细节决定了我要怎么花这一天: + +1. **从 PHP 5.4 到 8.5 全中。** 不是「部分版本」。一个只打印 Hello World 的 `index.php` 就够被打穿——所以「我这站是自己写的,没人会盯上」不构成任何缓解。 +2. **披露前就已经在被利用。** AWS 的威胁情报在蜜罐里于 **10 月 17 日**就观测到 PHP2Shell 的利用尝试,比通告早四天;Cloudflare 在补丁发布当天就报告了攻击流量,包括试图绕过其防护的变种。 +3. **只有打补丁能真修。** 到处转的 `session.upload_progress.enabled = 0` 只砍掉了一条利用路径,不是这一类 bug。PHP 自己的安全公告这么说,Datadog 的分析也这么说。把它当安全带可以,当修好不行。 + +修复版本(2026 年 10 月 21 日发布):**8.2.35 / 8.3.36 / 8.4.27 / 8.5.12**。PHP 8.1 及更早已停止支持,永远不会有了。 + +## 停止猜,改成实测 + +我管的机器分布在几处:群晖 DSM、unRaid、一台跑 CyberPanel/OpenLiteSpeed 的 Ubuntu 虚拟机(托管 8 个线上站),以及一台 VPS(Traefik + mailcow + 5 个容器化的 PHP 站)。加起来大概 170 个容器。 + +我第一反应是看镜像 tag 就收工——这恰恰是最容易出错的判断。`php:8.3-fpm-alpine` 是浮动 tag,它可以是任何 8.3.x;而一个从未被重建过的容器,永远停在它启动那一刻的版本。**Docker 的 tag 不是版本号。** 所以我改成进入每一个候选运行时里量:在容器里、或在宿主运行时自己的二进制上跑 `php -v` 和 `php -i`。 + +结果: + +| 主机 | 运行时 | 实测版本 | 谁能访问 | 有修复版本吗 | +|---|---|---|---|---| +| VPS 41.216.187.102 | 5 × `php:8.3-fpm-alpine` | **8.3.33** | 公网(5 个站) | 有——8.3.36 | +| VPS | mailcow `phpfpm` | **8.2.29** | 仅内部 | 有——8.2.35 | +| CyberPanel VM | `lsphp84`(8 个站) | **8.4.25** | 公网(8 个站) | 有——8.4.27 | +| CyberPanel VM | `lsphp81` / `lsphp82` / `lsphp83` | 8.1.34 / 8.2.33 / 8.3.33 | 未使用 / 默认回退 | 8.1 永远没有,其余有 | +| DSM | Web Station PHP 套件 | **8.2.30 / 8.3.30 / 8.4.19** | 内网 + 隧道 | **没有** | +| DSM | `phpmyadmin:5.2.3` | **8.3.33** | SSO 后面 | 有——重拉镜像 | +| DSM / unRaid | `passbolt` 5.15 / 5.14 | **8.4.24** | SSO / 内网 | 需要重拉并复核 | +| unRaid 7.1.4 | webGUI 的 PHP | **8.3.19** | 仅内网 | **没有** | + +每一行都中。这不是巧合,这就是「只给应用打补丁、不给运行时打补丁」的机群长什么样,而这类 bug 已经在代码里躺了十年。 + +这张表同时给出了排序。决定先修谁的是两件事:**暴露面**(谁能碰到它)和**到底有没有修复版本**。公网上跑着 WordPress 的旧运行时排第一;只在内网应答的管理界面排最后。而「厂商还没出包」是一个必须说出口的真实状态,不能拿一个不存在的更新来糊过去。 + +## 第一步:一条命令关掉 8 个公网站 + +最急的是 CyberPanel 那台:8 个公网站(其中 5 个 WordPress)全跑在同一个 `lsphp84` 8.4.25 上。 + +LiteSpeed 的软件源里已经有修复版本,所以第一步的收益最高、风险最低——同一个 8.4 分支内的点升级: + +```bash +sudo apt update +sudo apt-get install --only-upgrade $(dpkg -l | awk '/^ii +lsphp84/{print $2}') +/usr/local/lsws/lsphp84/bin/lsphp -v # PHP 8.4.27 (litespeed) +sudo /usr/local/lsws/bin/lswsctrl restart +``` + +两分钟后这 8 个站全部落在修复版上。我要说清楚:**真正把洞堵住的是这一步**,不是后面那场 8.5 迁移。后面那些只是「我想停在我想要的位置」,与「安全了」无关。 + +验证是大多数人会跳过、却最要紧的一步。**进程名什么都证明不了**:OpenLiteSpeed 为每个 vhost 起的 PHP 子进程,`argv[0]` 就是字面上的 `lsphp`,所以 `ps aux | grep lsphp` 只会给你八个一模一样的进程,看不出各自跑的哪个二进制。要按站点用户去读 PID 背后真正的可执行文件: + +```bash +ps -eo user:20,pid,args | grep '[l]sphp' | while read u p a; do + echo "$u -> $(readlink -f /proc/$p/exe)" +done | sort -u +``` + +```text +chaij6203 -> /usr/local/lsws/lsphp84/bin/lsphp +hoele6451 -> /usr/local/lsws/lsphp84/bin/lsphp +numer9393 -> /usr/local/lsws/lsphp84/bin/lsphp +... +``` + +## 第二步:上 8.5.12,以及那个不存在的包 + +CVE 关掉之后,才有资格从容地做迁移。目标是:能上 8.5 的站全部上 **8.5.12**,保留一条 8.3 作回退,把两条过时分支(8.1、8.2)删掉。 + +第一次安装就失败了,失败方式值得记下来。我照着 8.4 的包列表做查找替换,生成了 `lsphp85-opcache`——整个 apt 事务直接中止: + +```text +E: Unable to locate package lsphp85-opcache +``` + +PHP 8.5 里 OPcache 已经并进主包(用 `lsphp85 -i | grep 'Zend OPcache'` 可验证 → enabled),所以那个分支在 LiteSpeed 源里根本没有 `-opcache` 子包。正确做法是直接从仓库自己的清单取包名,而不是从上一个分支抄: + +```bash +apt-cache search '^lsphp85' | awk '{print $1}' | tr '\n' ' ' +``` + +还有一个坑:`lsphp -m` 会打印用法说明然后退出,因为 LSAPI 这个 SAPI 没有脚本可跑。要用 `lsphp -i | grep …`,或者同目录的 CLI 二进制 `/usr/local/lsws/lsphp85/bin/php -m`。 + +## 一个站的 PHP 版本到底写在哪 + +这部分让我意外,也是我没有去点面板下拉框的原因。这台机器上每个 vhost 带**自己的** PHP handler——站点的运行时是它自己配置文件里的一行: + +```text +/usr/local/lsws/conf/vhosts//vhost.conf + +extprocessor { + type lsapi + address UDS://tmp/lshttpd/.sock + path /usr/local/lsws/lsphp85/bin/lsphp <- 就是这一行 + ... +} +``` + +`httpd_config.conf` 里那个全局的 `extProcessor lsphp`(现在仍指向 `lsphp83`)只是默认 vhost 的回退。改它对你的站点毫无影响。 + +所以切换 = 改一行、测配置、平滑重启: + +```bash +cp -a /usr/local/lsws/conf/vhosts//vhost.conf \ + /root/vhost-backup/.vhost.conf.bak-$(date +%F-%H%M) +sed -i 's#/usr/local/lsws/lsphp[0-9]*/bin/lsphp#/usr/local/lsws/lsphp85/bin/lsphp#' \ + /usr/local/lsws/conf/vhosts//vhost.conf +/usr/local/lsws/bin/lshttpd -t # 有 ERROR 就停手 +/usr/local/lsws/bin/lswsctrl restart # 平滑,约 2 秒,全部 vhost +``` + +面板的数据库也算运行时状态的一部分。CyberPanel 把版本记在 `cyberpanel.websiteFunctions_websites.phpSelection`;如果 vhost 改成 8.5 而库里还写着 `PHP 8.4`,那么下一次面板侧保存(或建 staging 副本)就会理直气壮地把 vhost 改回面板以为的值: + +```sql +UPDATE cyberpanel.websiteFunctions_websites + SET phpSelection = 'PHP 8.5' + WHERE domain IN (...); +``` + +我是一个站一个站推的:先测试站,再一个低流量客户站,然后其余,最后才是我自己的主站。任何时候回滚都是同一条 `sed` 反向执行加重启,五秒钟。 + +## 用字节数验证,不要用状态码 + +「200 OK」是很弱的断言。页面片段里的 PHP fatal、某个插件悄悄不渲染了、短代码返回空字符串——这些都还是 200。所以每次切换前我都抓下渲染好的首页和它的字节数,切换后要求字节数完全一致: + +```bash +curl -skL -o /dev/null -w '%{http_code} %{size_download}\n' https:/// +``` + +```text +hoelee.com 200 227390 (切换前后完全一致) +chaijoywood.com 200 266192 (一致) +nestz.com.my 200 222780 (一致) +truetrading.com.my 200 134535 (一致) +test.hoelee.com 200 80869 (一致) +sifumail.com 200 44861 (一致) +numerology.digikedai.com 200 142762 (留在 8.4.27) +``` + +我还会在每个响应里 grep `Fatal error` / `Uncaught` / `Deprecated:`,并请求 `/wp-json/`——那里返回 200 说明 WordPress 真的启动、查库、序列化了一份响应,比一个可能被缓存的首页渲染强得多。全部零错误。(WordPress 6.9 与 7.x 官方声明完全支持 PHP 8.5,残余风险在插件不在核心。我的站每个装了 19–44 个插件,这正是字节数校验值得做的原因。) + +## 这个漏洞顺手帮我找出的旧 bug + +测试时我注意到,某个客户站的 `/xmlrpc.php`、`/.env`、`/readme.html` 仍然是 200——2026 年 10 月,在一个我九月特意加固过、写了八条 deny context 的 vhost 上。 + +原因不在那些 context,而在我自己早前那次编辑留在文件里的两个多余 `}`。`vhost.conf` 是 `virtualHost` 块的**主体**(外层大括号在 `httpd_config.conf` 里),所以那两个括号什么也没关闭,而它们之后追加的每一条 `context` 都落在 vhost 之外,压根没有注册。配置解析器其实每一次运行都在说这件事: + +```text +[ERROR] [PlainConf] [virtualHostConfig:] parseline found more '}' in + /usr/local/lsws/conf/vhosts/truetrading.com.my/vhost.conf:80 +``` + +我把它当噪音读了好几周。而它本身就是全部诊断。删掉那两个括号、重载之后,同样三个 URL 变成了 **403**,配置测试从两条错误变成零。 + +教训不是「检查括号」。而是:**会静默失效的安全控制,比没有控制更糟**——它把信心卖给了你,却没给保护,而本该告诉你真相的那条警告,正躺在你已判定为噪音的日志里。 + +## 我故意没有升级的部分 + +其中有几个系统根本没有补丁可打,把这件事说清楚也是工作的一部分。 + +**群晖 DSM** 的 PHP 是以 Package Center 套件形式发布的。群晖公开归档里最新的 `PHP8.4` 仍是 **8.4.19-0050**——修复前版本,而群晖的 PHP 套件历来落后几天到几个月。所以 Web Station 只做缓解、不做升级:PHP 配置里 `session.upload_progress.enabled = 0`、`session.use_strict_mode = 1`、`session.use_only_cookies = 1`,并立一条硬规矩——运行时没打补丁期间,Web Station 的站点根绝不暴露到公网。 + +**unRaid** 把 PHP 打包在系统镜像里。我这台是 7.1.4,webGUI 的 PHP 是 **8.3.19**;当前稳定版(7.3.3)、甚至 7.4.0-rc.1 带的都是 **8.4.26**——仍然低于 8.4.27。没有补丁可打,所以控制手段是可访问性:webGUI 只在内网应答,没有走隧道。 + +**numerology.digikedai.com** 是我主动留在 8.4.27 的。它是 CodeIgniter 4 应用,框架版本 4.7.4,官方文档只声明支持到 PHP 8.4。一个处理订单和交付的应用,是最不该拿去试 8.5 弃用警告的地方——所以它现在拿的是「已打补丁的运行时」,分支迁移放到框架升级 + staging 测试之后。 + +## 如果重来一次,我会改什么 + +1. **把版本探测做成定时任务,而不是事故发生时才做。** 上面这套实测花了我一小时,因为是在压力下做的。一个每周在每台主机、每个容器里跑 `php -v` 的小脚本,本来能在通告落地之前就把这张表给我。 +2. **把面板数据库当成运行时状态来看。** 我一半的困惑来自「面板说 8.4」对上「进程说 8.5」。两个真相来源本身就是 bug。 +3. **当天就删旧分支。** 8.1 和 8.2 是装着的、没用的、不再支持的——194MB 纯靠惯性活下来的攻击面。现在它们没了。 +4. **每次都把配置测试的输出读出来。** 那个括号 bug 每次重启都在打印自己的诊断,整整一个月。 + +## 结果 + +一条命令,在两分钟内关掉了 8 个公网站上的 9.2 分未授权 RCE。接下来一小时里,其中 7 个迁到 PHP **8.5.12**,第 8 个按计划留在 **8.4.27**,回退分支升到 **8.3.36**,两条过时分支被删除——每个站渲染出的字节数与升级前完全一致,零 PHP 错误,配置测试干净通过。 + +顺带还拿到一个真实发现:八条从未生效的 bot-block 规则,在一个公网站点上,在一个解析器一直在抱怨的配置文件里。 + +PHP 的零日很少见。静默失效的安全控制不少见。 + +--- + +## 需要有人帮你把这些做一遍? + +我平时就在做自托管 PHP 机群的打补丁与维护——CyberPanel/OpenLiteSpeed 上的 WordPress、Traefik 后面的容器化 PHP、以及群晖和 unRaid 主机。如果你的站点不确定跑在哪个运行时上,我会上门把每一个都量出来、老实告诉你哪些厂商还没出包、其余的按你的流量节奏排期。 + +邮箱 [me@hoelee.com](mailto:me@hoelee.com?subject=PHP%20%E8%BF%90%E8%A1%8C%E6%97%B6%E8%A1%A5%E4%B8%81%E5%AE%A1%E8%AE%A1),WhatsApp +[+60 12-797 2969](https://wa.me/60127972969),或看我在做什么:[hoelee.com](https://hoelee.com)。