Summary
CVE-2026-56104 is a critical session hijacking vulnerability in Chainlit, the open-source Python framework for building and deploying AI/LLM chatbot applications, affecting all versions before 2.10.1. An unauthenticated remote attacker who obtains a valid session ID can exploit the restore_existing_session WebSocket path to assume a victim user’s authenticated session without any ownership verification. With a CVSS v4.0 score of 9.1 (Critical) and a CVSS v3.1 score of 7.4 (High), this vulnerability poses a severe risk to any internet-exposed Chainlit deployment.
Technical details
- Root cause: The
restore_existing_sessionWebSocket handler in Chainlit did not verify that the requesting party owned the session being restored. The flaw is classified as CWE-862 (Missing Authorization) — specifically, the absence of a session ownership check during WebSocket reconnection. - Trigger conditions: An attacker must possess a valid
sessionIdbelonging to an authenticated user. Session IDs can be obtained through network interception, application-layer leakage, or other means. - Attack vector: Network-reachable via WebSocket; no authentication or user interaction is required to attempt exploitation. Attack complexity is rated High (AC:H), reflecting the requirement to obtain a valid session ID.
- Impact: Successful exploitation allows the attacker to fully assume the victim’s identity — inheriting their roles, permissions, access to restricted data, and the ability to invoke AI tools on the victim’s behalf. Confidentiality and integrity impact are both rated High (VC:H/VI:H); availability is not affected.
Affected software
- Chainlit — all versions from the earliest release up to and including the version immediately prior to 2.10.1
- Concretely: all
chainlitPyPI releases before 2.10.1
- Concretely: all
Severity
- CVSS v3.1 Base Score: 7.4 (HIGH)
- CVSS v3.1 Vector:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - CVSS v4.0 Base Score: 9.1 (CRITICAL)
- CVSS v4.0 Vector:
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate — Upgrade: Update Chainlit to version 2.10.1 or later. This release adds a
_session_owner_matches_userownership check to therestore_existing_sessionfunction; attempts to restore a session by a non-owning user are now rejected with aConnectionRefusedError("authorization failed")(PR #2857). - If immediate patching is not possible:
- Restrict public network access to Chainlit’s WebSocket endpoint via firewall rules or reverse proxy configuration, limiting access to trusted networks or authenticated users only.
- Monitor WebSocket connection logs for unexpected
restore_existing_sessionevents originating from IP addresses or users that do not match the original session context.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

