MetInfo升级公告(修复PHP漏洞(PHP2SHELL)问题)

简介: PHP 层面的升级属于环境操作,用包管理器、面板或容器换一个版本即可,不展开。真正容易出问题的是应用层:运行环境换了,CMS 系统不跟上,站点就跑不起来。 这次 MetInfo 的统一做法是环境与系统同步升级,系统侧升至 V8.1,该版本经测试兼容上述四个 PHP 修复版本,收费模板与插件也已同步完成适配。

一、为什么要升级系统版本

2026 年 10 月 21 日,CNVD 收录两个 PHP 远程代码执行漏洞(CNVD-2026-41674 / CNVD-2026-41675,对应 CVE-2026-109618 / CVE-2026-109619,业界合称 PHP2SHELL),评级“高危”,技术细节与 PoC 已广泛传播。修复版本为 PHP 8.2.35、8.3.36、8.4.27、8.5.12。

PHP 层面的升级属于环境操作,用包管理器、面板或容器换一个版本即可,不展开。真正容易出问题的是应用层:运行环境换了,CMS 系统不跟上,站点就跑不起来。 这次 MetInfo 的统一做法是环境与系统同步升级,系统侧升至 V8.1——该版本经测试兼容上述四个 PHP 修复版本,收费模板与插件也已同步完成适配。

下面记录的就是这个过程。


二、升级前:先确认备份范围

帮助文档里有一句容易被跳过的话:升级前建议先备份数据库。 这句话经常被当成免责声明划过去,实际上它是操作前提。

从失败恢复路径反推,需要备份的东西共有三样:

对象

内容

为什么必须备

数据库

全部数据表

升级涉及表结构变更,失败后无法回滚

upload 目录

用户上传的图片、附件

升级过程不触碰,但恢复老版本时要配套使用

templates 目录

站点当前使用的模板文件

模板是升级后白屏的主要出事点

后台提供图形化备份入口,升级弹窗里点“备份”即跳转到“备份与恢复”页面。习惯走命令行的,用下面这套更可控:

# 数据库(把 db_name / db_user 换成实际值)
mysqldump -u db_user -p --single-transaction --routines \
  --default-character-set=utf8mb4 db_name > /backup/db_$(date +%F).sql

# 站点目录与模板
tar -czf /backup/site_$(date +%F).tar.gz \
  -C /var/www/metinfo upload templates config

# 记录当前版本号,升级出问题时便于对照
mysql -u db_user -p -e "select * from met_config where name like '%version%'" db_name

最后一条顺手把升级前的版本号存下来。真出问题时,“原来是什么版本、要回退到哪”这件事,事后很难凭记忆确认。

备份文件不要放在站点目录内。放在 web 根目录下的备份,等于把一个可下载的数据库快照公开在互联网上。


三、升级系统至 V8.1

3.1 触发升级

两个入口,任选其一:

  • 可视化后台 → 更多 → 检测更新
  • 传统后台 → 页面头部右上角 → 检测更新

存在新版本升级包时,页面上会出现“在线下载”按钮。点击后弹窗展示更新日志,阅读完点“确定”,开始在线下载升级文件。

3.2 安装

下载完成后按钮变为“安装”。点击进入在线升级安装提示界面,此时会再次提示备份——如果前面已经备份过,直接进入下一步。

点“安装”后系统开始执行升级,期间不要刷新页面、不要关闭浏览器。

3.3 四个已知的失败点

这几条是实际操作中最常遇到的,写在文档正文里但很少被读到:

下载长时间没有反应。 刷新浏览器,重新点击下载升级文件即可,不会产生脏数据。

服务器无法在线下载升级包。 部分服务器因 PHP 配置或网络出口限制拉不到升级文件,此时需要改用手动升级包,按包内附的操作说明逐步执行。判断方法:点“在线下载”后长时间空白且浏览器网络面板无请求发出,基本就是这个原因。

升级失败或升级后异常。 按顺序排查三件事:模板是否可以升级(见下一节,这是最高频原因)、用系统自带的“系统诊所”插件在线诊断修复、最后才考虑回退。

升级失败且不知道原因。 退路是用备份的数据库、upload 文件夹、templates 文件夹,在本地电脑恢复出老版本站点,在本地把升级流程跑通、确认无误后,再整体搬到服务器。这条路比在生产环境反复试要稳妥得多。若服务器本身提供了自动备份快照,也可以直接联系服务器提供商恢复到升级前的状态。


四、升级收费模板

这一步是升级后“后台能进、前台打不开”的直接解药,也是最多人卡住的地方。

4.1 为什么必须单独升级模板

模板和系统是两个独立发布的单元。系统升级带来新功能和新接口,旧模板可能仍在调用已被移除的方法,结果就是后台走系统自带模板、显示正常,前台走站点自选模板、直接报错。

规则是:升级 MetInfo 版本时,一般都需要升级模板以适配新系统版本。

4.2 操作路径

  • 可视化后台 → 风格 → 网站模板 → 商业模板(后台菜单即此名称)
  • 传统后台 → 网站模板 → 商业模板

4.3 最容易漏的一步

进到页面后,必须在右上角登录模板的授权账号,否则不会提示升级。

这是“我按教程进了模板页面,但没有升级按钮”的唯一原因。系统不知道这个模板归谁所有,自然不会推送对应的升级包。升级按钮只有在登录后、且存在更新版本时才会出现。

4.4 自定义修改会不会被覆盖

会,但可以避免。

如果修改过模板的源代码,并且按模板的修改规则给修改过的 UI 区块设置了版本号,在线升级就不会覆盖这些自行修改的文件,可以放心点升级。

反之,如果改过代码但没有设置版本号,升级会认为这些文件是旧版本,直接覆盖。改过模板代码的站点,升级前先确认这一步有没有做。

4.5 升级后

模板升级不影响网站内容,这一点可以放心。但如果新版本模板增加了功能项,可能需要在可视化编辑里补充设置参数,否则新功能会以默认值呈现或显示为空。

升级过程中进度条长时间无响应,刷新页面重新升级即可。


五、升级应用插件

5.1 关键风险

升级插件一般不会影响已配置的数据,但会覆盖插件的源文件。

这条需要特别注意的对象是做过插件二次开发的站点。如果直接修改过插件目录下的文件,在线升级会全部覆盖,改动丢失且不可恢复。这类站点应当先在本地合并改动,或暂缓该插件的升级。

5.2 操作路径

后台 → 我的插件 管理页面 → 登录插件授权账号 → 插件存在更新版本时,点击“升级”按钮在线升级。

与模板同理,未登录账号时不会显示可升级状态。


六、三步的先后顺序

系统、模板、插件必须按这个顺序,不能并行:

  系统升级至 V8.1  →  模板升级  →  插件升级

原因在于依赖方向。模板的新版本是针对新系统接口编写的,系统还没升级就升模板,模板会调用不存在的接口;插件同理,它依赖系统与模板提供的挂载点。顺序颠倒不会立刻报错,但会在某个页面某个功能上零星出错,排查成本很高。

三步全部完成后,清一次系统缓存,再检查前台。


七、升级后的验证

三项全部通过才算完成。

检查项

方法

通过标准

版本一致性

后台“检查更新”页

系统显示 V8.1,PHP 版本为 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 之一或更高

前台可用性

访问首页与内页,逐个抽查栏目

正常渲染,无空白、无报错

入侵迹象

检查异常进程与可疑执行记录

无异常条目


第三项不能省略。PHP 补丁只阻断新的利用路径,不会清除已经写入的后门。 只升级不排查,等于做了一半。

以漏洞披露日 2026-10-21 为基准,筛出之后被修改的文件:

  find /var/www -type f -name '*.php' -newermt '2026-10-21' -ls

正常业务更新也会命中,重点看两类:web 根目录下不认识的单文件,以及上传目录、缓存目录这类本该只读的目录里出现的 PHP 文件。发现异常先隔离再取证,不要直接删除——删了就没有追溯线索了。


八、几个高频问题

Q:后台能进,前台打不开,是什么原因?

绝大多数是模板没升级。先确认模板页面右上角是否已登录授权账号、升级按钮是否出现。若模板已是最新版仍然报错,再查 PHP 扩展是否缺失(升级环境时容易漏装 fileinfo、intl、redis)。

Q:模板页面没有升级按钮。

两个原因:未登录模板授权账号;或者当前模板本身就是最新版。先登录再刷新。

Q:系统升级失败,站点打不开了,怎么办?

不要在出问题的环境上继续试。用升级前的备份(数据库 + upload + templates)在本地恢复老版本,本地跑通升级流程,确认无误后再整体搬回服务器。这条路径比重试快得多。

Q:只升级系统,不升级模板和插件,行不行?

系统能跑,但前台很可能报错。模板和插件调用的是系统接口,接口变更后旧版本不保证兼容。若确实暂时不能升级,至少先在测试环境验证一遍前台各页面。

Q:升级会不会影响网站内容?

模板升级不影响内容。系统升级涉及数据结构变更,因此必须提前备份数据库。插件升级不影响配置数据,但会覆盖插件源文件。

Q:旧版本 PHP(如 7.4)的站点怎么办?

先升级 PHP。MetInfo V8.1 声明兼容 PHP 5.6 ~ 8.5.12,这里的“兼容”指程序可以运行在该区间,不等于区间内每个版本都安全。7.4 已无安全补丁,该升级仍然要升级。


九、小结

  1. 备份是前提不是免责。 数据库、upload、templates 三样缺一不可。
  2. 顺序不能乱。 系统 → 模板 → 插件,依赖方向决定了这个次序。
  3. 模板升级要登录授权账号。 没有升级按钮,十有八九是这一步漏了。
  4. 改过代码的模板和插件要单独评估。 设置了 UI 区块版本号的模板不会被覆盖,改过源文件的插件一定会。
  5. 升级之后必须排查后门。 补丁不清除已存在的 webshell。
目录
相关文章
|
云安全 安全 网络安全
|
15天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
3650 0
|
8天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2046 2
|
14天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
2459 46
|
11天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1472 3
|
9天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1957 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
7天前
|
人工智能 Linux API
Magpie, 轻量本地AI网关!免费Token用不完!
Magpie 是开源AI编程模型调度网关,上线一月获1.8万Star。它通过本地高性能网关统一托管多平台API密钥、账号与免费额度,实现跨Agent的模型秒级切换、静默额度轮换与资源复用,显著降低碎片化管理成本。(239字)
Magpie, 轻量本地AI网关!免费Token用不完!
|
8天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
4天前
|
人工智能 安全 API
2026 年阿里云双 11|百炼大模型 API 指南:免费 Token 领取、API Key 生成、代码调用实战教程
对于零基础的AI开发者、技术爱好者和小型开发团队来说,低成本、低门槛调用主流大模型接口,是开启AI项目原型开发的必经之路。百炼大模型服务平台汇集了百余款主流大模型,面向新用户提供大规模免费推理额度,不需要预先充值,即可完成文本生成、逻辑推理、代码编写、多模态解析等各类开发验证工作。很多新手在初次接触平台时,常常遇到不清楚免费额度规则、不知道如何生成API‑Key、环境配置错误、调用接口持续报错等一系列问题。
604 1

热门文章

最新文章