Apache Wicket drops CSP headers on pages behind nested delegates
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · None · None
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-693.
Summary
Apache Wicket 9.24.0 and 10.10.0 through 10.11.0 do not set Content-Security-Policy headers on pages whose render request handler is wrapped in more than one IRequestHandlerDelegate (CWE-693). The framework unwraps only one delegate level, so these pages are served without any CSP header and no error or warning is raised. This exposes them to content injection that the policy was meant to prevent, including the nonce-based protection for inline scripts and styles. Applications on stock Wicket that do not wrap request handlers themselves are not affected.
Written with Claude Haiku 5.5 from the sources below · 2026-11-02
Description from the CNA
Apache Wicket 10.10.0, 10.11.0 and 9.24.0 do not set the Content-Security-Policy headers on a page whose render request handler is wrapped in more than one IRequestHandlerDelegate. The framework unwraps only a single delegate level when deciding whether a request renders a page, so with a deeper chain, for example an application-provided delegating request mapper combined with CryptoMapper, the page is served without any CSP header even though CSP is enabled, and no error or warning is raised. The nonce-based protection Wicket applies to inline scripts and styles, together with any other CSP directives configured by the application, is thereby lost for those pages, exposing them to content injection the policy was meant to prevent. Applications on stock Wicket that do not wrap request handlers themselves are not affected. Versions before 10.10.0 and 9.24.0 handled nested delegates correctly. Users are recommended to upgrade to version 10.12.0 or 9.25.0, which fix the issue.
Why it matters now
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
Remediation
Upgrade Apache Wicket 9.x to 9.25.0 and Apache Wicket 10.x to 10.12.0, which fix the issue.
Written with Claude Haiku 5.5 from the sources below · 2026-11-02
Timeline
- 2026-11-01 Threatist record created from CVE-2026-87718
- 2026-11-02 Alias added: GHSA-58xq-c93x-4pwm
- 2026-11-06 CISA SSVC decision points changed
References
More Apache vulnerabilities
- 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
Sources
- CVE-2026-87718 · CVE Program
- CVE-2026-87718 · NVD
- FIRST EPSS
- GHSA-58xq-c93x-4pwm · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences