Apache Wicket: Path traversal in resource style/variation/locale
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-22 and the CVSS impact.
Summary
Improper validation of resource URL attributes in Apache Wicket allows an unauthenticated remote attacker to read files from the web application, including files under WEB-INF that the servlet container would not otherwise serve. The locale, style and variation attributes decoded from a package resource URL are spliced into the resource lookup path without being checked for path separators. The IPackageResourceGuard — whose rejection of .. is one of the two intended controls — is applied to the resource name before those attributes are appended, and WebApplicationPath rejects only paths literally beginning with WEB-INF/. Neither control ever inspects the attacker-controlled portion of the path. On servlet containers that normalize .. in ServletContext.getResource(), a crafted request therefore escapes the intended package directory. The set of readable files is limited to the file extensions permitted by the configured IPackageResourceGuard. The default SecurePackageResourceGuard permits only js, css, png, jpg, jpeg, gif, ico, cur, map, html, txt, swf, bmp, svg, avif, eot, ttf, woff and woff2, which excludes configuration formats. Applications that have added patterns to the guard, or replaced it with the blocklist-based PackageResourceGuard, can additionally disclose configuration files such as web.xml. Independently of the extension, the lookup performed before the guard runs acts as an existence oracle for arbitrary paths. This issue affects Apache Wicket 8.18.0 and before, 9.23.0 and before and 10.10.0 and before. Users are recommended to upgrade to version 8.19.0, 9.24.0 or 10.11.0, which fix the issue. Users of Apache Wicket 7.x or older, which are no longer supported, should upgrade to a supported version.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Apache | Apache Wicket | 8.0.0 – 8.18.0; 9.0.0 – 9.23.0; 10.0.0 – 10.10.0 | — | No fix listed | CNA |
- Apache Wicket VendorApache Affected 8.0.0 – 8.18.0; 9.0.0 – 9.23.0; 10.0.0 – 10.10.0 Fixed in — No fix listed CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:apache:wicket:*:*:*:*:*:*:*:* | 8.0.0 to before 8.19.0; 9.0.0 to before 9.24.0; 10.0.0 to before 10.11.0 | Vulnerable | Apache |
- cpe:2.3:a:apache:wicket:*:*:*:*:*:*:*:* Versions 8.0.0 to before 8.19.0; 9.0.0 to before 9.24.0; 10.0.0 to before 10.11.0 Vulnerable ·Apache
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-70449
- 2026-10-03 Alias added: GHSA-gfx8-6vm5-ghqh
References
More Apache Wicket vulnerabilities
- TI-2016-05834 The DiskFileItem class in Apache Wicket 6.x before 6.25.0 and 1.5.x before 1.5.17 allows… CVSS 3.0CRITICAL 9.1
- TI-2026-28853 Apache Wicket: possible session fixation using AuthenticatedWebSession CVSS 3.1CRITICAL 9.1
- TI-2024-24295 Apache Wicket: Remote code execution via XSLT injection CVSS 3.1CRITICAL 9.8
- TI-2026-49926 Apache Wicket: Configured file upload limits are not enforced when the multipart request has already been parsed CVSS 3.1HIGH 7.5
- TI-2021-06275 DNS proxy and possible amplification attack CVSS 3.1HIGH 7.5
- TI-2016-05847 Cross-site request forgery in Apache Wicket CVSS 3.0HIGH 8.8
Sources
- CVE-2026-70449 · CVE Program
- CVE-2026-70449 · NVD
- FIRST EPSS
- GHSA-gfx8-6vm5-ghqh · 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