Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim's valid signed session cookie
-
DeliveryStart request that restores the session
-
ExploitKeep request in flight across the logout
-
ExecutionIn-flight request re-saves session after destroy
-
ImpactReplay cookie to resume revoked session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
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 ALL of the following concrete conditions, per the advisory: the default rolling session behavior (rolling: true) must be in effect; the attacker must ALREADY possess the victim's valid signed session cookie (the flaw involves no cookie theft or signature forgery); and the attacker must keep a request that restored the session in flight so that it completes its store write AFTER another request's Session#destroy() (logout) or session regeneration - i.e., winning a narrow timing race. Limiting factors: the attack only extends/recreates a session the attacker could already use, it cannot create initial access; it depends on a concurrent logout or regeneration event occurring; and it requires hitting the race window (AC:H). Custom session stores that do not implement the new conditional write remain exposed even after upgrade. |
| Impact | This is a genuinely low-priority issue by every available signal, and the signals are internally consistent rather than conflicting. The vendor-supplied CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N yields only 3.7 (Low): although the attack vector is network (AV:N), exploitation is gated by high attack complexity (AC:H, reflecting the narrow race window described), already-held privileges (PR:L - the attacker must possess the victim's valid signed session cookie), and a dependent logout/user action (UI:R), with only low confidentiality and integrity impact and no availability impact. The vuln.today decision label is 'monitor', the weakest urgency tier, which agrees with the low CVSS. There is no CISA KEV listing and no EPSS score was supplied, so widespread or automated exploitation cannot be asserted; absence of EPSS is a data gap, not evidence either way. The only references are the GHSA advisory and the OpenJS CNA page - neither is a working exploit - so there is no public exploit identified at time of analysis. The practical ceiling on risk is the precondition that the attacker must already hold the victim's valid signed cookie (no cookie theft or signature forgery is part of this flaw), meaning this escalates an existing session-compromise into post-logout persistence rather than granting initial access. Net: a real correctness/security defect worth patching on a normal cycle, but not an emergency. |
| Exploit ScenarioDerived | An attacker who has already obtained a victim's valid signed @fastify/session cookie (through some separate compromise) issues a request that reads/restores the session and deliberately keeps it in flight while the victim - or the application - performs a logout that destroys the session. Because the default rolling behavior re-saves the in-flight request's copy after the destroy completes, the destroyed session identifier is recreated with its authenticated data, and the attacker can then replay the original cookie to access the account despite the logout. No public exploit code was identified; the race requires precise timing across the logout (consistent with AC:H). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Session revocation bypass in @fastify/session before 11.1.6 lets an authenticated remote attacker who already holds a victim's valid signed session cookie keep that session alive after logout by winning a narrow timing race: a request that restored the session before the logout can still write its own copy of the store entry after another request's Session#destroy() has completed, recreating the destroyed identifier with its authenticated data. The default rolling: true behavior is required, no cookie theft or signature forgery is involved, and the attacker gains nothing beyond a session they could already use - the flaw extends or resurrects an existing session rather than creating initial access (CVSS 3.1 base 3.7, AV:N/AC:H/PR:L/UI:R, C:L/I:L/A:N). No public exploit code has been identified at time of analysis and the issue is not in CISA KEV; the vendor has released a fix in 11.1.6 that adds a per-session generation marker plus a conditional store write.
RemediationAI
Upgrade @fastify/session to 11.1.6 or later (vendor-released patch: 11.1.6); the release adds a per-session generation marker and a conditional store write so a session restored before a logout or regeneration can no longer recreate or overwrite the current entry. The advisory explicitly states there is no workaround, so upgrading is the only complete fix, and it also requires that custom session stores implement the new conditional write - a store that keeps issuing unconditional writes leaves the race open even on 11.1.6, so inventory any non-default store adapters and update or replace them as part of the rollout. Refer to https://github.com/fastify/session/security/advisories/GHSA-2hw7-jxfh-4rm3 and https://cna.openjsf.org/security-advisories.html for the authoritative guidance. Given the CVSS 3.1 score of 3.7 (AV:N/AC:H/PR:L/UI:R), the requirement that the attacker already possess a valid signed cookie, and the priority label 'monitor', this can be scheduled as routine dependency maintenance rather than an emergency change; no public exploit code has been identified at time of analysis.
Affected VersionsENISA
Affected Packages
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 underlying component is the @fastify/session plugin for the Fastify Node.js web framework, which persists server-side session state in a pluggable session store and identifies clients by a signed session cookie (CPE: cpe:2.3:a:@fastify/session:@fastify/session, all versions below 11.1.6). The root cause class is CWE-362 (concurrent execution using shared resources with improper synchronization), with the advisory also classifying it as CWE-613 (insufficient session expiration). With the default rolling: true setting, every request that touches a session re-saves it to the store; the plugin's save path is an unconditional write, so a request whose restored session predates a logout can overwrite the store entry after Session#destroy() has removed it, effectively undoing the revocation. The fix in 11.1.6 attaches a per-session generation marker and converts the store write into a conditional operation that refuses to recreate or overwrite an entry whose generation no longer matches, which means custom session store implementations must also adopt the new conditional write contract to be protected. The precise interleaving that triggers the race is described in the advisory only in terms of a request 'in flight across the logout'; the exact timing window is not quantified in the available sources.
Know when Fastify Session 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
AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N
Network-reachable but needs a narrow logout race (AC:H), possession of a valid session cookie (PR:L) and a dependent logout event (UI:R); impact is limited to recovered session confidentiality and revocation-bypass integrity, no availability effect.
Primary rating from Vendor (openjs).
CVSS VectorVendor: openjs
Lifecycle Timeline
1DescriptionCVE.org
@fastify/session is a session plugin for Fastify. In all releases before 11.1.6, with the default rolling session behavior, a request that restored a session before a logout could save its own copy after another request had completed the session destroy call, recreating the destroyed session identifier with its authenticated data. An attacker who already holds a victim's valid signed session cookie and keeps a request in flight across the logout can replay that cookie to restore the session after it was meant to be revoked, without any cookie theft or signature forgery. The issue is fixed in @fastify/session 11.1.6, which adds a per session generation marker and a conditional store write so a session restored before a logout or regeneration cannot recreate or overwrite the current entry, and users should upgrade to 11.1.6 or later. There is no workaround, and custom session stores must implement the new conditional write.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).
EUVD-2026-110811
NVD
CVE.org
EPSS
GitHub
Exploit-DB