{"id":"CVE-2026-126291","kind":"vulnerability","aliases":["CVE-2026-126291"],"related":[],"title":"NocoDB: SQL injection via member email lets registered users read secrets","description":"NocoDB before 2026.06.2 contains an SQL injection vulnerability in base-user.cte.utils.ts, which concatenates base members' email addresses into the SQL text of queries resolving user, created-by or last-modified-by fields. Registered users can set an email with a quoted local part containing a single quote to execute arbitrary SQL, exposing user records, API tokens and data-source credentials.","summary":"NocoDB builds SQL queries by concatenating base members' email addresses into the query text, so an email with a quoted local part containing a single quote breaks out of the string. A registered user who sets such an email can run arbitrary SQL and read user records, API tokens and data-source credentials.","severity":"high","cvss":8.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["mysql","nocodb","other","postgres","self-hosted"],"not_affected_if":["managed-hosting","no-self-registration"],"how_to_check":"- Check the NocoDB version in use; affected releases are those before `2026.06.2`.\n- Confirm whether any users can register or change their own email on the instance.","fix":"- NocoDB: move to `2026.06.2` or later.","status":"open","published_at":"2026-11-13T10:17:33+00:00","first_seen_at":"2026-11-13T10:47:14+00:00","triaged_at":"2026-11-13T10:49:02+00:00","updated_at":"2026-11-13T10:49:02+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-11-13T10:49:02Z","model":"claude-haiku-5-5","output":{"fix":"- NocoDB: move to `2026.06.2` or later.","reach":"internet","title":"NocoDB: SQL injection via member email lets registered users read secrets","impact":"high","summary":"NocoDB builds SQL queries by concatenating base members' email addresses into the query text, so an email with a quoted local part containing a single quote breaks out of the string. A registered user who sets such an email can run arbitrary SQL and read user records, API tokens and data-source credentials.","audience":"businesses","category":"other","nicknames":[],"who_cares":["nocodb","self-hosted","postgres","mysql"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker reads user records, API tokens and data-source credentials.","analyst_note":"","how_to_check":"- Check the NocoDB version in use; affected releases are those before `2026.06.2`.\n- Confirm whether any users can register or change their own email on the instance.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["managed-hosting","no-self-registration"],"who_is_affected":"Any self-hosted or managed NocoDB instance before `2026.06.2` where registered users can set an email address on a base. The flaw sits in the code that resolves user, created-by and last-modified-by fields, so instances with only trusted, invited members are still reachable by those members. Instances on a vendor-run cloud service are handled by the vendor's upgrade, but the team should confirm the running version.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000735,"input_tokens":4633,"output_tokens":544,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-126291':14A,17A '-2026':13A,16A '2026.06.2':81C 'address':34B,94C 'api':72B,134C 'arbitrari':66B,129C 'base':31B,91C 'base-user.cte.utils.ts':88C 'break':51B 'build':26B 'concaten':30B,90C 'contain':47B,82C,123C 'creat':104C 'created-bi':103C 'credenti':78B,140C 'cve':12A,15A 'data':76B,138C 'data-sourc':75B,137C 'email':6A,33B,41B,63B,93C,117C 'execut':128C 'expos':131C 'field':111C 'host':24B 'inject':3A,85C 'last':108C 'last-modified-bi':107C 'let':7A 'local':45B,121C 'member':5A,32B,92C 'modifi':109C 'mysql':18B 'nocodb':1A,19B,25B,79C 'part':46B,122C 'postgr':21B 'queri':28B,37B,100C 'quot':44B,50B,120C,126C 'read':10A,69B 'record':71B,133C 'regist':8A,57B,112C 'resolv':101C 'run':65B 'secret':11A 'self':23B 'self-host':22B 'set':60B,115C 'singl':49B,125C 'sourc':77B,139C 'sql':2A,27B,67B,84C,97C,130C 'string':55B 'text':38B,98C 'token':73B,135C 'user':9A,58B,70B,102C,113C,132C 'via':4A 'vulner':86C","nicknames":[],"mitigations":[],"who_affected":"Any self-hosted or managed NocoDB instance before `2026.06.2` where registered users can set an email address on a base. The flaw sits in the code that resolves user, created-by and last-modified-by fields, so instances with only trusted, invited members are still reachable by those members. Instances on a vendor-run cloud service are handled by the vendor's upgrade, but the team should confirm the running version.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","mysql","nocodb","other","postgres","selfhosted"],"campaign_type":null,"search_a":"'-126291':14A,17A '-2026':13A,16A 'cve':12A,15A 'email':6A 'inject':3A 'let':7A 'member':5A 'nocodb':1A 'read':10A 'regist':8A 'secret':11A 'sql':2A 'user':9A 'via':4A","search_b":"'address':34B 'api':72B 'arbitrari':66B 'base':31B 'break':51B 'build':26B 'concaten':30B 'contain':47B 'credenti':78B 'data':76B 'data-sourc':75B 'email':33B,41B,63B 'host':24B 'local':45B 'member':32B 'mysql':18B 'nocodb':19B,25B 'part':46B 'postgr':21B 'queri':28B,37B 'quot':44B,50B 'read':69B 'record':71B 'regist':57B 'run':65B 'self':23B 'self-host':22B 'set':60B 'singl':49B 'sourc':77B 'sql':27B,67B 'string':55B 'text':38B 'token':73B 'user':58B,70B","search_c":"'2026.06.2':81C 'address':94C 'api':134C 'arbitrari':129C 'base':91C 'base-user.cte.utils.ts':88C 'concaten':90C 'contain':82C,123C 'creat':104C 'created-bi':103C 'credenti':140C 'data':138C 'data-sourc':137C 'email':93C,117C 'execut':128C 'expos':131C 'field':111C 'inject':85C 'last':108C 'last-modified-bi':107C 'local':121C 'member':92C 'modifi':109C 'nocodb':79C 'part':122C 'queri':100C 'quot':120C,126C 'record':133C 'regist':112C 'resolv':101C 'set':115C 'singl':125C 'sourc':139C 'sql':84C,97C,130C 'text':98C 'token':135C 'user':102C,113C,132C 'vulner':86C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-27T10:06:42+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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-126291","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126291","severity":null,"published_at":"2026-11-13T10:17:33+00:00","modified_at":"2026-11-13T10:17:33+00:00","first_seen_at":"2026-11-13T10:47:14+00:00","fetched_at":"2026-11-13T10:47:14+00:00","note":null}],"documents":[{"id":144911,"url":"https://github.com/nocodb/nocodb/security/advisories/GHSA-8qgc-rxmx-p7cw","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-27T10:06:42+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":144912,"url":"https://www.vulncheck.com/advisories/nocodb-before-2026.06.2-sql-injection-via-user-email-in-base-user-query","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"}],"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"}