{"id":"CVE-2026-123799","kind":"vulnerability","aliases":["CVE-2026-123799"],"related":[],"title":"SuperTokens Core: expired dashboard admin sessions stay valid until cleanup","description":"SuperTokens Core is an open source authentication server. From 11.0.0 until 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2, Dashboard.isValidUserSession treats any stored session row as valid without comparing DashboardSessionInfo.expiry to the current time. DashboardQueries.getSessionInfoWithSessionId also selects by app and session identifier without an expiry predicate, leaving the periodic DeleteExpiredDashboardSessions cleanup as the only expiration enforcement. An attacker who obtains a dashboard administrator session after its 30-day lifetime can continue using POST /recipe/dashboard/session/verify until the row is removed, and frequent Core restarts can prevent the 12-hour cleanup sweep from running. The stale session retains full dashboard read and write access, but the flaw does not provide a way to guess or acquire the random session identifier. This issue is fixed in versions 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2.","summary":"SuperTokens Core's dashboard accepts stored admin sessions without checking their expiry time, so a session stays usable past its 30-day lifetime until the periodic cleanup removes it. An attacker who already holds a dashboard administrator session after it expired keeps full dashboard read and write access.","severity":"high","cvss":7.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["authentication","package","self-hosted","supertokens"],"not_affected_if":["dashboard-disabled","managed-hosting","patched-version"],"how_to_check":"- Check the installed SuperTokens Core version against the affected ranges (from 11.0.0 until 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2).\n- Check whether the dashboard is reachable from the internet or only from a trusted network.","fix":"- Upgrade to `11.0.9`, `11.1.4`, `11.2.4`, `11.3.8`, `11.4.8`, `12.0.11`, or `12.1.2`, matching your release line.","status":"open","published_at":"2026-11-09T19:16:46+00:00","first_seen_at":"2026-11-09T19:28:14+00:00","triaged_at":"2026-11-09T19:29:49+00:00","updated_at":"2026-11-09T19:29:49+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-09T19:29:49Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade to `11.0.9`, `11.1.4`, `11.2.4`, `11.3.8`, `11.4.8`, `12.0.11`, or `12.1.2`, matching your release line.","reach":"network","title":"SuperTokens Core: expired dashboard admin sessions stay valid until cleanup","impact":"high","summary":"SuperTokens Core's dashboard accepts stored admin sessions without checking their expiry time, so a session stays usable past its 30-day lifetime until the periodic cleanup removes it. An attacker who already holds a dashboard administrator session after it expired keeps full dashboard read and write access.","audience":"businesses","category":"package","nicknames":[],"who_cares":["supertokens","self-hosted","authentication"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"expired admin session grants full dashboard read and write access","analyst_note":"","how_to_check":"- Check the installed SuperTokens Core version against the affected ranges (from 11.0.0 until 11.0.9, 11.1.4, 11.2.4, 11.3.8, 11.4.8, 12.0.11, and 12.1.2).\n- Check whether the dashboard is reachable from the internet or only from a trusted network.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["managed-hosting","patched-version","dashboard-disabled"],"who_is_affected":"Teams that run a self-hosted SuperTokens Core with the admin dashboard enabled and use the affected version ranges. The exposure needs an administrator session that has already expired and been captured, so teams without the dashboard or on a patched line can skip it.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"unknown"},"cost_usd":0.000806,"input_tokens":4971,"output_tokens":618,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-123799':13A,16A '-2026':12A,15A '/recipe/dashboard/session/verify':144C '11.0.0':80C '11.0.9':82C,195C '11.1.4':83C,196C '11.2.4':84C,197C '11.3.8':85C,198C '11.4.8':86C,199C '12':157C '12.0.11':87C,200C '12.1.2':89C,202C '30':43B,137C 'accept':27B 'access':70B,172C 'acquir':184C 'admin':5A,29B 'administr':59B,133C 'alreadi':55B 'also':106C 'app':109C 'attack':53B,128C 'authent':17B,77C 'check':32B 'cleanup':10A,49B,121C,159C 'compar':99C 'continu':141C 'core':2A,24B,72C,152C 'current':103C 'cve':11A,14A 'dashboard':4A,26B,58B,66B,132C,168C 'dashboard.isvalidusersession':90C 'dashboardqueries.getsessioninfowithsessionid':105C 'dashboardsessioninfo.expiry':100C 'day':44B,138C 'deleteexpireddashboardsess':120C 'enforc':126C 'expir':3A,63B,125C 'expiri':34B,115C 'fix':192C 'flaw':175C 'frequent':151C 'full':65B,167C 'guess':182C 'hold':56B 'host':21B 'hour':158C 'identifi':112C,188C 'issu':190C 'keep':64B 'leav':117C 'lifetim':45B,139C 'obtain':130C 'open':75C 'packag':18B 'past':41B 'period':48B,119C 'post':143C 'predic':116C 'prevent':155C 'provid':178C 'random':186C 'read':67B,169C 'remov':50B,149C 'restart':153C 'retain':166C 'row':95C,147C 'run':162C 'select':107C 'self':20B 'self-host':19B 'server':78C 'session':6A,30B,38B,60B,94C,111C,134C,165C,187C 'sourc':76C 'stale':164C 'stay':7A,39B 'store':28B,93C 'supertoken':1A,22B,23B,71C 'sweep':160C 'time':35B,104C 'treat':91C 'usabl':40B 'use':142C 'valid':8A,97C 'version':194C 'way':180C 'without':31B,98C,113C 'write':69B,171C","nicknames":[],"mitigations":[],"who_affected":"Teams that run a self-hosted SuperTokens Core with the admin dashboard enabled and use the affected version ranges. The exposure needs an administrator session that has already expired and been captured, so teams without the dashboard or on a patched line can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["authentication","high","package","selfhosted","supertokens"],"campaign_type":null,"search_a":"'-123799':13A,16A '-2026':12A,15A 'admin':5A 'cleanup':10A 'core':2A 'cve':11A,14A 'dashboard':4A 'expir':3A 'session':6A 'stay':7A 'supertoken':1A 'valid':8A","search_b":"'30':43B 'accept':27B 'access':70B 'admin':29B 'administr':59B 'alreadi':55B 'attack':53B 'authent':17B 'check':32B 'cleanup':49B 'core':24B 'dashboard':26B,58B,66B 'day':44B 'expir':63B 'expiri':34B 'full':65B 'hold':56B 'host':21B 'keep':64B 'lifetim':45B 'packag':18B 'past':41B 'period':48B 'read':67B 'remov':50B 'self':20B 'self-host':19B 'session':30B,38B,60B 'stay':39B 'store':28B 'supertoken':22B,23B 'time':35B 'usabl':40B 'without':31B 'write':69B","search_c":"'/recipe/dashboard/session/verify':144C '11.0.0':80C '11.0.9':82C,195C '11.1.4':83C,196C '11.2.4':84C,197C '11.3.8':85C,198C '11.4.8':86C,199C '12':157C '12.0.11':87C,200C '12.1.2':89C,202C '30':137C 'access':172C 'acquir':184C 'administr':133C 'also':106C 'app':109C 'attack':128C 'authent':77C 'cleanup':121C,159C 'compar':99C 'continu':141C 'core':72C,152C 'current':103C 'dashboard':132C,168C 'dashboard.isvalidusersession':90C 'dashboardqueries.getsessioninfowithsessionid':105C 'dashboardsessioninfo.expiry':100C 'day':138C 'deleteexpireddashboardsess':120C 'enforc':126C 'expir':125C 'expiri':115C 'fix':192C 'flaw':175C 'frequent':151C 'full':167C 'guess':182C 'hour':158C 'identifi':112C,188C 'issu':190C 'leav':117C 'lifetim':139C 'obtain':130C 'open':75C 'period':119C 'post':143C 'predic':116C 'prevent':155C 'provid':178C 'random':186C 'read':169C 'remov':149C 'restart':153C 'retain':166C 'row':95C,147C 'run':162C 'select':107C 'server':78C 'session':94C,111C,134C,165C,187C 'sourc':76C 'stale':164C 'store':93C 'supertoken':71C 'sweep':160C 'time':104C 'treat':91C 'use':142C 'valid':97C 'version':194C 'way':180C 'without':98C,113C 'write':171C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-09T19:16:46+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123799","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123799","severity":null,"published_at":"2026-11-09T19:16:46+00:00","modified_at":"2026-11-09T19:16:46+00:00","first_seen_at":"2026-11-09T19:28:14+00:00","fetched_at":"2026-11-09T19:28:14+00:00","note":null}],"documents":[{"id":109106,"url":"https://github.com/supertokens/supertokens-core/commit/0f4817152278b39fbf21b97c3795b4fc68c12c38","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109107,"url":"https://github.com/supertokens/supertokens-core/commit/4b315b2382c8eec2cde28fbda113597bffad8da5","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109108,"url":"https://github.com/supertokens/supertokens-core/commit/699d806b5fc77ee6343f8e48e0769dce8049b078","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109109,"url":"https://github.com/supertokens/supertokens-core/commit/8906b840669b28b3af7367cf18870db0044d0d18","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109110,"url":"https://github.com/supertokens/supertokens-core/commit/bd8eb93001cf814a8065e8f3cea755af267bc308","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109111,"url":"https://github.com/supertokens/supertokens-core/commit/ced1c913d53641e5eb8108caef110e55348b5401","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109112,"url":"https://github.com/supertokens/supertokens-core/commit/da0ec91d20ecbb68730741f8b0dec8c986b68877","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109113,"url":"https://github.com/supertokens/supertokens-core/commit/e72793ec5bd925fd3b9ff19328043dc2a03201bd","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":109114,"url":"https://github.com/supertokens/supertokens-core/releases/tag/v11.0.9","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":109115,"url":"https://github.com/supertokens/supertokens-core/releases/tag/v11.1.4","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":109116,"url":"https://github.com/supertokens/supertokens-core/releases/tag/v11.2.4","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":109117,"url":"https://github.com/supertokens/supertokens-core/releases/tag/v11.3.8","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}