{"id":"CVE-2026-56104","aliases":["EUVD-2026-38285","GHSA-c39v-8hrw-h448","PYSEC-2026-4028"],"status":"published","title":"Chainlit \u003c 2.10.1 Session Hijacking via WebSocket Session Restoration","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","severity":{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00417,"percentile":0.3642,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-862"],"published":"2026-06-22T14:17:52Z","modified":"2026-11-09T02:47:23Z","fixes":[{"ecosystem":"PyPI","package":"chainlit","fixed_in":["2.10.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"chainlit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"chainlit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.1"}]}],"versions":["0.1.0","0.1.1","0.1.101","0.1.102","0.1.103","0.2.0","0.2.1","0.2.101","0.2.102","0.2.103","0.2.104","0.2.105","0.2.106","0.2.107","0.2.108","0.2.109","0.2.110","0.2.111","0.3.0","0.4.0","0.4.1","0.4.101","0.4.2","0.4.3","0.5.0","0.5.1","0.5.2","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.401","0.6.402","0.7.0","0.7.1","0.7.2","0.7.3","0.7.301","0.7.400","0.7.500","0.7.501","0.7.600rc0","0.7.600rc1","0.7.601rc0","0.7.602","0.7.602rc0","0.7.603","0.7.604","0.7.604rc0","0.7.604rc1","0.7.604rc2","0.7.700","1.0.0","1.0.0rc0","1.0.0rc1","1.0.0rc2","1.0.0rc3","1.0.100","1.0.101","1.0.200","1.0.300","1.0.301","1.0.400","1.0.401","1.0.500","1.0.501","1.0.502","1.0.503","1.0.504","1.0.505","1.0.506","1.1.0","1.1.0rc0","1.1.0rc1","1.1.101","1.1.200","1.1.201","1.1.202","1.1.300","1.1.300rc0","1.1.300rc1","1.1.300rc2","1.1.300rc3","1.1.300rc4","1.1.300rc5","1.1.301","1.1.302","1.1.303","1.1.304","1.1.305","1.1.306","1.1.400","1.1.400rc0","1.1.400rc1","1.1.401","1.1.402","1.1.403rc0","1.1.404","1.2.0","1.2.0rc0","1.3.0","1.3.0rc0","1.3.0rc1","1.3.1","1.3.2","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.601","2.0.602","2.0.603","2.0.dev0","2.0.dev1","2.0.dev2","2.0rc0","2.0rc1","2.1.0","2.1.1","2.1.2","2.10.0","2.2.0","2.2.1","2.3.0","2.4.0","2.4.0rc0","2.4.1","2.4.2","2.4.201","2.4.3","2.4.301","2.4.302","2.4.400","2.5.5","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.7.0","2.7.1","2.7.1.1","2.7.2","2.8.0","2.8.1","2.8.2","2.8.3","2.8.4","2.8.5","2.9.0","2.9.1","2.9.2","2.9.3","2.9.4","2.9.5","2.9.6"]},{"source":"osv","ecosystem":"PyPI","package":"chainlit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.10.1"}]}],"versions":["0.1.0","0.1.1","0.1.101","0.1.102","0.1.103","0.2.0","0.2.1","0.2.101","0.2.102","0.2.103","0.2.104","0.2.105","0.2.106","0.2.107","0.2.108","0.2.109","0.2.110","0.2.111","0.3.0","0.4.0","0.4.1","0.4.101","0.4.2","0.4.3","0.5.0","0.5.1","0.5.2","0.6.0","0.6.1","0.6.2","0.6.3","0.6.4","0.6.401","0.6.402","0.7.0","0.7.1","0.7.2","0.7.3","0.7.301","0.7.400","0.7.500","0.7.501","0.7.600rc0","0.7.600rc1","0.7.601rc0","0.7.602","0.7.602rc0","0.7.603","0.7.604","0.7.604rc0","0.7.604rc1","0.7.604rc2","0.7.700","1.0.0","1.0.0rc0","1.0.0rc1","1.0.0rc2","1.0.0rc3","1.0.100","1.0.101","1.0.200","1.0.300","1.0.301","1.0.400","1.0.401","1.0.500","1.0.501","1.0.502","1.0.503","1.0.504","1.0.505","1.0.506","1.1.0","1.1.0rc0","1.1.0rc1","1.1.101","1.1.200","1.1.201","1.1.202","1.1.300","1.1.300rc0","1.1.300rc1","1.1.300rc2","1.1.300rc3","1.1.300rc4","1.1.300rc5","1.1.301","1.1.302","1.1.303","1.1.304","1.1.305","1.1.306","1.1.400","1.1.400rc0","1.1.400rc1","1.1.401","1.1.402","1.1.403rc0","1.1.404","1.2.0","1.2.0rc0","1.3.0","1.3.0rc0","1.3.0rc1","1.3.1","1.3.2","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.601","2.0.602","2.0.603","2.0.dev0","2.0.dev1","2.0.dev2","2.0rc0","2.0rc1","2.1.0","2.1.1","2.1.2","2.10.0","2.2.0","2.2.1","2.3.0","2.4.0","2.4.0rc0","2.4.1","2.4.2","2.4.201","2.4.3","2.4.301","2.4.302","2.4.400","2.5.5","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.7.0","2.7.1","2.7.1.1","2.7.2","2.8.0","2.8.1","2.8.2","2.8.3","2.8.4","2.8.5","2.9.0","2.9.1","2.9.2","2.9.3","2.9.4","2.9.5","2.9.6"]}],"products":[{"vendor":"chainlit","product":"chainlit"}],"references":[{"url":"https://github.com/Chainlit/chainlit/releases/tag/2.10.1","tags":["release-notes","advisory","web"]},{"url":"https://github.com/Chainlit/chainlit/pull/2857","tags":["issue-tracking","patch","fix","web"]},{"url":"https://github.com/Chainlit/chainlit/commit/5effb664f1e0af4a4f0a42fe63ea979676039a7f","tags":["patch","fix","web"]},{"url":"https://www.vulncheck.com/advisories/chainlit-session-hijacking-via-websocket-session-restoration","tags":["third-party-advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-56104","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-c39v-8hrw-h448","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/56xxx/CVE-2026-56104.json","tags":["advisory"]},{"url":"https://github.com/Chainlit/chainlit","tags":["package"]},{"url":"https://pypi.org/project/chainlit","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-56104","title":"Chainlit \u003c 2.10.1 Session Hijacking via WebSocket Session Restoration","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T14:17:52.64Z","modified":"2026-11-08T14:05:30.669Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-862"],"updated_at":"2026-11-08T15:43:33.322657Z"}],"euvd":[{"id":"EUVD-2026-38285","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T14:17:52Z","modified":"2026-11-08T14:05:30Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","level":"high"}],"updated_at":"2026-11-08T15:13:08.252361Z"}],"ghsa":[{"id":"GHSA-c39v-8hrw-h448","title":"Chainlit contains a session hijacking vulnerability","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T18:34:16Z","modified":"2026-09-21T22:21:36Z","cvss":[{"version":"4.0","score":9.1,"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","level":"critical"},{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"high"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:41:19.455935Z"}],"nvd":[{"id":"CVE-2026-56104","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T16:16:40.227Z","modified":"2026-10-08T16:17:21.397Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":8.2,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T14:12:24.912854Z"}],"osv":[{"id":"CVE-2026-56104","title":"Chainlit \u003c 2.10.1 Session Hijacking via WebSocket Session Restoration","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T14:17:52.64Z","modified":"2026-11-09T02:47:23.197583934Z","cvss":[{"version":"4.0","score":8.8,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N","level":"high"}],"cwes":["CWE-862"],"updated_at":"2026-11-09T03:16:17.543303Z"},{"id":"GHSA-c39v-8hrw-h448","title":"Chainlit contains a session hijacking vulnerability","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-06-22T18:34:16Z","modified":"2026-10-01T17:56:10.751822436Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"high"},{"version":"4.0","score":9.1,"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","level":"critical"}],"cwes":["CWE-862"],"updated_at":"2026-11-02T15:46:44.571161Z"},{"id":"PYSEC-2026-4028","title":"Chainlit contains a session hijacking vulnerability","description":"Chainlit before 2.10.1 contains a session hijacking vulnerability that allows unauthenticated attackers to restore and inherit authenticated user sessions by presenting a valid sessionId during WebSocket session restoration without ownership verification. Attackers can exploit the restore_existing_session path to assume a victim's permissions and roles, enabling unauthorized invocation of tools and access to data restricted to the authenticated victim.","status":"published","published":"2026-10-01T16:38:28.448202Z","modified":"2026-10-01T17:45:05.547351343Z","cvss":[{"version":"3.1","score":7.4,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"high"},{"version":"4.0","score":9.1,"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","level":"critical"}],"updated_at":"2026-11-02T15:52:57.255153Z"}]}}
