loserc6
V2EX  ›  PHP

PHP 最新零日漏洞怎么没人讨论

  •  9
     
  •   loserc6 · 1 day ago · 18524 views

    好多业务都还在 php7 环境跑呐 这下官方都不支持修补 完蛋了

     [紧急安全预警] 关于 PHP2Shell (CVSS 9.2) 核心级 RCE 漏洞的修复指南
    
    尊敬的客户:
    
    您好!针对即将在北京时间 10 月 21 日(周三) 22:00 公开的 PHP 核心严重安全漏洞,我们在此向您发布最高级别的安全预警。
    
    据国际安全机构 Sansec 披露,此次爆发的漏洞被称为 PHP2Shell 。目前该漏洞的自动化利用工具截图已在安全社区泄露,预计官方补丁发布后 15 分钟内,全网将出现大规模的无差别扫描与攻击。
    
    漏洞核心情报
    漏洞代号/编号:PHP2Shell (CVE-2026-109618, CVE-2026-109619)
    
    危险等级:CVSS 9.2 (极度危险)
    
    漏洞类型: 远程代码执行( RCE ),攻击者可直接接管服务器获取 Shell 。
    
    受影响版本:PHP 5.4 及以上所有版本。Magento 、Shopware 、WooCommerce 等电商系统及各类 CMS 将受严重威胁。
    
    补丁发布时间: 北京时间 10 月 21 日(周三) 22:00 ( 14:00 UTC )
    
    ⚠️ 核心警告:无法在代码层防御
    该漏洞存在于 PHP 的底层架构中。这意味着任何代码级别的修改、面板加固或常规的应用层防护插件都无法拦截此攻击。防御的唯一有效方式是在服务器基础设施层面(环境底层)直接更新 PHP 版本。
    
    紧急应对与修复建议
    官方将仅为 PHP 8.2 、8.3 、8.4 和 8.5 发布修复补丁。请您立即采取以下行动:
    
    1. 正在使用 PHP 8.2 - 8.5 的用户(需今晚紧急操作):
    
    随时待命: 请通知您的运维团队在今晚 22:00 前做好准备。
    
    抢占黄金 15 分钟: 补丁一旦发布,请务必在第一波自动化攻击到来前,通过包管理器( apt/yum )或重新编译升级 PHP ,并立刻重启相关服务( Nginx/Apache/PHP-FPM )。
    
    2. 正在使用 PHP 8.1 及以下旧版本(含 5.6 、7.x 等)的用户:
    
    官方已明确不会为这些版本发布补丁。继续使用这些版本将让您的服务器完全裸露在 PHP2Shell 的攻击火力之下。
    
    短期缓解: 立即排查并收紧服务器安全组及防火墙( iptables/firewalld )策略,开启高级别 WAF ,并在 php.ini 中禁用高风险命令执行函数。
    
    长期建议: 请即刻安排业务环境迁移,将底层升级至受官方支持的 PHP 8.2+ 版本。
    

    Supplement 1  ·  1 day ago

    临时措施修改 php.ini (非可信来源:

    session.upload_progress.enabled = Off
    session.upload_progress.cleanup = On
    session.use_strict_mode = 1
    session.use_only_cookies = 1
    session.cookie_httponly = 1
    
    126 replies  •  2026-10-22 15:58:00 +08:00
    1  2  
    ❮ ❯
    EmptyDX
        1
    EmptyDX  
       1 day ago
    那就升级
    hhacker
        2
    hhacker  
       1 day ago   ❤️ 3
    这个感觉怪怪的, 就算不披露漏洞细节, 补丁不是应该提前发吗? 这样定闹钟提醒别人打补丁是不是意味着在闹钟响之前所有跑在 php 下的系统都是 100%可入侵的,拿着 0day 的人想做什么做什么.
    ucaime
        3
    ucaime  
       1 day ago
    好消息:暂时还没发现被攻击的迹象
    坏消息:用的 PHP8-,而且因为历史原因很难直接升级上来~

    看起来是时候把以前的一堆 php 老服务用 AI 重构一遍了。。。

    > 这个漏洞看描述影响面会非常大,考虑到存量 PHP 应用的规模,以及最近几年很多老的 PHP 业务系统被遗忘、边缘化、没人维护等等一系列问题。一旦漏洞的修复出来,通过逆向或其他方式很容易发现被利用的方法并迅速扩散。理论上会成为近几年影响最大的安全事件
    > 更蛋疼的是,连原来搞 PHP 的人都逐渐转移到其他领域或者玩 AI 去了,老业务的漏洞修复都是个问题
    > 很多很多年之前我以前还给大量的高校、政务、媒体搞过一堆的 PHP 的应用和服务,居然现在都还在用,但按目前观察到的维护力度,几乎不可能在半年内完成修复,麻烦大了
    littephi
        4
    littephi  
       1 day ago
    interesting
    longaiwp
        5
    longaiwp  
       1 day ago
    疯狂一夜准备到来
    zuokanyunqishi
        6
    zuokanyunqishi  
       1 day ago
    @ucaime 好事,外包出来
    aababc
        7
    aababc  
       1 day ago
    就当不知道!
    eoeapp
        8
    eoeapp  
       1 day ago
    怪不得 namesilo 都暂停服务了
    nuansediao
        9
    nuansediao  
       1 day ago
    说明大家都顾不上拍黄片了
    iorilu
        10
    iorilu  
       1 day ago
    没看明白

    补丁发布之后才攻击? 这啥意思
    spicy777
        11
    spicy777  
       1 day ago
    真的假的,线上业务还在用的 7.4 版本
    codingmiao
        12
    codingmiao  
       1 day ago
    这个公告真的抽象啊,我们发现了漏洞,我们做好了补丁,我们发漏洞详情后你就会被打,所以我们要拖几个小时再把补丁丢出来。。意思是只有官方知道这个漏洞?
    ucaime
        13
    ucaime  
       1 day ago   ❤️ 9
    @iorilu 目前仅仅几个小组验证了漏洞并发布了演示,其他人还不知道漏洞细节,但一旦补丁发布,通过逆向和问题定位,会被几乎所有漏洞研究组织、黑灰产等等渠道获得具体的利用方法并扩散。这个时间大概在发布后 15 分钟左右,并迅速达到高峰。

    根据以往的经验,这玩意儿的利用工具会迅速的增加修复功能,并在自己入侵获得权限后帮你修复漏洞避免被后来者抢走权限,所以你懂的,时间就是金钱~
    icanfork
        14
    icanfork  
       1 day ago
    @iorilu 补丁发布以后,更多的“攻击者”才会推演出漏洞的更多细节和攻击方式
    villivateur
        15
    villivateur  
       1 day ago
    我把自己用到的 php 服务,先在 nginx 上添加 return 503 ,等更新。
    我朋友更牛逼,直接把服务器关了。
    nc
        16
    nc  
       1 day ago
    paopjian
        17
    paopjian  
       1 day ago
    @hhacker @codingmiao 有 REA 了, 以后发布补丁黑客都不用看直接 AI 就给你分析改动地方然后写攻击代码了, 官方只能先给全员发一个警钟, 发布补丁后赶紧修, 等于说以后发布漏洞补丁都相当于官方在线发布 0Day 漏洞, 几分钟后就是全网漏洞攻击
    CloudnuY
        18
    CloudnuY  
       1 day ago   ❤️ 4
    晚一点你的小鸡就换新主人了
    zhady009
        19
    zhady009  
       1 day ago
    还有一个 CVE-2026-99999 我看也没人讨论,V 站应该不少人有买 VPS
    loserc6
        20
    loserc6  
    OP
       1 day ago
    有爆料临时措施(非可信来源:
    关闭会话( Session )文件上传进度功能
    php.ini
    session.upload_progress.enabled = Off
    Leox0607
        21
    Leox0607  
       1 day ago
    先禁用危险函数和设置白名单?
    trust999
        22
    trust999  
       1 day ago
    业务来了,快接单😎
    winterx
        23
    winterx  
       1 day ago
    已经碰到有网站直接关站等 php 补丁了
    loserc6
        24
    loserc6  
    OP
       1 day ago
    @winterx 可惜生产环境无法关停,只能等补丁出来后 ai 看看怎么给 php7 修复
    Smileh
        25
    Smileh  
       1 day ago
    session.upload_progress.enabled=off
    session.use_strict_mode=1
    lp7631010
        26
    lp7631010  
       1 day ago
    我不管 php 是最好的语言
    Dandan2019
        27
    Dandan2019  
       1 day ago
    @winterx 哈哈,我已经关站了
    Felldeadbird
        28
    Felldeadbird  
       1 day ago
    怎么高危法?
    ccc008
        29
    ccc008  
       1 day ago   ❤️ 1
    @Felldeadbird 远程获取 shell
    craftsmanship
        30
    craftsmanship  
       1 day ago via Android   ❤️ 1
    等一波震惊瘫坐
    Tink
        31
    Tink  
       1 day ago
    有 poc 样例没,想试试
    loserc6
        32
    loserc6  
    OP
       1 day ago
    @Tink #16 楼有疑似的
    fionasit007
        33
    fionasit007  
       1 day ago
    天塌了,我手上一大堆 php 项目,还不是一个环境里,能不能抱侥幸心理啊,这要修复或者升级,就算借助 ai 也不显示啊,短时间根本处理不完
    loserc6
        34
    loserc6  
    OP
       1 day ago
    @fionasit007 一样,等今晚补丁发布后 社区反应吧 看有没有大佬接手处理 php7 的补丁
    oktango
        35
    oktango  
       1 day ago
    php8.2 以下的版本都没有官方补丁。。。
    hingle
        36
    hingle  
       1 day ago
    肯定是用到了某个功能/模块才有被利用的风险。

    不然搭个空白 PHP 页面也能被 get shell? 不太现实,除非在 path、query、cookie 等解析上的漏洞。
    shuijingwanwqyy
        37
    shuijingwanwqyy  
       1 day ago
    幸好前段时间,将我的服务器的版本升级至 PHP 8.5.9 ,今天晚上的工作量应该会少一些了。
    hatch
        38
    hatch  
       1 day ago
    因为 php 凉透了。但是各种渠道都还有在传播,可见影响之广
    msojocs
        39
    msojocs  
       1 day ago
    博客还在用,晚点更新应该是为了消息尽可能传播,让大家有准备。
    直接更新很多人多不知道,但是黑客已经知道了,有时间差,导致用户服务器反而被黑。
    AstroProfundis
        40
    AstroProfundis  
       1 day ago
    因为现在不是 0day 漏洞,技术细节不明,还没有出现大规模利用。补丁一发出来就会被快速分析出漏洞细节然后马上被利用,ai 加持下一万个脚本小子开始扫全网。先发消息让所有人准备好然后一波集中更新可以缩短这个时间窗口
    ntedshen
        41
    ntedshen  
       1 day ago
    难怪下班点看到有些岛国站直接关停了。。。
    妈的看不了色图,很急
    kennylam777
        42
    kennylam777  
       1 day ago
    這個 PoC 我在本地跑得出來

    https://github.com/ikow/php2shell-poc
    hfJ433
        43
    hfJ433  
       1 day ago
    有了 ai 以后,漏洞感觉都没停过一样,层出不穷,时不时来个惊喜
    lrxiao
        44
    lrxiao  
       1 day ago
    哈哈,我在想要是这些 POC 实际上是发现了一些新漏洞该咋办

    TiDB, eMudhra CA, PHP2Shell 这一天真是疯狂
    someonesnone
        45
    someonesnone  
       1 day ago
    @lrxiao #44 等一家 SI 承认都是他家干的
    wdhwg001
        46
    wdhwg001  
       1 day ago
    我得补充一件事——LastPass 是 PHP 。

    https://lastpass.com/header.php
    MossFox
        47
    MossFox  
       1 day ago
    kdaysnya
        48
    kdaysnya  
       1 day ago
    收到消息就先实施 Php.ini 的缓解了,现在就在等补丁……
    shuijingwanwqyy
        49
    shuijingwanwqyy  
       1 day ago
    给 Codex 的指令如下,已经在执行中了:

    继续维护项目 `shuijingwan/oneinstack-custom`。

    ## 本轮任务

    PHP 8.5 补丁升级前置开发:**生产环境配置参数自动迁移**。

    本轮允许修改本地仓库代码、增加测试,但禁止修改生产服务器。

    ### 一、背景

    1. `ssh aliyun`:WordPress 生产环境,当前 PHP 8.5.9 ,PHP-FPM 正常运行。
    2. `ssh zgocloud`:未发现 PHP 安装,不在本轮范围。
    3. PHP 官方计划于 2026-10-21 发布紧急安全修复版本,具体目标版本暂未确定。
    4. 此前 PHP 8.1.19 → 8.5.9 的迁移已经成功,相关定制构建逻辑经过生产验证。
    5. 生产环境中的 PHP-FPM 、OPcache 等配置经过单独审计和调优,可能与仓库默认参数不同。

    参考资料:

    - https://www.shuijingwanwq.com/2026/08/04/22298/
    - https://www.shuijingwanwq.com/2026/08/06/23342/
    - https://www.shuijingwanwq.com/2026/08/07/23670/
    - https://www.shuijingwanwq.com/2026/08/16/26028/

    博客仅作历史参考,实际配置以当前服务器只读检查结果为准。

    ### 二、已经确定的设计原则

    **统一采用“新版配置文件 + 生产参数自动迁移”方案。**

    具体要求:

    1. 以目标 PHP 版本的官方配置模板为基础。
    2. 保留 OneinStack 必需的部署配置。
    3. 自动识别和迁移当前生产环境明确设置过的参数。
    4. 直接修改新版对应配置文件。
    5. PHP 主配置、PHP-FPM 全局配置和进程池配置采用统一的迁移策略。
    6. 不直接复制旧版本整份配置文件。
    7. 不新增 `99-production.ini` 或类似生产覆盖层。
    8. 允许沿用仓库原有的扩展配置文件结构。
    9. 不能静默丢弃未知、冲突、已删除或不兼容的配置项。
    10. 迁移完成后必须能够检查关键参数是否遗漏或发生变化。

    特别注意:

    - 不要将旧版本所有运行时默认值迁移到新版本。
    - 不要将历史博客中的参数硬编码为生产配置。
    - 不能仅通过比较旧配置文件与新版模板来推断全部人为调优意图;需要区分明确设置值、部署必需值和默认值。
    - 对无法可靠判断的参数,报告异常并停止自动应用,不猜测。

    ### 三、先进行代码和生产配置审计

    首先检查 `git status`,存在冲突性未提交修改时停止,不覆盖现有工作。

    重点阅读:

    - `install.sh`
    - `upgrade.sh`
    - `include/php-8.5.sh`
    - `include/upgrade_php.sh`
    - `versions.txt`
    - PHP 扩展安装及配置生成相关代码
    - PHP-FPM 和 systemd 相关配置模板

    允许使用 `ssh aliyun` 执行必要的只读检查,确定:

    - 当前 PHP 配置加载路径。
    - `php.ini` 及额外扫描目录。
    - PHP-FPM 全局与进程池配置。
    - OPcache 配置及实际生效值。
    - 动态扩展及其配置。
    - systemd 服务启动参数。
    - 自定义生产配置与仓库默认配置的差异。

    禁止在服务器执行写入、安装、更新、停止服务、重启或配置替换。

    不要读取或输出密码、密钥等敏感信息。只保存任务必要的脱敏证据。

    ### 四、实现范围

    审计后,优先实现最小可维护的 PHP 8.5 配置迁移能力。

    要求:

    1. 复用现有 PHP 8.5 构建逻辑,不复制一套新的构建实现。
    2. 保留首次安装的现有行为。
    3. 为未来同分支补丁升级提供配置迁移能力。
    4. 迁移范围覆盖 PHP 、OPcache 、PHP-FPM 全局配置和进程池配置。
    5. 保留现有 Socket 、用户权限、服务路径等部署必需参数。
    6. 处理重复参数、注释、配置段、加载顺序及覆盖关系。
    7. 对动态扩展进行兼容性检查,不能直接假设旧 `.so` 可复用。
    8. 在正式切换 PHP-FPM 之前完成配置生成与验证。
    9. 迁移失败时不得破坏原有配置,也不能报告成功。
    10. 不影响其他 PHP 分支。

    可以使用已发布的 PHP 8.5.11 作为本地测试目标,但不要将其直接认定为本次安全漏洞的最终修复版本。

    如果发现该功能需要复杂重构,应停止扩大实现范围,说明原因并提供最小可行方案。

    ### 五、验证要求

    使用本地临时目录和测试 fixture ,不连接生产服务器执行写入验证。

    至少覆盖:

    - PHP 配置参数正确迁移。
    - PHP-FPM 全局和进程池参数正确迁移。
    - 新版本默认参数不被旧默认值错误覆盖。
    - 未知或不兼容参数。
    - 重复与冲突参数。
    - 迁移遗漏检测。
    - 重复执行结果一致。
    - 失败时原始配置不受影响。
    - 首次安装行为不回归。

    如条件允许,使用目标 PHP 版本进行配置语法检查。

    ### 六、本轮明确禁止

    - 修改生产服务器。
    - 正式升级 PHP 。
    - 修改 `versions.txt` 中的 `php85_ver`。
    - 修改其他 PHP 分支的升级行为。
    - 开发复杂自动回滚系统。
    - 进行无关的架构重构或性能优化。
    - 执行 `git commit` 或 `git push`。

    ### 七、成本与执行原则

    坚持性价比优先。

    优先解决真实的生产配置迁移问题,不为追求完美架构增加不必要的实现和验证成本。

    复用现有能力,采用最小改动。出现失败先排查和恢复,不要盲目重试。

    完整日志保存本地 evidence ,终端只显示关键摘要、异常项和最终结果。

    ### 八、最终输出

    中文总结:

    1. 实际检查到的安装、升级和配置迁移现状。
    2. 当前生产配置与仓库默认配置的主要差异。
    3. 已修改的文件及修改原因。
    4. 已实现的配置迁移能力。
    5. 测试及验证结果。
    6. 尚未解决的风险和阻碍。
    7. PHP 官方正式发布修复版本后,还需要完成的工作。
    8. 唯一下一步。

    最后输出:

    `===== FINAL =====`

    包括 `RESULT`、`STAGE`、`MODIFIED_FILES`、`TEST_RESULT`、`PRODUCTION_MUTATION` 和 `NEXT_STEP`。

    本轮目标是完成可靠的 PHP 8.5 配置迁移基础,而不是立即交付未经完整验证的生产自动升级功能。
    rannnn
        50
    rannnn  
       1 day ago
    iorilu
        51
    iorilu  
       1 day ago
    @ucaime
    @icanfork

    了解了, 可以是一场 ai 攻防大战了, 明天看看有啥新闻

    双方都准备好 ai 大干一场了, 比速度啊
    houshengzi
        52
    houshengzi  
       1 day ago
    很好奇,那个全球著名的 1024 关站了没?
    tyzrj766
        53
    tyzrj766  
       1 day ago
    一堆博客、论坛,还有你们买小鸡的主机财务面板、控制面板,一大堆基于 PHP 开发的,不知道会爆多少出来,很多博客都多少年不更新了,小主机商很多躺平不管的。
    413420
        54
    413420  
       1 day ago
    这个相当于一颗互联网核弹
    lrxiao
        55
    lrxiao  
       1 day ago
    我滴乖 日本这么重视这个漏洞,12 小时前就是内阁 X 消息,高市早苗都发了行不
    andbars
        56
    andbars  
       1 day ago
    时间差不多咯 (逃
    jiames1969
        57
    jiames1969  
       1 day ago
    session.upload_progress.enabled = Off
    session.upload_progress.cleanup = On
    session.use_strict_mode = 1
    session.use_only_cookies = 1
    session.cookie_httponly = 1


    希望这个有用
    Felldeadbird
        58
    Felldeadbird  
       1 day ago
    我已经临时修改配置了。今晚真炸了,全球毁灭吧。
    rocmax
        59
    rocmax  
       1 day ago via Android
    @lrxiao 本来最近就已经是情報流出祭用户信息泄露此起彼伏,今晚可能还得加上一堆跟朝日啤酒一样的数据加密勒索。旧技术栈+派遣社员糊的屎山+日本人的反应速度今晚肯定是没戏的,不如直接写谢罪邮件吧。
    lrxiao
        62
    lrxiao  
       1 day ago
    我粗看了一下怎么感觉和我看到的两个 POC 写的都不是同一个 bug...
    bunny189
        63
    bunny189  
       1 day ago
    完蛋了啊,我司还是 thinkPHP3.2.3
    jetsung
        64
    jetsung  
       1 day ago
    8.5.12 已经发布了。php8.1 及之前的,自求多福吧。。。
    orion1
        65
    orion1  
       1 day ago
    php 官网都打不开了,这咋更新
    shuijingwanwqyy
        66
    shuijingwanwqyy  
       1 day ago
    @orion1 可以打开呀
    duanxianze
        68
    duanxianze  
       1 day ago
    这么严重啊 难顶哦 一大堆 php7 的项目咋办
    acisky
        69
    acisky  
       1 day ago
    还好慢慢抛弃 php 了
    tutugreen
        70
    tutugreen  
       1 day ago
    一大早就关机了
    haneki
        72
    haneki  
       1 day ago
    升级了,希望人没事。
    jedeft
        73
    jedeft  
       1 day ago
    头大,线上有一个用 codeigniter 3 的 老项目。
    Hellert
        74
    Hellert  
       1 day ago
    已升级。
    Ubuntu 已经提供了部分版本的补丁,正好在列,aliyun 刚刚也同步了:
    https://ubuntu.com/security/CVE-2026-109618
    rocmax
        75
    rocmax  
       1 day ago via Android
    bref 的 layer 更新挺快,有个 lambda 在用
    mht
        76
    mht  
       1 day ago
    php8.0 提供了安全修复补丁来着
    imyip
        77
    imyip  
       1 day ago via Android
    @loserc6 官方还是修了
    loserc6
        78
    loserc6  
    OP
       1 day ago
    还有项目在宝塔上 宝塔是不是下班了 说好的跟进修复呐
    V2Try
        79
    V2Try  
       1 day ago via iPhone
    这么可怕吗?我们好多台
    v1
        80
    v1  
       1 day ago
    事实上我的 vps 15 天前就被这个 0day 日过了,加进来一个挖矿木马,那时候甚至没公开
    ShangJixin
        81
    ShangJixin  
       1 day ago
    用 typecho 建博客的我已经麻了,再加上用阿里那个超售小鸡,想着直接顺便把万年 mysql5.7 换成 mariadb12 ,编译着编译着,机器还干死机了,现在仍旧在等编译,闹麻了
    starrycat
        82
    starrycat  
       1 day ago via Android
    谷歌云上的博客先关网络访问了,还不懂怎么回事,周末再看😂
    minguotan
        83
    minguotan  
       1 day ago
    先关掉 php 相关的博客了,后面升级之后再开放……
    shuijingwanwqyy
        84
    shuijingwanwqyy  
       1 day ago
    @ShangJixin 我是编译新版本的时候,告警了。CPU 占用超过 90% 。当时编译时,特意想到了资源占用的问题了。
    zyxcompany
        85
    zyxcompany  
       1 day ago
    @loserc6 同样在等,不知道官方在搞什么
    Timzzzzz
        86
    Timzzzzz  
       1 day ago
    PHP 是最好的语言
    zyxcompany
        87
    zyxcompany  
       1 day ago
    @loserc6 更新了....麻溜修复去
    loserc6
        88
    loserc6  
    OP
       1 day ago
    @zyxcompany #87 那个版本更新了?我没看到更新
    demoplayer88
        89
    demoplayer88  
       1 day ago
    7.2 版本有什么解决方案么
    loserc6
        90
    loserc6  
    OP
       1 day ago
    @loserc6 #88 看到了 docker 官方镜像更新了
    tank2806038
        91
    tank2806038  
       1 day ago
    @demoplayer88 没有 升级版本打补丁 8.2 以下不给补丁
    BaiLinfeng
        92
    BaiLinfeng  
       1 day ago
    @eoeapp 暂停很久了,还不上线,你也在使用吗
    nuk
        93
    nuk  
       1 day ago
    还好我们还在用 php5-_-
    ty5yidc
        94
    ty5yidc  
       1 day ago
    ## 一、安装 VS Code 插件

    打开 VS Code,点击左侧的**扩展**图标,或按 `Ctrl+Shift+X`(macOS 为 `Cmd+Shift+X`),在扩展商店搜索:

    **Claude Code Config Helper**

    找到发布者为 **liliangshan** 的扩展,点击**安装**。

    安装后,打开扩展入口,按引导配置本地 **Claude Code CLI**、模型服务和 API Key,再打开内置聊天。插件需要可用的 CLI 和模型服务,不是安装后就自带免费模型。

    **这个插件不只是聊天窗口:**它提供模型配置、内置浏览器工具和 CC 任务流,方便 AI 读取官方公告、整理处理方案,并在同一工作区逐步推进任务。

    项目地址: https://github.com/liliangshan/claude-code-config-helper

    ## 二、安装 SSH MCP,让 AI 能连接你的服务器

    在运行 VS Code 和 Claude CLI 的本地环境准备 **Node.js 20 或更高版本**,打开终端执行:

    ```bash
    npm install -g @liangshanli/mcp-server-ssh
    ```

    安装后可检查命令是否可用:

    ```bash
    mcp-server-ssh --version
    ```

    这个 MCP 支持 Windows、macOS、Linux,无需本地额外安装 PuTTY、WSL 或 SCP。它通过 SSH 连接远端服务器,提供命令执行和 SFTP 单文件上传、下载能力,命令结果包含输出、错误和退出状态。

    **MCP 装在本地,PHP 更新发生在远端服务器,两者不要混淆。**远端服务器需要开放可访问的 SSH 服务;文件传输还需要 SFTP 子系统。

    项目地址: https://github.com/liliangshan/mcp-server-ssh

    npm 地址: https://www.npmjs.com/package/@liangshanli/mcp-server-ssh

    ## 三、不想手写配置?把下面的提示词交给 AI

    先用 VS Code 打开准备使用的项目文件夹,再把下面这段发到插件的聊天窗口。替换其中的项目名称、服务器地址、SSH 账号和密码即可。

    这里使用 `npx` 启动 MCP,并采用密码认证。将配置中的提示文字替换为自己的连接信息,**不要把填写了真实密码的配置提交到代码仓库或用于公开分享。**

    ### 安装与配置提示词

    > 请帮我在本地安装并配置 SSH MCP,供当前工作区的 Claude Code 使用。
    >
    > 1. 先检查 Node.js 和 npm 是否可用,Node.js 需为 20 或更高版本。若不满足,说明原因并停止安装。
    > 2. 检查 `mcp-server-ssh` 是否已安装;未安装时执行 `npm install -g @liangshanli/mcp-server-ssh`。如已安装,先报告版本,不擅自升级。安装后用 `mcp-server-ssh --version` 验证。
    > 3. 在当前工作区根目录创建或更新 `.mcp.json`,配置内容见下方。如果文件已存在,先读取它,仅合并 `mcpServers.ssh-server`,保留其他 MCP 和配置;同名配置有冲突时先询问我,不要覆盖整个文件。
    > 4. 检查 `.gitignore`,按需加入根目录 `/.mcp.json`,保留已有内容。如果该文件已被 Git 跟踪,请提醒我,不要擅自修改 Git 索引。
    > 5. 检查 JSON 格式和占位符。尚未填写真实信息时不要尝试连接。不要读取、展示或上传私钥内容,也不要把私钥口令写进聊天。
    > 6. 完成后告诉我如何重新启动当前聊天的 Claude CLI 以加载配置,并按客户端提示批准工作区 MCP。此阶段只安装和配置本地工具,不执行任何远程命令。
    >
    > `.mcp.json` 使用以下结构:

    ```json
    {
    "mcpServers": {
    "ssh-server": {
    "type": "stdio",
    "command": "npx",
    "args": [
    "-y",
    "@liangshanli/mcp-server-ssh"
    ],
    "env": {
    "PROJECT_NAME": "填写项目名称或服务器标识",
    "SSH_HOST": "填写服务器 IP 或域名",
    "SSH_PORT": "22",
    "SSH_USERNAME": "填写 SSH 登录账号",
    "SSH_PASSWORD": "填写 SSH 登录密码",
    "SSH_SKIP_HOST_VERIFICATION": "true",
    "SSH_COMMAND_TIMEOUT_MS": "300000"
    }
    }
    }
    }
    ```

    配置说明:

    - `.mcp.json` 放在**工作区根目录**,不是 `.vscode/mcp.json`;两者格式和加载方式不同。
    - `PROJECT_NAME` 是用于区分服务器的标识;`SSH_HOST`、`SSH_USERNAME`、`SSH_PASSWORD` 分别填写服务器地址、登录账号和密码,建议使用最小权限账号。
    - `SSH_COMMAND_TIMEOUT_MS` 为 `300000`,表示命令超时上限为 5 分钟;超时断开不保证远程进程已停止,重试前需要检查实际状态。
    - 此示例按简便连接方式设置 `SSH_SKIP_HOST_VERIFICATION=true`,会跳过主机身份校验,存在中间人攻击风险。生产环境建议删除该项,改为设置从可信控制台或管理员处取得的 `SSH_HOST_FINGERPRINT`。
    - `npx -y` 会在需要时下载并启动该包,不依赖前面全局安装的命令;正式使用可固定已验证的包版本。
    - 如果重启 CLI 后找不到 `npx`,让 AI 检查 Node.js/npm 是否在 VS Code 的 PATH 中。Windows 客户端如无法直接启动 `npx`,可按 MCP README 使用 `cmd /c npx` 方式。
    - 如果当前启用了 `strictMcpConfig`,CLI 可能不读取项目 `.mcp.json`。让 AI 检查并说明原因,经你确认后再将同一服务配置合并到 `claudeCodeConfigHelper.chat.mcpServers`,不要静默修改权限或严格模式。

    配置保存后,点击扩展聊天界面右上角的**“重新启动”**按钮,重启 Claude CLI,让 MCP 配置生效。重启后,可以先让 AI 调用 `ssh_test_connection` 测试连接和认证;只有启用主机指纹校验时,该测试才会同时校验服务器身份。连接成功后,再进行服务器检查。

    ## 四、让 AI 检查 PHP 漏洞,并给出修复方案

    把下面这段发给 AI:

    > 请通过浏览器读取 PHP 官方安全公告: https://www.php.net/archive/2026.php#2026-10-21-5
    >
    > 仅通过 `ssh-server` MCP 检查我拥有并授权操作的这台服务器,判断是否需要针对 CVE-2026-109618、CVE-2026-109619 更新 PHP。
    >
    > 先做只读检查:识别操作系统、PHP 安装来源、完整包版本、网站实际使用的 PHP 服务、必要扩展,以及是否有多版本、Docker 或面板管理。不要只根据 `php -v` 判断,发行版回移补丁需要核对厂商公告。
    >
    > 根据实际环境给出修复方案,包含目标版本或补丁依据、兼容性检查、备份方式、维护窗口、服务重启和恢复方案。将检查结果与计划写入工作区的 `php-security-update-plan.md`。
    >
    > 检查完成后,同时在该文档中写明升级前需要提前备份的内容,包括相关 PHP 和 Web 服务配置、网站文件、业务数据库,以及适用的容器或服务器快照;根据实际环境列出备份范围、建议方式、保存位置、恢复验证方法和需人工完成的事项。此阶段只编写备份说明,不执行备份;提醒我完成并验证备份后,再进行升级。
    >
    > 本阶段不要安装更新、替换软件源、修改服务器配置或重启服务;方案完成后等我确认。不要运行攻击性 PoC,也不要输出凭据或敏感业务数据。

    这样,AI 拿到的不是一个模糊的“升级 PHP”任务,而是明确的公告、目标服务器和检查范围。

    ## 五、确认后执行,最后看真实结果

    审核计划、确认备份和维护窗口后,再告诉 AI:

    > 请按我确认的 `php-security-update-plan.md` 协助修复,只操作 `ssh-server` 对应服务器。
    >
    > 每次安装升级、修改配置、覆盖文件或重启服务前,先展示具体操作与影响,得到我明确确认后再执行,不擅自换源或跨 PHP 分支升级。
    >
    > 根据命令返回结果判断是否成功。遇到失败、超时或断线,先核查实际状态,不盲目重试;需要交互式 sudo 或人工输入密码时停止并说明。
    >
    > 完成后核对实际 Web PHP 服务是否运行修复构建、旧工作进程是否退出、扩展与日志是否正常,并协助检查我批准的网站页面。最后输出执行报告,列明已完成、失败、跳过和未验证的项目,不把临时缓解或仅页面正常写成漏洞已修复。

    步骤较多时,可以把计划文件加入聊天上下文,使用插件的 **CC 任务流**组织进度;任务流不代替变更审批和结果验收。

    **Claude Code Config Helper 让 AI 看懂问题、组织步骤,SSH MCP 让 AI 在授权范围内操作真实环境。你保留关键决定,AI 协助把事情做完。**

    PHP 安全更新只是一个例子。服务器环境检查、日志排查、部署验证,也可以用这套组合从“问 AI 怎么做”,走向“让 AI 协助执行并验证”。

    打开 VS Code 扩展商店,搜索 **Claude Code Config Helper**,再安装 **@liangshanli/mcp-server-ssh**,从自己测试服务器的一次只读检查开始。
    liulihaocai
        95
    liulihaocai  
       1 day ago via Android   ❤️ 1
    @hhacker 有没有一种可能,拿着 0day 的人不需要别人告诉就知道所有的网站都可以用这个漏洞?但是修复需要时间,提前发布新闻可以提醒重要网站临时关闭网站或者做排查避免被入侵
    pxw2002
        96
    pxw2002  
       1 day ago
    @zyxcompany #85 公众号刚刚发布更新了 7.4 等下也更新 说还在测试
    fang2hou
        97
    fang2hou  
       1 day ago
    之前吭哧吭哧把 10 年老代码迁移到最新的 php 看来还是有点好处的
    Maboroshii
        98
    Maboroshii  
       1 day ago via Android
    php 不是开源的吗?发布补丁还用逆向看漏洞?
    V2Try
        99
    V2Try  
       1 day ago via iPhone
    修复了,睡觉💤
    roren
        100
    roren  
       1 day ago via iPhone   ❤️ 2
    https://github.com/openai/php2shell-checker
    修复好的可以自检看看👀
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1237 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 163ms · UTC 20:15 · PVG 04:15 · LAX 13:15 · JFK 16:15
    ♥ Do have faith in what you're doing.