Bonita BPM / Apache OFBiz 预认证 RCE:中间件信任边界的三重失守
Bonita BPM / Apache OFBiz 预认证 RCE:中间件信任边界的三重失守
一句话:Novee Security 在 Black Hat USA 2026 公开的 12 个企业级 Java 平台漏洞中,
给出了 Bonita BPM 和 Apache OFBiz 各一条完整的零凭证 RCE 链——核心思路不是找新 sink,
而是把"认证/CSRF 过滤层"的三个独立实现差异(parser differential、正则误用、dispatcher 配置缺失)
串成一条绕过路径,直达早已存在的反序列化/表达式注入 sink。
要点:
- Bonita("BadBonita"链,10.4.3):
URI.normalize()与 TomcatstripPathParams()对..;
的解析差异 + 过滤器用Matcher.find()而非matches()+<dispatcher>元素缺失导致
FORWARD 分发不受保护,三重绕过后打到 /serverAPI/ 上的未认证 XStream 反序列化
(AnyTypePermission),gadget 链绕过 Commons Collections 4.5.0 的防护经 Unsafe 执行 - OFBiz("SSOnOf(a)biz"链,24.09.05,CVE-2026-31986):
security.properties中硬编码
JWT 签名密钥可伪造 admin SSO token → JWTareaTargetclaim 未校验流入
FlexibleStringExpander → Groovyeval();大小写敏感 denylist 漏掉ProcessBuilder - 整条 OFBiz 攻击只需两个 GET 请求,前提仅是目标开启 SSO;sink 本身多为已知模式,
新意在"中间件/容器与框架各层对同一请求的语义不一致"被系统性武器化 - 协调披露,无公开 PoC 仓库,但原文内含可用请求 URL 和伪造 JWT 结构
原语抽象:同一请求经过多层组件(URI 规范化、过滤器正则、dispatcher 配置、
JWT 中间件)时的语义不一致被系统性武器化——认证是各层对"同一语义"的假设
之差,不是被攻破的一堵墙。
亲戚手法:解析差异家族的中间件侧集大成(与 litellm-starlette-badhost-unauth-rce
Starlette BadHost 同族);差异:12 漏洞 × 4 平台的工程化方法论输出,且目标是
存量 sink(XStream/Groovy),证明"绕过认证 + 老洞"仍是主流变现路径。
防御启示:边界防护必须"分发方式无关"(REQUEST/FORWARD/ERROR 全覆盖)、
路由保护 denied-by-default;签名密钥绝不能随发行物分发。
原文: https://novee.security/blog/pre-auth-rce-in-enterprise-java/
来源发布时间: 2026-08-05