Read the docs
TI-2026-83643 Aliases CVE-2026-82115GHSA-fcp8-rfgx-8mhm

Missing authorization in Apache Wicket WebSocket resources

Priority LOW 28CWE-862Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
Security bypass
Confidentiality · integrity · availability
Low · Low · None
Fix status
No fix listed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-862.

Summary

Apache Wicket from 8.0.0 through 8.19.0, from 9.0.0 through 9.24.0, and from 10.0.0 through 10.11.0 is affected, along with older releases from 7.0.0 onwards. The WebSocket handler calls a shared WebSocketResource without consulting the configured authorization strategy (CWE-862). An attacker with a bound Wicket session and the resource name can send messages that reach the resource's callbacks.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

Description from the CNA

Missing authorization in Apache Wicket. org.apache.wicket.protocol.ws.api.WebSocketMessageBroadcastHandler, the request handler Wicket's native WebSocket support uses to deliver an incoming frame, resolves the shared resource named by the client's handshake parameter and calls WebSocketResource#onPayload() on it directly, without consulting IAuthorizationStrategy#isResourceAuthorized(). That method has a single enforcement point in the framework, org.apache.wicket.request.handler.resource.ResourceRequestHandler, which the WebSocket transport does not pass through, and WebSocketResource#respond() is final and empty. No route to a WebSocketResource therefore asks the configured authorization strategy whether the caller may use it, and an @AuthorizeResource annotation on such a class has no effect. A caller needs a bound Wicket session and the name of the resource. The name is not a secret: Wicket writes it into the page that opens the connection. No page of the application is otherwise involved, because a request naming a resource is served with a throwaway page. All of the resource's callbacks are reached this way, including onConnect() and both onMessage() overloads, and what a callback pushes back through WebSocketRequestHandler goes to the caller's own connection. An application is affected where it registers a WebSocketResource as a shared resource and relies on the authorization strategy to restrict it. What the caller gains is whatever that resource's callbacks do with a text or binary message of the caller's choosing. The connection is registered under the caller's own session, so it gives no access to another user's connection. As a workaround, reject unauthorized connections with an IWebSocketConnectionFilter registered through WebSocketSettings#setConnectionFilter(), or repeat the authorization check at the start of each callback. This issue affects Apache Wicket: from 8.0.0 through 8.19.0, from 9.0.0 through 9.24.0, from 10.0.0 through 10.11.0. Older, unsupported releases from 7.0.0 onwards are also affected. Users are recommended to upgrade to version 8.20.0, 9.25.0 or 10.12.0, which fix the issue.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00339 27th percentileScored 2026-11-07
Fix No fix listed No fixed version in the sources yet

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ApacheApache Wicket8.0.0 – 8.19.0; 9.0.0 – 9.24.0; 10.0.0 – 10.11.0—No fix listedCNA
  • Apache Wicket VendorApache Affected 8.0.0 – 8.19.0; 9.0.0 – 9.24.0; 10.0.0 – 10.11.0 Fixed in — No fix listed CNA

CPE names Threatist (inferred) · 1

Inferred from how NVD named this product before; not given by a source.

CPEVersionsRoleVendor
cpe:2.3:a:apache:wicket:*:*:*:*:*:*:*:*——Apache
  • cpe:2.3:a:apache:wicket:*:*:*:*:*:*:*:* Versions — — ·Apache

Remediation

Upgrade Apache Wicket 8.x to 8.20.0, 9.x to 9.25.0 and 10.x to 10.12.0, which fix the issue. The sources list no fixed version for Apache Wicket 7.0.0 and later. As a workaround, reject unauthorized connections with an IWebSocketConnectionFilter registered through WebSocketSettings#setConnectionFilter(), or repeat the authorization check at the start of each callback.

Written with Claude Haiku 5.5 from the sources below · 2026-11-02

Timeline

  1. 2026-11-01 Threatist record created from CVE-2026-82115
  2. 2026-11-02 Alias added: GHSA-fcp8-rfgx-8mhm
  3. 2026-11-04 Priority changed: MEDIUM → LOW
  4. 2026-11-06 CISA SSVC decision points changed

References

  • TI-2025-18529 Apache Tomcat: Potential RCE and/or information disclosure and/or information corruption with partial PUT KEVCVSS 3.1CRITICAL 10.0
  • TI-2024-30292 Apache OFBiz: Confused controller-view authorization logic (forced browsing) KEVCVSS 3.1CRITICAL 9.8
  • TI-2024-26062 Apache OFBiz: Unauthenticated endpoint could allow execution of screen rendering code KEVCVSS 3.1CRITICAL 9.8
  • TI-2024-21190 Apache OFBiz: Path traversal leading to RCE KEVCVSS 3.1CRITICAL 9.8
  • TI-2024-18186 Apache HugeGraph-Server: Command execution in gremlin KEVCVSS 3.1CRITICAL 9.8
  • TI-2023-25106 Deserialization of untrusted data in Apache ActiveMQ KEVCVSS 3.1CRITICAL 10.0
See all 4053 →

Sources