{"id":"CVE-2026-112342","kind":"vulnerability","aliases":["CVE-2026-112342"],"related":[],"title":"Tandoor Recipes: stale permission cache lets users keep admin rights in other spaces","description":"Tandoor Recipes before 2.7.0 contains an improper cache-key design in cookbook/helper/permission_helper.py that allows authenticated users to retain stale group-based permissions across different spaces by exploiting a cache key keyed only on user id while omitting the active space, with the cached entry's TTL refreshed on every request. Attackers can create their own space to obtain an admin group designation, then switch their active space to a victim space where they hold lesser privileges, causing the stale cached admin decision to authorize elevated access and bypass group revocations or demotions across multiple permission classes and views.","summary":"Tandoor Recipes before 2.7.0 caches group permissions by user ID without the active space, so a cached admin decision carries over when a user switches spaces. An authenticated user can use this to reach elevated actions in a space where they were demoted or have lesser rights.","severity":"high","cvss":7.1,"epss":0.00377,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["multi-tenant","package","python","self-hosted","tandoor-recipes"],"not_affected_if":["single-space-deployment","version-2.7.0-or-later"],"how_to_check":"- Check the installed Tandoor version; affected if below `2.7.0`\n- Review `cookbook/helper/permission_helper.py` for a cache key built only from the user id","fix":"- Upgrade Tandoor Recipes to `2.7.0` or later\n- Until upgraded, restrict who holds accounts able to create spaces","status":"open","published_at":"2026-10-23T19:17:43+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","triaged_at":"2026-10-25T03:31:13+00:00","updated_at":"2026-10-25T12:38:50+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:31:13Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Tandoor Recipes to `2.7.0` or later\n- Until upgraded, restrict who holds accounts able to create spaces","reach":"internet","title":"Tandoor Recipes: stale permission cache lets users keep admin rights in other spaces","impact":"medium","summary":"Tandoor Recipes before 2.7.0 caches group permissions by user ID without the active space, so a cached admin decision carries over when a user switches spaces. An authenticated user can use this to reach elevated actions in a space where they were demoted or have lesser rights.","category":"package","nicknames":[],"who_cares":["tandoor-recipes","self-hosted","python","multi-tenant"],"confidence":0.7,"needs_auth":"yes","worst_case":"authenticated user gains admin actions in other spaces","analyst_note":"","how_to_check":"- Check the installed Tandoor version; affected if below `2.7.0`\n- Review `cookbook/helper/permission_helper.py` for a cache key built only from the user id","needs_analyst":false,"not_affected_if":["version-2.7.0-or-later","single-space-deployment"],"who_is_affected":"Self-hosted or managed Tandoor Recipes instances before 2.7.0 where users can hold accounts in more than one space, including users who can create their own space. Single-space instances with trusted users carry less exposure.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000596,"input_tokens":3417,"output_tokens":508,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112342':16A,19A '-2026':15A,18A '2.7.0':34B,81C 'access':165C 'across':102C,172C 'action':66B 'activ':43B,118C,145C 'admin':9A,48B,139C,160C 'allow':92C 'attack':130C 'authent':58B,93C 'author':163C 'base':100C 'bypass':167C 'cach':5A,35B,47B,86C,108C,122C,159C 'cache-key':85C 'carri':50B 'caus':156C 'class':175C 'contain':82C 'cookbook/helper/permission_helper.py':90C 'creat':132C 'cve':14A,17A 'decis':49B,161C 'demot':73B,171C 'design':88C,141C 'differ':103C 'elev':65B,164C 'entri':123C 'everi':128C 'exploit':106C 'group':36B,99C,140C,168C 'group-bas':98C 'hold':153C 'host':27B 'id':40B,114C 'improp':84C 'keep':8A 'key':87C,109C,110C 'lesser':76B,154C 'let':6A 'multi':21B 'multi-ten':20B 'multipl':173C 'obtain':137C 'omit':116C 'packag':23B 'permiss':4A,37B,101C,174C 'privileg':155C 'python':24B 'reach':64B 'recip':2A,30B,32B,79C 'refresh':126C 'request':129C 'retain':96C 'revoc':169C 'right':10A,77B 'self':26B 'self-host':25B 'space':13A,44B,56B,69B,104C,119C,135C,146C,150C 'stale':3A,97C,158C 'switch':55B,143C 'tandoor':1A,29B,31B,78C 'tandoor-recip':28B 'tenant':22B 'ttl':125C 'use':61B 'user':7A,39B,54B,59B,94C,113C 'victim':149C 'view':177C 'without':41B","nicknames":[],"mitigations":[],"who_affected":"Self-hosted or managed Tandoor Recipes instances before 2.7.0 where users can hold accounts in more than one space, including users who can create their own space. Single-space instances with trusted users carry less exposure.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-23T19:17:43+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/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","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112342","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112342","severity":null,"published_at":"2026-10-23T19:17:43+00:00","modified_at":"2026-10-23T21:17:21+00:00","first_seen_at":"2026-10-23T21:57:34+00:00","fetched_at":"2026-10-23T22:29:04+00:00","note":null},{"source":"epss","external_id":"CVE-2026-112342","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-112342","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:50+00:00","fetched_at":"2026-10-25T12:38:50+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}