Apache OFBiz 在 11 月 4 日通过 oss-security 一次性公布了 46 个 CVE,全部在 24.09.08 中修复,影响所有 24.09.08 之前的版本。这不是一次常规的月度补丁,而更像一次系统性审计的集中落地——里面至少有四条路径能在完全没有账号的情况下拿到服务器代码执行权限或管理员会话。
OFBiz 是国内不少外贸、制造、跨境电商企业在用的开源 ERP/电商中台。它历史上被反复打过,2023 年的 51467、2024 年的 38856 都是未认证 RCE 且进了 KEV。这次的 46 个漏洞说明一件事:这套框架的授权模型至今仍在成片地漏。
事件概述
公告由 Jacopo Cappellato 代表 Apache OFBiz 项目发布,建议所有用户升级到 24.09.08。官方没有给出 CVSS 评分,只在 CVE 记录里用 critical / important 做定性分级。
46 个漏洞大致分四类:未认证代码执行与会话接管、授权缺失(含越权改价改单)、注入类(SQL 注入、XXE、SSRF、表达式注入)、以及信息泄露与 DoS。对一个承载订单、支付、库存、财务的系统来说,后两类同样致命——越权改退款金额这种事,业务损失比拿 shell 更直接。
技术细节
四条最需要优先处理的主链:
- CVE-2026-68524(未认证 RCE):攻击者利用临时文件处理机制拿到一个处于打开状态的文件描述符,再注入一个
file:URI,诱导 OFBiz 加载攻击者可控的 Screen 定义,从而执行任意代码。核心问题是屏幕定义可以从进程内的实时文件句柄加载。 - CVE-2026-83542(未认证 RCE):把构造好的 widget XML 通过 multipart 上传「暂存」,再用一个匿名 JSON 请求覆盖某个 manager 登录路由使用的
mainDecoratorLocation,让 OFBiz 通过实时屏幕描述符机制加载这份 XML,在渲染认证失败页面时求值一段未沙箱化的 Groovy 表达式。CVE 记录里专门澄清了一点:不需要畸形或不完整的 multipart 请求体,一个格式完全正常、保持在传输中然后正常结束的上传就足够——屏幕加载器在文件流式上传过程中直接读的是实时文件描述符,而不是落盘后的文件。 - CVE-2026-82907(预认证会话重放):
ExternalLoginKeysManager里的 externalLoginKey 被当成 bearer 凭证接受。checkExternalLoginKey作为全局前置处理器,跑在 CSRF 检查与认证检查之前,而这个 key 不绑定客户端、不过期、用过也不失效。攻击者只要抓到一个有效的 key,就能以签发者的身份、免 Cookie 地在所有该用户可达的 webapp 里获得完整会话。更糟的是框架本身会把这个 key 拼进它渲染的每一个跨 webapp 链接,而WidgetWorker对应用间跳转目标的校验缺失,使得已登录用户的 key 可以被挂到攻击者指定的绝对 URL 上,直接送到攻击者服务器。 - CVE-2026-109928(管理员接管):密码重置与登录的 JWT 校验实现错误。拿到用户的重置 token(邮件拦截、日志暴露、邮件传输中间人)后,不走去重置流程,而是把 token 直接提交给登录端点,即可获得该用户完全不受限的会话;如果目标是管理员,就是管理员权限。
另外几条也值得记:CVE-2026-105330 是 JWT 认证里用了硬编码密钥,未认证即可获得管理访问;CVE-2026-73578 是未认证的 saved-view 授权绕过且带 RCE 影响;CVE-2026-92887 是 .rest.xml 操作里省略 auth 属性时 REST API 默认不做认证;CVE-2026-81815 是 performFind 的忽略大小写取值导致 MySQL/MariaDB 上的 SQL 注入。
影响评估
这批准入的门槛极低。68524 与 83542 都是零凭证、纯网络可达;82907 只需要一个被泄露的链接;109928 需要先拿到重置 token,但如果系统同时存在日志泄露或邮件配置问题,这一步并不难。对一个面向公网提供 B2B 下单入口的 OFBiz 站点,这意味着攻击面是「任何能访问 8443 的人」。
授权类漏洞的业务危害往往被低估。CVE-2026-105461(仅查看权限的用户可改订单价格与数量)、CVE-2026-100228(订单退货可篡改退款价格)、CVE-2026-105325(仅查看权限可改支付分配)这类问题,一旦被内部人或被盗的低权限账号利用,账面上看不出入侵痕迹,只有对不上的钱。做电商的应该把这几条单独拎出来对一遍业务日志。
修复建议
- 升级到 Apache OFBiz 24.09.08。官方没有提供逐条补丁,也不建议自行 backport
- 升级后轮换所有可能暴露的密钥与凭证:JWT 签名密钥、数据库账号、支付网关密钥、SMTP 凭证、以及所有
externalLoginKey相关会话 - 把
.rest.xml里所有省略auth属性的操作补上显式声明,不要依赖默认行为 - 收窄暴露面:OFBiz 的管理端(webtools)不应从公网可达;只暴露必要的下单与查询端点,前面挂 WAF 做路径与参数规则
- 排查入侵痕迹:Screen/widget 定义被改动、
runtime/与hot-deploy/下的异常文件、异常管理员账号、密码重置记录、异常 JWT 签发