---
id: "CVE-2026-87718"
kind: "vulnerability"
aliases: ["CVE-2026-87718"]
title: "Apache Wicket: nested request handlers drop Content-Security-Policy headers on pages"
severity: "low"
cvss: 2.3
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["apache-wicket", "java", "package", "web-apps"]
not_affected_if: ["older-versions", "stock-request-mapping"]
published_at: "2026-11-01T23:17:30+00:00"
first_seen_at: "2026-11-01T23:22:40+00:00"
updated_at: "2026-11-01T23:23:33+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-87718", "first_seen_at": "2026-11-01T23:22:40+00:00"}]
---

# Apache Wicket: nested request handlers drop Content-Security-Policy headers on pages

Apache Wicket 10.10.0, 10.11.0 and 9.24.0 skip the Content-Security-Policy header on pages whose request handler is wrapped in more than one delegate. An attacker gets content injection on those pages that the configured CSP was meant to block.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the Wicket version in the build file (for example `pom.xml` or `build.gradle`) for `10.10.0`, `10.11.0` or `9.24.0`
- Look for application-provided request mappers or delegates wrapped around `CryptoMapper`
- Inspect response headers on a rendered page for a `Content-Security-Policy` header

## Fix

- Apache Wicket 10.10.0 and 10.11.0: upgrade to `10.12.0`
- Apache Wicket 9.24.0: upgrade to `9.25.0`

## Timeline

- 2026-11-01T23:22:40+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-87718

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
