内容提要
Heroku 发布安全更新,修复 PHP 两个远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619)及 eMudhra 私钥泄露引发的根证书问题。PHP 运行时已更新至 8.2.35、8.3.36、8.4.27、8.5.12,用户重新构建应用即可生效;基础镜像证书补丁无需操作。Heroku CLI 需升级至 v11.12.1。若项目自带根证书,应检查并更新相关依赖。
延伸解读
托管平台如何简化双重安全更新
文章同时涉及PHP运行时漏洞和根证书泄露两类问题。在自管理基础设施上,团队需分别审计服务器、更新基础镜像并验证信任存储。Heroku作为托管平台,将运行时镜像和基础栈的维护收归自身:PHP更新通过重新构建应用即可生效,基础镜像的证书补丁则无需用户操作。这体现了PaaS在安全补丁流程上的分工优势,但用户仍需关注自身代码和依赖。
PHP用户需主动重建应用
尽管Heroku管理运行时镜像,但已部署的PHP应用不会自动获得新版本。文章建议通过空提交触发重建,或向GitHub推送新提交来启动构建。对于仍运行已终止支持的PHP 8.1的用户,Heroku-22提供了8.1.34的向后移植缓解版本,但文章明确建议规划升级到受支持的PHP版本。这意味着用户需将重建纳入日常运维,而非依赖平台自动推送。
自带根证书的项目需额外检查
Heroku已修补基础镜像中的ca-certificates包,但部分应用会在语言运行时或第三方库中捆绑自己的根证书存储。文章点名Go包、Node.js库以及Ruby的Excon等可能管理内部证书存储的依赖。如果项目属于这种情况,用户需要直接检查这些依赖,确保更新到移除了受损中间证书的版本,并在必要时重新构建和部署。这提醒开发者:平台层补丁不能覆盖应用层自带的信任配置。
本地CLI与外围防护同样不可忽视
Heroku CLI运行在开发者本地并捆绑Node运行时,文章要求将CLI升级至v11.12.1以获取修补后的Node版本。此外,文章提到在应用前部署防火墙可增加对远程漏洞利用的防御层,多家安全厂商已快速部署WAF规则来拦截针对这些PHP漏洞的流量。这些措施虽非强制,但构成了平台补丁之外的有益补充,尤其适合对安全要求较高的团队参考。
Q&A
Heroku 最近修复了哪些 PHP 安全漏洞?
Heroku 修复了两个 PHP 远程代码执行漏洞:CVE-2026-109618 和 CVE-2026-109619。
如何让我的 PHP 应用在 Heroku 上应用最新的安全更新?
对于直接部署到 Heroku 的应用,使用空提交触发重建:git commit --allow-empty -m "rebuild app" 然后 git push heroku main。如果通过 GitHub 部署,推送一个新提交即可触发构建。
eMudhra 私钥泄露事件对 Heroku 用户有什么影响?
Heroku 已在基础镜像中修补了 ca-certificates 系统包,用户无需采取任何操作。但如果应用自带根证书(如 Go 包、Node.js 库或 Ruby gems 中的证书存储),则需要检查并更新这些依赖,移除受影响的中间证书颁发机构。
Heroku CLI 需要升级到哪个版本?如何升级?
需要升级到 v11.12.1 版本,以获取修补后的 Node 运行时。在终端运行:heroku update stable。
如果我的应用还在使用 PHP 8.1,Heroku 提供了什么解决方案?
对于在 Heroku-22 上运行已终止支持的 PHP 8.1 的应用,Heroku 在 8.1.34 版本中提供了向后移植的缓解措施。建议计划升级到完全支持的 PHP 版本。
除了更新运行时,还有什么额外措施可以防御这些 PHP 漏洞?
在应用前端运行防火墙可以增加一层针对远程漏洞的防御。多家安全提供商已快速部署 WAF 保护,以阻止针对这些 PHP 漏洞的攻击流量。