Skip to main content

Apache Wicket EUVDEUVD-2026-114891

| CVE-2026-82705 MEDIUM
Missing Authorization (CWE-862)
2026-11-01 apache GHSA-c8q4-2mh6-cqxp
6.3
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Wicket app serving restricted resource via IResource component
  2. Delivery
    Request the component-listener URL rendered in the page
  3. Exploit
    IResource#respond() invoked without authorization handler
  4. Execution
    isResourceAuthorized/@AuthorizeResource check bypassed
  5. Impact
    Retrieve protected resource contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the application (a) restricts a resource via IAuthorizationStrategy#isResourceAuthorized() or a wicket-auth-roles @AuthorizeResource annotation, AND (b) hands that same restricted resource to a component as an IResource instance rather than as a ResourceReference - specifically ResourceLink(String, IResource), Image, ImageButton, or wicket-extensions AjaxDownloadBehavior, or any use of ExportToolbar (which internally builds export links from IResource). The decisive factor is which constructor the application used, which is invisible in the rendered page. For Image and ImageButton the listener URL is written into the tag's src attribute, so no user interaction is needed - the browser fetches it automatically. Explicit limiting factors stated in the advisory: applications that do not restrict resources at all are not affected, and resources that are only mounted or registered as shared resources (served through ResourceRequestHandler) are not affected because that handler does consult the authorization strategy.

Impact

The vendor-supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N, base 6.3, medium) is the only quantitative signal in the input: EPSS is not provided and the issue is not listed in CISA KEV, so there is no public-exploitation telemetry to weigh. AV:N/PR:N/UI:N means a remote, unauthenticated request can reach the flaw, and AC:L means the attacker side is simple; the moderating factor is AT:P (an attack requirement), which here corresponds to the fact that the target application must have been written using the vulnerable IResource-constructor pattern against an authorization-restricted resource - the condition is a property of the deployed application, not something the attacker controls or something visible in the rendered page. Impact is deliberately scored low (VC:L/VI:L, VA:N): the flaw exposes or serves a resource that should have been authorization-checked (e.g. data-table exports, model-backed images), not full system compromise. The vuln.today decision label is 'this_month' rather than 'act_now' or 'emergency', and there is no public exploit reference, so this is a genuine but conditional authorization-enforcement gap of moderate priority - not a drop-everything issue, but one that matters specifically for Wicket applications that rely on isResourceAuthorized()/@AuthorizeResource. Missing signals to note: no EPSS score and no KEV entry were supplied, so widespread or active exploitation can neither be confirmed nor ruled out from this data.

Exploit ScenarioDerived

A Wicket application protects a resource (for example data-table exports via @AuthorizeResource, or a model-backed Image) with a custom isResourceAuthorized() check, but hands that same resource to a component as an IResource - such as ExportToolbar, which builds every export link from an IResource instance. Because Image/ImageButton write the component-listener URL into the rendered src attribute, an unauthenticated attacker (or even a victim browser) can request that listener URL directly and receive the resource's contents without the authorization strategy ever being consulted. No public exploit was identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 01, 2026

Apache Wicket's resource authorization check is bypassed when a restricted resource is served through a component that was constructed with an IResource instance instead of a ResourceReference. The framework enforces IAuthorizationStrategy#isResourceAuthorized() and the wicket-auth-roles @AuthorizeResource annotation at only one point - ResourceRequestHandler - so ResourceLink(String, IResource), Image, ImageButton and AjaxDownloadBehavior call IResource#respond() directly from their own request listener and never consult the strategy; for Image and ImageButton the listener URL is written into the tag's src attribute, so a browser fetches the protected content with no user action. Affected versions are 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0; only applications that actually restrict a resource and then hand that same instance to one of these components are exposed, and ExportToolbar in wicket-extensions triggers the pattern for data-table exports. No public exploit code and no confirmed active exploitation were identified at time of analysis, and EPSS data was not provided; severity is rated medium (vendor CVSS 4.0 base 6.3).

RemediationAI

Vendor-released patch: upgrade to Apache Wicket 8.20.0, 9.25.0 or 10.12.0, which fix the issue for the 8.x, 9.x and 10.x branches respectively; the vendor advisory is at https://lists.apache.org/thread.html/t9y3sho3wkqkr1vsf74xn8tzmgdr1tgo. Applications that cannot upgrade immediately can apply the workaround documented by the vendor: register the resource in the application's shared resources and pass the resulting ResourceReference to the component instead of the IResource instance, so that the request is routed through ResourceRequestHandler and the authorization strategy is consulted. This requires source changes at each affected call site and does not cover components whose resource originates from the component's model; it also means auditing uses of ExportToolbar, whose export links are built internally from IResource instances and therefore need either the upgrade or replacement of that toolbar. Note that the difference between an authorized and an unauthorized usage is not visible in the rendered page - only the constructor used at build time determines it - so impacted applications need to search their codebase for ResourceLink, Image, ImageButton, AjaxDownloadBehavior and ExportToolbar construction that passes an IResource.

Affected VersionsENISA

Apache Wicket 9.0.0 ≤9.24.0
Apache Wicket 10.0.0 ≤10.11.0
Apache Wicket 8.0.0 ≤8.19.0

Affected Packages

euvd apache_wicket no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a CWE-862 missing authorization case rooted in Apache Wicket's request-routing architecture. org.apache.wicket.authorization.IAuthorizationStrategy declares isResourceAuthorized(), and the framework has exactly one enforcement point for it: org.apache.wicket.request.handler.resource.ResourceRequestHandler, the handler that serves a resource reached through a mounted or shared ResourceReference. Components that are handed an org.apache.wicket.request.resource.IResource instance instead invoke IResource#respond() themselves from their own request listener and never construct that handler. In wicket-core these components are org.apache.wicket.markup.html.link.ResourceLink, org.apache.wicket.markup.html.image.Image and org.apache.wicket.markup.html.form.ImageButton; in wicket-extensions it is org.apache.wicket.extensions.ajax.AjaxDownloadBehavior. Which path is taken depends solely on the constructor the application chose: ResourceLink(String, ResourceReference) renders a resource URL whose request is authorized, while ResourceLink(String, IResource) renders a component listener URL that is not; Image, ImageButton and AjaxDownloadBehavior expose the same pair of constructors with the same behaviour. Image and ImageButton emit the listener URL into the src attribute of the rendered tag, so the browser requests it automatically, and an Image may additionally source its content from the component's model. The practical consequence is that an authorization decision invisible in the rendered page governs whether a restricted resource is protected. The supplied CPE (cpe:2.3:a:apache_software_foundation:apache_wicket) confirms the affected platform is the Apache Wicket framework itself. The trigger is a request routed to a component listener rather than to ResourceRequestHandler; the sources do not describe any further precondition beyond that routing and the application-side configuration.

Know when Apache Wicket gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (apache) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Remote unauthenticated request reaches the unguarded listener URL (AV:N/PR:N/UI:N, AC:L); impact limited to disclosing/serving one authorization-restricted resource, so C:L/I:L and A:N.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Missing authorization in Apache Wicket.

org.apache.wicket.authorization.IAuthorizationStrategy declares isResourceAuthorized(), and that method has a single enforcement point in the framework: org.apache.wicket.request.handler.resource.ResourceRequestHandler, the handler that serves a resource reached through a mounted or shared ResourceReference. Components that are handed an org.apache.wicket.request.resource.IResource instance instead call IResource#respond() themselves from their own request listener and never construct that handler. In wicket-core these are org.apache.wicket.markup.html.link.ResourceLink, org.apache.wicket.markup.html.image.Image and org.apache.wicket.markup.html.form.ImageButton; in wicket-extensions it is org.apache.wicket.extensions.ajax.AjaxDownloadBehavior. A resource restricted by a custom isResourceAuthorized() implementation, or by an @AuthorizeResource annotation from wicket-auth-roles, is therefore enforced when it is requested through its own resource URL and is not enforced when the same instance is served through the component that holds it.

Which of the two happens is decided by the constructor the application used, and not by anything the application can see in the rendered page. ResourceLink(String, ResourceReference) renders a resource URL and the request is authorized; ResourceLink(String, IResource) renders a component listener URL and it is not. Image, ImageButton and AjaxDownloadBehavior each offer the same pair of constructors and behave the same way. Image and ImageButton write that listener URL into the src attribute of the tag they render, so a browser requests it without any action by the user, and the resource an Image serves may also come from the component's model.

An application is affected where it restricts a resource through IAuthorizationStrategy#isResourceAuthorized() or an @AuthorizeResource annotation and then hands that same resource to one of those components as an IResource. An application that does not restrict resources at all is not affected, and neither is a resource that is only mounted or registered as a shared resource. The pattern does not have to be written by the application itself: org.apache.wicket.extensions.markup.html.repeater.data.table.export.ExportToolbar builds each of its export links from an IResource instance, so the exported contents of a data table are served without the resource check in any application that adds that toolbar.

As a workaround, register the resource in the application's shared resources and pass the resulting ResourceReference to the component instead of the IResource, so that the request is routed through the handler that consults the authorization strategy.

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. Users are recommended to upgrade to version 8.20.0, 9.25.0 or 10.12.0, which fix the issue.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche Java component-based web framework, modest enterprise footprint
Data Quality
3 sources
Confidence: Low

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-43975 MEDIUM POC
6.5 May 06

Path traversal vulnerability in Apache Wicket's FolderUploadsFileManager allows unauthenticated attackers to read arbitr

CVE-2026-84170 HIGH
8.3 Nov 01

Apache Wicket's form-less upload endpoint (AbstractFileUploadResource, the server side of FileUploadToResourceField, or

CVE-2026-83594 HIGH
8.3 Nov 01

Heap-exhaustion denial of service in Apache Wicket 9.14.0 through 9.24.0 and 10.0.0 through 10.11.0, reachable without a

CVE-2026-111089 HIGH
7.6 Nov 01

Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0 allows text

CVE-2026-95863 HIGH
7.6 Nov 01

Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0, 9.0.0 through 9.24.0 and 10.0.0 through 10.11.0 lets a value

CVE-2026-82956 HIGH
7.6 Nov 01

Stored cross-site scripting in Apache Wicket's AjaxNewWindowNotifyingBehavior allows a client-supplied browser window na

CVE-2026-84231 HIGH
7.4 Nov 01

Cross-site scripting in Apache Wicket 8.0.0 through 8.19.0 lets remote attackers get script executed in the application'

CVE-2026-83559 HIGH
7.4 Nov 01

Apache Wicket's public JavaScriptUtils.escapeQuotes() helper fails to escape backslashes before quotes, so attacker-infl

CVE-2026-83539 HIGH
7.4 Nov 01

Cross-site scripting in Apache Wicket's SmartLinkLabel and SmartLinkMultiLineLabel components turns attacker-influenced

CVE-2026-82840 HIGH
7.2 Nov 01

Session fixation in Apache Wicket's role-based authentication module leaves the container session id unchanged when an a

CVE-2026-82704 MEDIUM
6.9 Nov 01

Missing authorization in Apache Wicket 8.x, 9.x and 10.x allows unauthenticated remote attackers to invoke a component's

CVE-2026-82557 MEDIUM
6.9 Nov 01

Missing authorization in Apache Wicket 10.3.0 through 10.11.0 allows a remote unauthenticated caller to invoke the serve

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy