Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain previously valid session cookie
-
DeliveryWait past configured idle timeout
-
ExploitReplay cookie before cleanup purges record
-
ExecutionSession loaded without last-access check
-
ImpactAccess victim's protected resources
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Requires the attacker to already possess a previously valid web.py session cookie AND for the attack to occur after the configured idle timeout but BEFORE the periodic session-cleanup job purges the expired record - the vulnerability is the absence of a last-access-time check when a session is loaded. Limiting factors: the attacker must first acquire the session token (via theft, capture, or leak), impact is confined to the compromised account's privileges, and the exposure window closes once cleanup runs. It is not exploitable by an attacker holding no prior session token, contrary to the PR:N in the published CVSS vector. |
| Impact | Signals conflict sharply. NVD/MITRE assign CVSS 9.8 (AV:N/AC:L/PR:N/UI:N/C:H/I:H/A:H), but that vector is inconsistent with the described flaw: CWE-613 Insufficient Session Expiration lets an attacker who ALREADY holds a previously valid session cookie continue using it past the configured idle timeout. That prerequisite is ignored by the 9.8 vector - a fully unauthenticated attacker with no cookie cannot trigger anything, and impact is bounded by the hijacked account's privileges, not automatic full C/I/A on the host. SSVC largely agrees the raw score overstates urgency: Exploitation=none (no observed exploitation) with Automatable=yes and Technical Impact=total. EPSS is not provided; the CVE is NOT in CISA KEV. The two GitHub references are the vendor source repo and a third-party TraceLoom writeup (an analysis/advisory, not confirmed weaponized exploit code). Net: a genuine session-management weakness but a LOW-to-MEDIUM real-world priority mislabeled as CRITICAL - the 9.8 should be independently downgraded, and this is better treated as a session-lifetime hardening fix than an unauthenticated RCE-class emergency. |
| Exploit ScenarioDerived | An attacker obtains a user's web.py session cookie (via a shared/public terminal, network capture on a non-TLS deployment, or an XSS/logging leak). Even after the configured idle timeout should have expired the session, web.py never checks last-access time on load - so as long as the periodic cleanup job has not yet purged the record, the attacker replays the cookie and continues accessing the victim's protected resources. A third-party analysis (TraceLoom) documents the behavior, but no confirmed weaponized exploit code is published. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Session replay in web.py 0.76 allows anyone who already holds a valid session cookie to keep reaching protected resources after the configured idle timeout has elapsed, because expired session records are only removed by a periodic cleanup job instead of being rejected at load time via a last-access-time check. No public exploit code and no confirmed active exploitation have been identified (CISA SSVC records Exploitation = none), although the flaw is classed as fully automatable with total technical impact once a token is obtained. The published CVSS of 9.8 materially overstates practical risk relative to the independent assessment (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N), which stresses that the attacker must first steal, capture, or leak a session token and that the exposure window closes as soon as the cleanup job purges the expired record.
RemediationAI
No vendor-released patch version is identified in the provided intelligence: the references point only at the upstream project repository (https://github.com/webpy/webpy) and a third-party CVE write-up (https://github.com/lichoin/TraceLoom/blob/main/CVEs/CVE-2026-79313.md), with no tagged fixed release cited, so teams should track the upstream repository and the NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-79313) for a patched version before assuming a fix exists. Until then, the most direct compensating control is to enforce expiry at load time rather than relying on the sweeper: in the session store's load/decode path, compare the stored last-access timestamp against the configured idle timeout and treat any record older than the timeout as invalid, deleting it on the spot; the trade-off is that this adds a per-request check against the session backend and can surface latency on slow stores. Shortening the cleanup interval narrows the replay window but increases backend churn, which is costly for database- or file-backed session stores and only reduces rather than removes the gap. Reduce the idle timeout to the minimum operationally tolerable value and add an independent absolute session lifetime, regenerate the session identifier on privilege change alone to avoid breaking normal flows, and bind sessions to a stable client attribute such as a source address range or user agent only where the false-positive cost of legitimate client changes is acceptable. Finally, monitor for reuse of session identifiers that have already exceeded their idle timeout and alert on any such replay, since that signal is otherwise invisible in normal application logs.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is CWE-613 (Insufficient Session Expiration) in the web.py Python web framework's session layer. web.py keeps server-side session records keyed by a session identifier carried in a signed client cookie; expiry is enforced out-of-band by a periodic cleanup routine that sweeps stale entries. Loading a session does not compare the stored last-access timestamp against the configured idle timeout, so a cookie for an already-expired session remains usable until the sweep runs. The root-cause class is therefore a missing freshness/expiry validation at session-retrieval time, not a cryptographic failure of the cookie itself. The supplied CPE (cpe:2.3:a:n/a:n/a:*) and EUVD affected-version list ("n/a n/a") are placeholders and carry no product or version granularity, so exact scope has to be taken from the description: web.py 0.76, the version tracked at https://github.com/webpy/webpy. Exploitation requires a pre-existing valid session cookie plus a timing window between the idle timeout and the next cleanup pass, which is why the independent assessment raises attack complexity and lowers confidentiality/integrity impact compared with the published 9.8 score.
Know when Python 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:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Attacker must obtain a prior valid cookie and race the cleanup window (AC:H); impact is limited to the hijacked session's scope (C:L/I:L), with no availability effect.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
2DescriptionCVE.org
webpy web.py 0.76 is vulnerable to Insufficient Session Expiration. The application's session management relies on periodic cleanup to expire sessions instead of checking the last-access time when a session is loaded. As a result, an expired session whose record has not yet been cleaned up can still be replayed and used, allowing an attacker holding a previously valid session cookie to continue accessing protected resources after the configured idle timeout.
Articles & Coverage 1
Executive ViewAI
CVE-2026-79313 affects applications built on web.py 0.76 by allowing a session that has passed its idle timeout to remain usable until a periodic cleanup job removes it, which undermines session-timeout controls as a defense-in-depth measure. The business risk is concentrated in environments where session cookies could be stolen or leaked, because no public exploit identified at time of analysis and no confirmed active exploitation exists, and the independent assessment indicates limited direct confidentiality and integrity impact. Leadership should care because no vendor-released patch identified at time of analysis, so affected teams need to inventory exposure and apply interim session-hardening controls while planning a framework upgrade or code fix.
No vendor-released patch identified at time of analysis; interim mitigations include shortening or forcing session cleanup, rotating session signing keys, adding load-time last-access-time validation, requiring re-authentication for sensitive actions, restricting access to affected web.py 0.76 applications, and monitoring for expired session reuse.
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.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-84490
GHSA-qxcc-j254-vh2v
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB