{"id":"CVE-2026-121436","kind":"vulnerability","aliases":["CVE-2026-121436"],"related":[],"title":"Froxlor: admins with customers_see_all can read every account's API key","description":"Froxlor from 2.3.8 before 2.3.15 contains an information disclosure vulnerability that allows administrators with customers_see_all to view every account's API key and secret through an unscoped WHERE 1 query in api_keys.php. Attackers can read the super administrator's apikey and secret from the detail modal and replay them to the API to gain super administrator control.","summary":"Froxlor versions from 2.3.8 before 2.3.15 let an administrator with the customers_see_all permission list every account's API key and secret through an unscoped database query in api_keys.php. An attacker who reads the super administrator's key and secret can replay them against the API to take full super administrator control.","severity":"high","cvss":8.6,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["froxlor","hosting","runtime","self-hosted"],"not_affected_if":["no-customers-see-all-admins","version-2.3.15-or-later"],"how_to_check":"- Check the installed Froxlor version in the admin panel or in the Froxlor source tree.\n- Review which administrator accounts have the `customers_see_all` permission.","fix":"- Upgrade Froxlor to `2.3.15` or later.","status":"open","published_at":"2026-11-03T15:17:34+00:00","first_seen_at":"2026-11-03T15:22:00+00:00","triaged_at":"2026-11-03T15:22:38+00:00","updated_at":"2026-11-03T15:22:38+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-11-03T15:22:38Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Froxlor to `2.3.15` or later.","reach":"network","title":"Froxlor: admins with customers_see_all can read every account's API key","impact":"high","summary":"Froxlor versions from 2.3.8 before 2.3.15 let an administrator with the customers_see_all permission list every account's API key and secret through an unscoped database query in api_keys.php. An attacker who reads the super administrator's key and secret can replay them against the API to take full super administrator control.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["froxlor","self-hosted","hosting"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker takes over the super administrator account and all hosted accounts","analyst_note":"","how_to_check":"- Check the installed Froxlor version in the admin panel or in the Froxlor source tree.\n- Review which administrator accounts have the `customers_see_all` permission.\n- unknown for any further checks the sources do not describe.","plain_action":"","needs_analyst":false,"not_affected_if":["version-2.3.15-or-later","no-customers-see-all-admins"],"who_is_affected":"Hosting teams running self-hosted Froxlor from 2.3.8 up to but not including 2.3.15 are exposed, and only administrators holding customers_see_all can exploit it. Installations on 2.3.15 or later, or with no administrators holding that permission, are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000692,"input_tokens":4187,"output_tokens":547,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-121436':16A,19A '-2026':15A,18A '1':109C '2.3.15':31B,83C '2.3.8':29B,81C 'account':10A,43B,99C 'admin':2A 'administr':34B,62B,77B,91C,118C,136C 'allow':90C 'api':12A,45B,72B,101C,132C 'api_keys.php':55B,112C 'apikey':120C 'attack':57B,113C 'contain':84C 'control':78B,137C 'custom':4A,37B,93C 'cve':14A,17A 'databas':52B 'detail':125C 'disclosur':87C 'everi':9A,42B,98C 'froxlor':1A,20B,26B,79C 'full':75B 'gain':134C 'host':21B,25B 'inform':86C 'key':13A,46B,64B,102C 'let':32B 'list':41B 'modal':126C 'permiss':40B 'queri':53B,110C 'read':8A,59B,115C 'replay':68B,128C 'runtim':22B 'secret':48B,66B,104C,122C 'see':5A,38B,94C 'self':24B 'self-host':23B 'super':61B,76B,117C,135C 'take':74B 'unscop':51B,107C 'version':27B 'view':97C 'vulner':88C","nicknames":[],"mitigations":[],"who_affected":"Hosting teams running self-hosted Froxlor from 2.3.8 up to but not including 2.3.15 are exposed, and only administrators holding customers_see_all can exploit it. Installations on 2.3.15 or later, or with no administrators holding that permission, are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["froxlor","high","hosting","runtime","selfhosted"],"first_public_at":"2026-10-20T07:24:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/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-121436","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121436","severity":null,"published_at":"2026-11-03T15:17:34+00:00","modified_at":"2026-11-03T15:17:35+00:00","first_seen_at":"2026-11-03T15:22:00+00:00","fetched_at":"2026-11-03T15:22:00+00:00","note":null}],"documents":[{"id":58397,"url":"https://github.com/froxlor/froxlor/security/advisories/GHSA-5fm2-8wxf-xc5v","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-20T07:24:56+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58398,"url":"https://www.vulncheck.com/advisories/froxlor-2.3.8-before-2.3.15-api-key-disclosure-via-api-keys-php","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}