Skip to main content

web.py CVE-2026-79313

| EUVDEUVD-2026-84490 CRITICAL
Insufficient Session Expiration (CWE-613)
2026-09-22 mitre GHSA-qxcc-j254-vh2v
9.8
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Obtain previously valid session cookie
  2. Delivery
    Wait past configured idle timeout
  3. Exploit
    Replay cookie before cleanup purges record
  4. Execution
    Session loaded without last-access check
  5. Impact
    Access 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.6% exploitation probability (EPSS)

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

Alert me

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

n/a n/a

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

Vendor (mitre) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 4.8 MEDIUM

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.

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

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

Lifecycle Timeline

2
CVE Published
Sep 22, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 22, 2026 - 00:00 cve.org
CRITICAL 9.8

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

Executive ViewAI

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.6%
Top 55% exploitable
Prevalence
Low
web.py is a niche, minimalist Python web framework with limited production footprint
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Total

Priority Score

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

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

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