Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-82840— Apache Wicket: The session id is renewed only on the first sign in, not on re-authentication

Quick assessment

Affected
Apache Software Foundation Apache Wicket
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Apache Wicket 存在会话固定(Session Fixation)漏洞。 是 Wicket 基于角色的安全模块的身份验证基类,其 方法是应用程序进行会话身份验证的入口点。在该环节刷新容器会话 ID,是防范攻击者在受害者浏览器中固定会话 ID 的标准防御措施。Wicket 通过 方法提供该刷新功能,其文档明确指示调用方应在登录时调用此方法,目的正是为此。 然而, 方法仅在会话的“已登录”标志首次从“未登录”变为“已登录”时,才会在保护逻辑内调用会话 ID 刷新。因此,会话 ID 仅在首次登录时刷新;若一个已

CVSS 7.2 · High

Possible ATT&CK Techniques 2 AI

T1538.002 T1566.002 · Spearphishing Link
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-82840

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Apache Wicket: The session id is renewed only on the first sign in, not on re-authentication
Source: CVE Program / CVE List V5
Vulnerability Description
Session fixation in Apache Wicket. org.apache.wicket.authroles.authentication.AuthenticatedWebSession is the authentication base class of Wicket's role-based security module, and its signIn(String, String) method is the entry point through which an application authenticates a session. Renewing the container session id at that point is the standard defence against an attacker who has fixed a session id in a victim's browser, and Wicket provides that renewal as org.apache.wicket.Session#changeSessionId(), whose documentation directs callers to invoke it on login for exactly that reason. AuthenticatedWebSession#signIn(String, String) calls it inside a guard that succeeds only on the first transition of the session's signed-in flag. The session id is therefore renewed when a session first signs in, and is not renewed when a session that is already signed in authenticates again. signIn(String, String) returns true either way, so neither the caller nor the application can tell that the renewal did not happen. An application is affected where it authenticates through AuthenticatedWebSession, which AuthenticatedWebApplication requires and which the shipped UsernamePasswordPanel uses, and where a session that is already signed in can authenticate again: a step-up prompt before a sensitive action, an account switch, or simply a sign-in form that stays reachable once the user is signed in. Nothing in the module hides that form from a signed-in session. Reaching the defect also requires an attacker to place a session id of their choosing in the victim's browser. JSESSIONID is set by the servlet container rather than by Wicket, so that needs a position Wicket does not grant, such as control of a host under the same registrable domain or a container configured to carry the session id in the URL, and the planted session has to be one the attacker has already signed in on, because a session that is not yet signed in does have its id renewed by the victim's authentication. An authentication attempt that fails signs the session out and closes the window. Applications that renew the session id in their own code after a successful authentication are not affected. As a workaround, renew the session id from the application's own code on every successful authentication, by calling Session#changeSessionId() at the end of the authenticate(String, String) implementation. This issue affects Apache Wicket: from 8.18.0 through 8.19.0, from 9.23.0 through 9.24.0, from 10.9.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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Source: CVE Program / CVE List V5
Vulnerability Type
会话固定
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Apache Software Foundation Apache Wicket 8.18.0 ~ 8.19.0 -

II. Public POCs for CVE-2026-82840

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-82840

请登录查看更多情报信息。

Other References for CVE-2026-82840 (1)

Same Patch Batch · Apache Software Foundation · 2026-11-01 · 19 CVEs total

CVE-2026-83594 8.3 HIGH Apache Wicket: FileUploadToResourceField accepts a client-asserted upload result and alloc
CVE-2026-84170 8.3 HIGH Apache Wicket: Configured upload limits are not enforced by the standalone file upload res
CVE-2026-95863 7.6 HIGH Apache Wicket: XSS via a component id or markup id written unescaped into generated JavaSc
CVE-2026-82956 7.6 HIGH Apache Wicket: XSS in AjaxNewWindowNotifyingBehavior via the client-supplied window name
CVE-2026-111089 7.6 HIGH Apache Wicket: XSS via a resource bundle text written unescaped into generated JavaScript
CVE-2026-83539 7.4 HIGH Apache Wicket: XSS in SmartLinkLabel and SmartLinkMultiLineLabel via a javascript: URL in
CVE-2026-83559 7.4 HIGH Apache Wicket: JavaScriptUtils#escapeQuotes does not escape the backslash, so its output c
CVE-2026-84231 7.4 HIGH Apache Wicket: XSS in ExternalLink via the model URL when the component is bound to a non-
CVE-2026-82704 6.9 MEDIUM Apache Wicket: A listener is invoked on a page instance the request itself created and nev
CVE-2026-82557 6.9 MEDIUM Apache Wicket: A disabled or invisible form submitting component is still invoked on a pla
CVE-2026-84172 6.3 MEDIUM Apache Wicket: Component markup is served as a package resource when wicket-core has its o
CVE-2026-84177 6.3 MEDIUM Apache Wicket: A component's markup is served as a package resource when its class name co
CVE-2026-82705 6.3 MEDIUM Apache Wicket: The configured authorization strategy is not applied to an IResource embedd
CVE-2026-82115 6.3 MEDIUM Apache Wicket: The configured authorization strategy is not applied to a shared WebSocketR
CVE-2026-87718 2.3 LOW Apache Wicket: CSP headers silently omitted for pages served through nested request handle
CVE-2026-82559 2.3 LOW Apache Wicket: WebSocket messages are processed against an HTTP session snapshot that surv
CVE-2026-82558 2.3 LOW Apache Wicket: WebSocketBehavior delivers client messages to a component the client may no
CVE-2026-82898 2.1 LOW Apache Wicket: A cross-origin listener invocation stopped by a login wall is replayed afte

IV. Related Vulnerabilities