{"id":"CVE-2026-116321","kind":"vulnerability","aliases":["CVE-2026-116321"],"related":[],"title":"PostgreSQL: array element assignment can leak server memory to database users","description":"Improper null termination in PostgreSQL array element assignment allows a database user to disclose server memory, via changing the final byte of a fixed-length name value to a nonzero byte and passing it to code that treats the value as a C string.  Versions before PostgreSQL 18.7, 17.12, 16.16, 15.20, and 14.25 are affected.","summary":"PostgreSQL does not null-terminate a fixed-length name value after array element assignment, so a database user can make code read past the value. An attacker with database access can disclose server memory.","severity":"medium","cvss":4.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["managed-database","postgresql","runtime","self-hosted"],"not_affected_if":["no-untrusted-db-users","patched-version"],"how_to_check":"- Run `SELECT version();` in psql and compare against the fixed releases below.\n- Check whether the server runs a PostgreSQL version before `18.7`, `17.12`, `16.16`, `15.20`, or `14.25`.","fix":"- PostgreSQL `18.7`\n- PostgreSQL `17.12`\n- PostgreSQL `16.16`\n- PostgreSQL `15.20`\n- PostgreSQL `14.25`","status":"open","published_at":"2026-11-12T15:17:40+00:00","first_seen_at":"2026-11-12T15:41:54+00:00","triaged_at":"2026-11-12T15:44:02+00:00","updated_at":"2026-11-12T15:44:02+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-12T15:44:02Z","model":"claude-haiku-5-5","output":{"fix":"- PostgreSQL `18.7`\n- PostgreSQL `17.12`\n- PostgreSQL `16.16`\n- PostgreSQL `15.20`\n- PostgreSQL `14.25`","reach":"network","title":"PostgreSQL: array element assignment can leak server memory to database users","impact":"low","summary":"PostgreSQL does not null-terminate a fixed-length name value after array element assignment, so a database user can make code read past the value. An attacker with database access can disclose server memory.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["postgresql","self-hosted","managed-database"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker reads server memory through a database user account","analyst_note":"","how_to_check":"- Run `SELECT version();` in psql and compare against the fixed releases below.\n- Check whether the server runs a PostgreSQL version before `18.7`, `17.12`, `16.16`, `15.20`, or `14.25`.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["patched-version","no-untrusted-db-users"],"who_is_affected":"Any PostgreSQL server on a version before 18.7, 17.12, 16.16, 15.20 or 14.25 is affected. The attacker must be a database user who can run SQL, so exposure depends on who holds database accounts. Servers where only trusted application roles can connect are at lower risk.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000733,"input_tokens":4563,"output_tokens":554,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-116321':14A,17A '-2026':13A,16A '14.25':115C '15.20':113C '16.16':112C '17.12':111C '18.7':110C 'access':57B 'affect':117C 'allow':70C 'array':2A,39B,67C 'assign':4A,41B,69C 'attack':54B 'byte':82C,93C 'c':105C 'chang':79C 'code':48B,98C 'cve':12A,15A 'databas':10A,20B,44B,56B,72C 'disclos':59B,75C 'element':3A,40B,68C 'final':81C 'fix':34B,86C 'fixed-length':33B,85C 'host':25B 'improp':62C 'leak':6A 'length':35B,87C 'make':47B 'manag':19B 'managed-databas':18B 'memori':8A,61B,77C 'name':36B,88C 'nonzero':92C 'null':30B,63C 'null-termin':29B 'pass':95C 'past':50B 'postgresql':1A,21B,26B,66C,109C 'read':49B 'runtim':22B 'self':24B 'self-host':23B 'server':7A,60B,76C 'string':106C 'termin':31B,64C 'treat':100C 'user':11A,45B,73C 'valu':37B,52B,89C,102C 'version':107C 'via':78C","nicknames":[],"mitigations":[],"who_affected":"Any PostgreSQL server on a version before 18.7, 17.12, 16.16, 15.20 or 14.25 is affected. The attacker must be a database user who can run SQL, so exposure depends on who holds database accounts. Servers where only trusted application roles can connect are at lower risk.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["manageddatabase","medium","postgresql","runtime","selfhosted"],"campaign_type":null,"search_a":"'-116321':14A,17A '-2026':13A,16A 'array':2A 'assign':4A 'cve':12A,15A 'databas':10A 'element':3A 'leak':6A 'memori':8A 'postgresql':1A 'server':7A 'user':11A","search_b":"'access':57B 'array':39B 'assign':41B 'attack':54B 'code':48B 'databas':20B,44B,56B 'disclos':59B 'element':40B 'fix':34B 'fixed-length':33B 'host':25B 'length':35B 'make':47B 'manag':19B 'managed-databas':18B 'memori':61B 'name':36B 'null':30B 'null-termin':29B 'past':50B 'postgresql':21B,26B 'read':49B 'runtim':22B 'self':24B 'self-host':23B 'server':60B 'termin':31B 'user':45B 'valu':37B,52B","search_c":"'14.25':115C '15.20':113C '16.16':112C '17.12':111C '18.7':110C 'affect':117C 'allow':70C 'array':67C 'assign':69C 'byte':82C,93C 'c':105C 'chang':79C 'code':98C 'databas':72C 'disclos':75C 'element':68C 'final':81C 'fix':86C 'fixed-length':85C 'improp':62C 'length':87C 'memori':77C 'name':88C 'nonzero':92C 'null':63C 'pass':95C 'postgresql':66C,109C 'server':76C 'string':106C 'termin':64C 'treat':100C 'user':73C 'valu':89C,102C 'version':107C 'via':78C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-12T15:17:40+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","cvss_by":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116321","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116321","severity":null,"published_at":"2026-11-12T15:17:40+00:00","modified_at":"2026-11-12T15:17:40+00:00","first_seen_at":"2026-11-12T15:41:54+00:00","fetched_at":"2026-11-12T15:41:54+00:00","note":null}],"documents":[],"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"}