Skip to main content

@fastify/session EUVDEUVD-2026-110811

| CVE-2026-117499 LOW
Race Condition (CWE-362)
2026-10-27 openjs
3.7
CVSS 3.1 · Vendor: openjs
View

Attack ChainAIDerived

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

  1. Access
    Obtain victim's valid signed session cookie
  2. Delivery
    Start request that restores the session
  3. Exploit
    Keep request in flight across the logout
  4. Execution
    In-flight request re-saves session after destroy
  5. Impact
    Replay 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).

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

@fastify/session 0 <11.1.6

Affected Packages

euvd fastify_session fix: 11.1.6

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

Vendor (openjs) PRIMARY 3.7 LOW
AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N
vuln.today AI 3.7 LOW

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.

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

Primary rating from Vendor (openjs).

CVSS VectorVendor: openjs

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Oct 27, 2026 - 12:01 EUVD

DescriptionCVE.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

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Medium
popular session plugin for the Fastify Node.js framework, common but not universal
Data Quality
4 sources
Confidence: Medium

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 LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

18
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
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.

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).

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