Skip to main content

Coop CVE-2026-63400

LOW
Insufficient Session Expiration (CWE-613)
2026-10-30 GitHub_M
2.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Acquire victim password and establish session
  2. Exploit
    Victim resets password to recover
  3. Execution
    Session not invalidated on reset
  4. Impact
    Retain compromised account access up to 30 days

Vulnerability Assessment

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

Exploitation requires that the attacker has already compromised the account out-of-band - specifically, acquired the victim's password AND established an authenticated, database-backed Coop session - BEFORE the legitimate user performs a password reset. The flaw (resetPasswordForToken updating the password row without clearing stored sessions) then causes that pre-existing session to survive the reset. Key limiting factors: it provides no initial access on its own (PR:L, prior compromise mandatory), it only manifests when the victim actually performs the reset recovery action (AT:P), and the surviving session is self-limiting because sessions carry a 30-day maximum age after which access is lost regardless. There is no unauthenticated or default-configuration remote attack path.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N) scores only 2.3, and the vuln.today decision label is 'monitor' - not act_now or emergency. The defining constraint is PR:L combined with AT:P: exploitation is not a standalone network attack but a post-compromise persistence weakness. The attacker must ALREADY hold the victim's password and an established session before the flaw has any value; it then merely lets that pre-existing session outlive the password reset the victim performs to recover. It is not in CISA KEV (not confirmed actively exploited), no EPSS score was supplied, and no public exploit was identified. Impact is bounded - the vendor rated only VC:L (limited confidentiality), with no integrity or availability impact, and the stale session self-expires at the 30-day database max age. In short, this is a correct and legitimate CWE-613 finding, but it is a low-real-risk defense-in-depth gap, not a high-CVSS-but-low-risk inflation case and not a widespread exploitation threat; prioritize it as routine patching.

Exploit ScenarioDerived

An attacker who has already phished or otherwise obtained a Coop user's password logs in and establishes a database-backed session. The legitimate user later notices or suspects compromise and resets their password, reasonably expecting this to log the attacker out. Because resetPasswordForToken updates the password row without invalidating existing sessions, the attacker's session keeps working, retaining account control until it naturally expires at the 30-day maximum age. No public exploit was identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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 – Oct 30, 2026

Coop, the open source review and moderation tool from ROOST, fails to invalidate database-backed sessions when a user resets their password, so any session an attacker had already established survives the reset for up to the 30-day session maximum age. The flaw requires a prerequisite compromise - an attacker must already hold the victim's password and have created an authenticated session before the legitimate user completes a reset (PR:L, AT:P), meaning it grants no initial access on its own. It affects versions prior to 1.0.2 and is fixed in 1.0.2; this is a low-severity issue (vendor CVSS 2.3) that only manifests after prior credential compromise and only when the victim performs the reset. No public exploit code is identified at time of analysis, and the priority label is monitor.

RemediationAI

Upgrade to Coop 1.0.2, which contains the fix from PR #778 (commits 15b1fe9, 4a246ac, 1caa9e2 and ab3514f, with the advisory also citing commit f226db0fb7f03096d2a832304ad9614e944e4bf8) that invalidates sessions on password change or reset as part of a single transaction with the password update; details are in https://github.com/roostorg/coop/security/advisories/GHSA-g5xq-67g7-36r2 and https://github.com/roostorg/coop/pull/778. On instances that cannot be upgraded immediately, administrators responding to a suspected credential compromise should treat a password reset as insufficient on its own and directly delete the affected user's rows from the public.session table so any attacker-held session is destroyed, and should review account activity for the remainder of the 30-day session window; the trade-off is that this logs the user out everywhere and any surviving session evidence is lost, so capture session and access records first. Because exploitation presupposes the password was already stolen, the primary prevention remains credential hygiene and prompt rotation after suspected compromise.

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

This is a CWE-613 (Insufficient Session Expiration) defect in Coop's server-side GraphQL user data layer. Coop stores user sessions as rows in a PostgreSQL public.session table (managed through Kysely query building), with a 30-day maximum session age. The resetPasswordForToken path, which handles token-based password resets, updated the user's password row but never deleted the corresponding session rows, so pre-existing sessions continued to satisfy authentication after the credential changed. The upstream fix in PR #778 reworks UserAPI so that the password update and session purge occur inside a single Kysely transaction created with makeKyselyTransactionWithRetry, preventing a state in which the password has rotated but the session cleanup failed independently. Notably, the change-password variant deletes all of the user's sessions except the caller's own currentSid, so a user is not logged out of the browser tab from which they are rotating their password. The GraphQL/HTTP front end is network-reachable (AV:N), but the trigger depends on a pre-existing authenticated session and on the victim actually completing a reset, which is why the assessed severity is low and the attack requires special conditions (AT:P).

Know when Coop 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 (GitHub_M) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Attacker already holds credentials and a session so PR:L; no victim-side UI is needed by the attacker (UI:N); impact is limited retained account access (C:L) with no integrity/availability effect per the vendor scope.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Coop is an open source review and moderation tool from ROOST. Prior to 1.0.2, resetPasswordForToken updates the password row without invalidating database-backed sessions. An attacker who has acquired a password and established a session retains access even after the legitimate user resets the password, leaving the compromised account under attacker control until the session expires at its 30-day maximum age. This issue is fixed in version 1.0.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
niche open-source review/moderation tool from ROOST, limited deployment footprint
Social Media
2
Sightings
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 LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
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

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

Affected Products (CPE)CVE.org

cpe:2.3:a:roostorg:coop:*:*:*:*:*:*:*:*

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