GHSA-fp43-vj7g-pg92High· 7.5▾ TwilightOmniFaces: Forged combined-resource IDs and related output/push boundaries
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 41.3 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
CombinedResourceInfo accepts a path-derived ID without an authenticity check,
inflates it without an output limit, converts it to attacker-selected resource
identifiers, and retains unique IDs in an unbounded static cache. In bounded
tests, 20,754 encoded bytes inflated to 16,000,000 characters (about 770:1;
about 49 MB observed heap delta), and 200 unique IDs added 200 permanent cache
entries. A legitimately shaped short ID remained about 1:1, while malformed
input was rejected; the missing distinction is between a server-issued ID and
an attacker-minted but structurally valid ID.
The minimal application also confirmed three sink tails from the same forged-ID root:
.xhtml resource bypassed the excluded-resource boundary and
returned its raw content.omnifaces.graphic inner resource plus a canary Host header caused
an outbound GET to that host. This result is blind and deployment-dependent;
I am not claiming arbitrary-scheme or arbitrary-destination SSRF.These behaviors reproduce after the fix for CVE-2026-41883 / GHSA-vp6r-9m58-5xv8. That advisory concerned EL evaluation order in the wildcard CDN path. This report has a different root: unsigned combined IDs and missing decode/cache bounds, with separately demonstrated residual sink behavior.
With the documented optional source-map handler above a synthetic resource handler, 40 unique missing combined-resource requests grew the process-wide source-map cache from 13 to 92 entries. It has no size or eviction bound. This has a separate cache, configuration prerequisite, and fix from family 1.
A URL-fragment value containing a single-quote JavaScript payload was stored by
o:hashParam and later written unescaped into the Ajax callback script. On the
follow-up Ajax render, real Chrome executed the canary
window.__omniXss=1337. This requires a page using o:hashParam and the
follow-up Ajax render.
A fresh WebSocket client with no HTTP cookie connected using a victim's session-scoped channel ID and received the victim's subsequent push. The code checks application-wide ID existence but does not bind the handshake to the current HTTP session, despite the documented current-session guarantee. The UUID remains an unguessable bearer-token prerequisite; this is replay after token exposure, not brute force.
Twelve independent clients joined one application-scoped channel and all 12 received the same push. Current code sets every accepted session's maximum idle timeout to zero, retains sessions in an unbounded per-channel queue, and walks the full queue on each push. I am reporting the demonstrated mechanism as a bounded design weakness: container connection limits remain an outer bound, and I am not claiming unbounded heap growth from the 12-client test.
Servlets.facesRedirect XML issue is fixed on the current branch.
I am not reporting it as a new current-upstream issue.Host header.HashParam values must be escaped for a JavaScript string inside an XML
CDATA callback.Host value.HashParam callback
values.Daniel Birtwhistle
org.omnifaces:omnifaces < 1.14.3org.omnifaces:omnifaces >= 2.0.0, < 2.7.33org.omnifaces:omnifaces >= 3.0.0, < 3.14.23org.omnifaces:omnifaces >= 4.0.0, < 4.7.12org.omnifaces:omnifaces >= 5.0.0, < 5.4.2Upgrade to a patched release:
org.omnifaces:omnifaces 1.14.3org.omnifaces:omnifaces 2.7.33org.omnifaces:omnifaces 3.14.23org.omnifaces:omnifaces 4.7.12org.omnifaces:omnifaces 5.4.2Connected by shared product, vendor, weakness, or advisory.
CVE-2026-54608High· 7.1MythicalDash is a Pterodactyl client area
CVE-2025-11362High· 7.5Versions of the package pdfmake from 0.3.0-beta.1 and before 0.3.0-beta.17 are vulnerable to Allocation of Resources Without Limits or Throttling via repeatedly redirect URL in file embedding
CVE-2023-5379High· 7.5A flaw was found in Undertow
CVE-2024-12254High· 7.5Starting in Python 3.12.0, the asyncio._SelectorSocketTransport.writelines() method would not "pause" writing and signal to the Protocol to drain the buffer to the wire once the write buffer reached the "high-water mark"
CVE-2026-53514High· 7.7Better Auth vulnerable to unauthorized invitation acceptance via unverified email match in organization plugin
CVE-2022-21952High· 7.5A Missing Authentication for Critical Function vulnerability in spacewalk-java of SUSE Manager Server 4.1, SUSE Manager Server 4.2 allows remote attackers to easily exhaust available disk resources leading to DoS