CVE-2026-64857 Overview
tirreno, an open-source security framework, contains a session fixation vulnerability [CWE-384] in versions prior to 0.10.0. During authentication, tirreno validates user credentials and establishes the authenticated session without calling session_regenerate_id(). The session identifier remains unchanged before and after login. An attacker who can plant a known session identifier in a victim's browser can hijack the authenticated session once the victim logs in. The maintainers fixed the issue in version 0.10.0 by regenerating the session identifier on successful authentication and destroying the previous session.
Critical Impact
An attacker who fixes a session identifier in a victim's browser can gain access to that victim's authenticated tirreno session after login.
Affected Products
- tirreno security framework versions prior to 0.10.0
- Deployments relying on tirreno's PHP session handling for authentication
- Fixed in tirreno v0.10.0
Discovery Timeline
- 2026-09-09 - CVE-2026-64857 published to NVD
- 2026-09-09 - Last updated in NVD database
Technical Details for CVE-2026-64857
Vulnerability Analysis
The vulnerability is a classic session fixation flaw in tirreno's authentication flow. When a user submits valid credentials, tirreno establishes an authenticated session but reuses the pre-authentication session identifier. Because the session ID persists across the authentication boundary, any party who knew the anonymous session ID retains access after the victim authenticates.
Session fixation attacks require the attacker to first place a known session identifier in the victim's browser. Feasible delivery paths include a network man-in-the-middle position, a separate cross-site scripting (XSS) issue, or a subdomain cookie-injection flaw. Once the victim logs in with that fixed identifier, the attacker's parallel session is elevated to the victim's authenticated context.
Root Cause
The root cause is the absence of a session_regenerate_id() call after successful credential verification. PHP requires applications to explicitly rotate the session identifier at privilege boundaries. tirreno's login handler previously omitted this step and did not destroy the prior session state.
Attack Vector
Exploitation is remote over the network and requires low privileges, because the attacker must be able to influence the victim's session cookie. The attacker sets a chosen PHPSESSID (or equivalent) cookie in the victim's browser through MITM injection, XSS, or subdomain cookie scoping. When the victim authenticates, that same identifier becomes valid for the attacker's parallel request stream. No verified exploit code is publicly available. See the GitHub Security Advisory GHSA-gwcm-4p9m-9mvr for maintainer analysis.
Detect Identity Attacks the Moment Authentication Fails
Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.
Stop Identity AttacksDetection Methods for CVE-2026-64857
Indicators of Compromise
- Session identifiers that persist unchanged across a successful /login transition in tirreno access logs.
- Concurrent use of the same session cookie from disparate source IP addresses or user-agent strings.
- Unexpected authenticated actions in tirreno immediately following an anonymous request that carried a matching session cookie.
Detection Strategies
- Correlate pre-authentication and post-authentication requests by session ID in web server or reverse proxy logs and flag any ID that survives login.
- Alert on session cookies observed originating from Set-Cookie headers issued by non-tirreno responses, which may indicate injection.
- Review authentication events in tirreno for sessions where the client fingerprint changes without a re-authentication event.
Monitoring Recommendations
- Ingest tirreno application logs and web access logs into a centralized analytics platform for session-lifecycle correlation.
- Monitor for anomalous geolocation or ASN transitions on a single session identifier within short time windows.
- Track login success events and compare the session identifier value before and after the credential exchange.
How to Mitigate CVE-2026-64857
Immediate Actions Required
- Upgrade tirreno to version 0.10.0 or later, which regenerates the session identifier on successful authentication and destroys the prior session.
- Invalidate all existing authenticated sessions after upgrading to force re-authentication with fresh identifiers.
- Audit any subdomains or upstream proxies that could scope cookies into the tirreno application domain.
Patch Information
The fix is available in tirreno v0.10.0. The patched login flow calls session_regenerate_id() and destroys the previous session on successful authentication. The maintainers state there is no configuration-level workaround.
Workarounds
- No configuration-level workaround exists per the vendor advisory; upgrading to 0.10.0 is required.
- As defense-in-depth, enforce HTTPS end-to-end and set the Secure, HttpOnly, and SameSite=Lax or Strict attributes on session cookies to reduce fixation delivery paths.
- Remediate any known XSS or subdomain cookie-injection issues in adjacent applications that share the tirreno cookie scope.
# Upgrade tirreno to the patched release
git fetch --tags
git checkout v0.10.0
# Example hardening for PHP session cookies (php.ini)
# session.cookie_secure = 1
# session.cookie_httponly = 1
# session.cookie_samesite = "Lax"
# session.use_strict_mode = 1
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

