Skip to main content

Apache Wicket CVE-2026-82840

| EUVDEUVD-2026-114892 HIGH
Session Fixation (CWE-384)
2026-11-01 apache GHSA-qqf3-jqrg-fm5r
7.2
CVSS 4.0 · Vendor: apache
View

Attack ChainAIDerived

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

  1. Access
    Attacker signs in on own session
  2. Delivery
    Plant fixed JSESSIONID in victim browser
  3. Exploit
    Victim re-authenticates while already signed in
  4. Execution
    Session id renewal skipped by signIn guard
  5. Impact
    Attacker reuses victim's authenticated session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session fixation prevention
Exploitation Conditions

The application must authenticate through org.apache.wicket.authroles.authentication.AuthenticatedWebSession (required by AuthenticatedWebApplication and used by the shipped UsernamePasswordPanel), AND must allow a session that is already signed in to authenticate again - e.g. a step-up prompt before a sensitive action, an account switch, or a sign-in form that remains reachable after login (the module does not hide that form from a signed-in session). The attacker must also plant a session id of their choosing in the victim's browser, which Wicket does not grant since JSESSIONID is set by the servlet container - requiring 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 must be one the attacker has already signed in on, because a not-yet-signed-in session does get its id renewed by the victim's authentication. Limiting factors: a failed authentication signs the session out and closes the window; PR:L means the attacker needs a valid account; UI:A means the victim must perform the authentication; and applications that call Session#changeSessionId() in their own authenticate() code after successful authentication are not affected. Only the listed version ranges are vulnerable.

Impact

The CVSS 4.0 base score is 7.2 (High), but the vector tempers that: AV:N makes it network-reachable, yet AT:P flags an attack requirement outside the attacker's control, PR:L means the attacker must hold a valid account to pre-authenticate the planted session, and UI:A requires the victim to actively authenticate. VC:H/VI:H reflect full session hijacking (account takeover) with no availability impact (VA:N). The vuln.today decision label is 'this_week' - meaningful but short of act_now/emergency. No EPSS score, no CISA KEV listing, and no PoC are present in the supplied data, so there is no public exploit identified at time of analysis. The compound preconditions - attacker must plant a chosen JSESSIONID (needing same-registrable-domain host control or URL-based session ids), must have already signed in on that session, and the victim must re-authenticate while already signed in - make this a targeted, high-effort flaw rather than a mass-exploitable one. This is a genuine account-takeover primitive worth patching in scheduled maintenance, but the real-world risk is well below what the 7.2 High headline alone implies given the stacked prerequisites and absence of exploitation or probability signals.

Exploit ScenarioDerived

An attacker controlling a sibling host under the same registrable domain (or targeting an app configured to carry the session id in the URL) signs in to their own account to establish a known JSESSIONID, then plants that id in the victim's browser. The victim, already signed in, encounters a still-reachable sign-in form, step-up prompt, or account-switch flow and authenticates again; because the signed-in flag has already transitioned, Wicket skips changeSessionId() and the session id is not renewed, leaving the attacker in a session now bound to the victim's authentication. No public exploit code is identified at time of analysis, and the chain's network vector is offset by the required victim interaction and the attacker's need to position a chosen session id.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

Session fixation in Apache Wicket's role-based authentication module leaves the container session id unchanged when an already-signed-in session authenticates a second time, so an attacker-planted session id can survive a successful login. Affected releases are 8.18.0 through 8.19.0, 9.23.0 through 9.24.0 and 10.9.0 through 10.11.0, and exploitation requires an application that authenticates via AuthenticatedWebSession, permits re-authentication of a signed-in session (step-up prompt, account switch, or a sign-in form still reachable after login), and an attacker who can plant a session id in the victim's browser and has already authenticated that session with a valid account (PR:L, UI:A). Successful exploitation yields high confidentiality and integrity impact within the vulnerable application; the vendor-released fix is available in 8.20.0, 9.25.0 and 10.12.0, and no public exploit has been identified at time of analysis. The CVSS 4.0 base score is 7.2 (High), though the vector is tempered by AT:P (an attack requirement outside the attacker's control) alongside PR:L and UI:A.

RemediationAI

Upgrade to a fixed release: Apache Wicket 8.20.0 (for the 8.x line), 9.25.0 (for the 9.x line) or 10.12.0 (for the 10.x line), which the vendor states fix the issue; see the advisory at https://lists.apache.org/thread.html/q812kjb74x2pt6956w0pcmkc4wwj95l9. Where upgrading is not immediately possible, the documented workaround is to renew the session id from application code on every successful authentication by calling Session#changeSessionId() at the end of the authenticate(String, String) implementation - this closes the gap for re-authentication of an already-signed-in session, at the cost of a code change in each affected application rather than a framework fix. Additional exposure-limiting conditions follow from the assessed prerequisites rather than from vendor guidance: the attack needs a session id planted in the victim's browser, which requires control of a host under the same registrable domain or a container configured to carry the session id in the URL, so avoiding URL-based session id tracking removes one of those vectors, and the planted session must already be signed in with a valid account before the victim re-authenticates. A failed authentication signs the session out and so forecloses the attack; the assessed prerequisite is that the victim actively authenticates (UI:A) using a session the attacker has already authenticated with a valid account (PR:L).

Affected VersionsENISA

Apache Wicket 9.23.0 ≤9.24.0
Apache Wicket 8.18.0 ≤8.19.0
Apache Wicket 10.9.0 ≤10.11.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

Apache Wicket's org.apache.wicket.authroles.authentication.AuthenticatedWebSession is the authentication base class of the framework's role-based security module, and its signIn(String, String) method is the entry point applications use to authenticate a session; AuthenticatedWebApplication requires this class and the shipped UsernamePasswordPanel uses it. The framework's standard anti-fixation control is org.apache.wicket.Session#changeSessionId(), whose documentation instructs callers to invoke it at login. In the affected versions, signIn(String, String) performs that renewal inside a guard that succeeds only on the first transition of the session's signed-in flag, so the id is renewed on the initial sign-in but not when an already-signed-in session authenticates again, and the method still returns true so neither caller nor application can detect the omission. This is CWE-384 (Session Fixation): because JSESSIONID is issued and rotated by the servlet container rather than by Wicket, the attack additionally depends on the attacker being able to place a session id of their choosing into the victim's browser - a position Wicket does not grant, requiring 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 must already have been signed in by the attacker, since a not-yet-signed-in session does get its id renewed by the victim's authentication. A failed authentication attempt signs the session out, which closes that window, and applications that call Session#changeSessionId() in their own authenticate() implementation after a successful authentication are not affected. The trigger conditions for a given deployment are therefore configuration- and code-dependent rather than universal across all Wicket installations.

Know when Session Fixation 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 7.2 HIGH
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
vuln.today AI 6.4 MEDIUM

AC:H and PR:L because the attacker must pre-authenticate a planted session and position a chosen JSESSIONID via subdomain/URL-session conditions outside their control; UI:R as the victim must re-authenticate; C:H/I:H/A:N for session hijacking without availability loss.

3.1 AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/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
Low
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

CVE-2026-82840 is a high-severity session fixation vulnerability in Apache Wicket's role-based authentication module that can allow an attacker to hijack a user's session and gain unauthorized access to application functions. Organizations running affected versions (8.18.0-8.19.0, 9.23.0-9.24.0, 10.9.0-10.11.0) with applications that support re-authentication of signed-in sessions are at risk. Leadership should prioritize remediation because successful exploitation could lead to data breaches and integrity loss within the application, impacting customer trust and regulatory compliance.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche Java component web framework, modest production adoption
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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
No
Human Impact
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2026-102489 CRITICAL POC
9.4 Sep 30

Session hijacking in self-hosted Zammad 6.3.0 through 6.5.4 allows remote, unauthenticated attackers to take over a legi

CVE-2017-12965 CRITICAL POC
9.8 Aug 23

Session fixation vulnerability in Apache2Triad 1.5.4 allows remote attackers to hijack web sessions via the PHPSESSID pa

CVE-2025-28242 CRITICAL POC
9.8 Apr 18

Improper session management in the /login_ok.htm endpoint of DAEnetIP4 METO v1.25 allows attackers to execute a session

CVE-2022-40916 CRITICAL POC
9.8 Feb 06

Tiny File Manager v2.4.7 and below is vulnerable to session fixation. Rated critical severity (CVSS 9.8), this vulnerabi

CVE-2025-45949 CRITICAL POC
9.8 Apr 28

A critical vulnerability was found in PHPGurukul User Registration & Login and User Management System V3.3 in the /login

CVE-2023-48929 CRITICAL POC
9.8 Dec 08

Franklin Fueling Systems System Sentinel AnyWare (SSA) version 1.6.24.492 is vulnerable to Session Fixation. Rated criti

CVE-2023-41012 CRITICAL POC
9.8 Sep 05

An issue in China Mobile Communications China Mobile Intelligent Home Gateway v.HG6543C4 allows a remote attacker to exe

CVE-2023-31498 CRITICAL POC
9.8 May 11

A privilege escalation issue was found in PHP Gurukul Hospital Management System In v.4.0 allows a remote attacker to ex

CVE-2022-3269 CRITICAL POC
9.8 Sep 23

Session Fixation in GitHub repository ikus060/rdiffweb prior to 2.4.7. Rated critical severity (CVSS 9.8), this vulnerab

CVE-2021-39290 CRITICAL POC
9.8 Aug 23

Certain NetModule devices allow Limited Session Fixation via PHPSESSID. Rated critical severity (CVSS 9.8), this vulnera

CVE-2020-11729 CRITICAL POC
9.8 Apr 15

An issue was discovered in DAViCal Andrew's Web Libraries (AWL) through 0.60. Rated critical severity (CVSS 9.8), this v

CVE-2019-18418 CRITICAL POC
9.8 Oct 24

clonos.php in ClonOS WEB control panel 19.09 allows remote attackers to gain full access via change password requests be

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