{"id":"CVE-2026-125323","kind":"vulnerability","aliases":["CVE-2026-125323"],"related":[],"title":"pgEdge Control Plane: generated database access rules let local users bypass passwords","description":"pgEdge Control Plane is a distributed application for managing and orchestrating Postgres databases across multiple hosts. From 0.1.0 to 0.10.1, generated pg_hba.conf files began with hard-coded trust entries for Unix-socket and loopback connections. Because PostgreSQL evaluates the file from top to bottom, those entries also preempted operator-supplied rules in the pg_hba_conf field. Under the systemd orchestrator, any unprivileged operating-system account on a database host could authenticate as any PostgreSQL role, including the superuser, without credentials and obtain full control of the host's databases. Under Docker Swarm, reaching the container-local socket or loopback interface required code execution inside the database container. Publishing the PostgreSQL port to the host did not expose these trust rules because host connections did not appear to originate from 127.0.0.1 or ::1. This issue is fixed in version 0.11.0.","summary":"pgEdge Control Plane versions 0.1.0 through 0.10.1 generate PostgreSQL access files that start with trust entries for local socket and loopback connections, and those entries override operator-set rules. Under the systemd orchestrator, any unprivileged operating-system account on a database host can log in as any PostgreSQL role, including the superuser, without a password.","severity":"high","cvss":7.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"pgEdge Control Plane","fixed":[],"affected":"","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["infrastructure","pgedge","postgresql","self-hosted","systemd"],"not_affected_if":["docker-swarm-only","not-using-control-plane"],"how_to_check":"- Check the installed Control Plane version and whether it is `0.10.1` or earlier.\n- Confirm which orchestrator is in use: systemd or Docker Swarm.\n- Inspect the generated `pg_hba.conf` for `trust` entries on Unix-socket and loopback lines placed above custom rules.","fix":"- pgEdge Control Plane: move to `0.11.0`.","status":"open","published_at":"2026-11-10T18:17:33+00:00","first_seen_at":"2026-11-10T18:22:56+00:00","triaged_at":"2026-11-10T18:24:31+00:00","updated_at":"2026-11-10T18:24:31+00:00","category":"infrastructure","confidence":0.8,"triage":{"at":"2026-11-10T18:24:31Z","model":"claude-haiku-5-5","output":{"fix":"- pgEdge Control Plane: move to `0.11.0`.","reach":"local","title":"pgEdge Control Plane: generated database access rules let local users bypass passwords","impact":"high","summary":"pgEdge Control Plane versions 0.1.0 through 0.10.1 generate PostgreSQL access files that start with trust entries for local socket and loopback connections, and those entries override operator-set rules. Under the systemd orchestrator, any unprivileged operating-system account on a database host can log in as any PostgreSQL role, including the superuser, without a password.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["pgedge","postgresql","self-hosted","systemd"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Local user gains PostgreSQL superuser access and full database control","analyst_note":"","how_to_check":"- Check the installed Control Plane version and whether it is `0.10.1` or earlier.\n- Confirm which orchestrator is in use: systemd or Docker Swarm.\n- Inspect the generated `pg_hba.conf` for `trust` entries on Unix-socket and loopback lines placed above custom rules.","plain_action":"","product_name":"pgEdge Control Plane","needs_analyst":false,"not_affected_if":["docker-swarm-only","not-using-control-plane"],"who_is_affected":"Teams running pgEdge Control Plane from 0.1.0 through 0.10.1 to manage PostgreSQL. The systemd orchestrator is the most exposed, since any local OS account on a database host can gain superuser access. Under Docker Swarm the attacker must first run code inside the database container, so exposure is lower. Teams not running pgEdge Control Plane can skip this.","user_interaction":"no","product_ecosystem":"vendor","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000814,"input_tokens":4801,"output_tokens":667,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-125323':15A,18A '-2026':14A,17A '0.1.0':33B,103C '0.10.1':35B,105C '0.11.0':230C '1':223C '127.0.0.1':221C 'access':6A,38B 'account':68B,155C 'across':99C 'also':134C 'appear':217C 'applic':92C 'authent':161C 'began':109C 'bottom':131C 'bypass':11A 'code':113C,193C 'conf':144C 'connect':50B,122C,214C 'contain':186C,198C 'container-loc':185C 'control':2A,20A,30B,87C,174C 'could':160C 'credenti':170C 'cve':13A,16A 'databas':5A,71B,98C,158C,179C,197C 'distribut':91C 'docker':181C 'entri':44B,53B,115C,133C 'evalu':125C 'execut':194C 'expos':208C 'field':145C 'file':39B,108C,127C 'fix':227C 'full':173C 'generat':4A,36B,106C 'hard':112C 'hard-cod':111C 'hba':143C 'host':27B,72B,101C,159C,177C,205C,213C 'includ':80B,166C 'infrastructur':22B 'insid':195C 'interfac':191C 'issu':225C 'let':8A 'local':9A,46B,187C 'log':74B 'loopback':49B,121C,190C 'manag':94C 'multipl':100C 'obtain':172C 'oper':56B,66B,137C,153C 'operating-system':65B,152C 'operator-set':55B 'operator-suppli':136C 'orchestr':62B,96C,149C 'origin':219C 'overrid':54B 'password':12A,85B 'pg':142C 'pg_hba.conf':107C 'pgedg':1A,23B,29B,86C 'pgedge':19A 'plane':3A,21A,31B,88C 'port':202C 'postgr':97C 'postgresql':24B,37B,78B,124C,164C,201C 'preempt':135C 'publish':199C 'reach':183C 'requir':192C 'role':79B,165C 'rule':7A,58B,139C,211C 'self':26B 'self-host':25B 'set':57B 'socket':47B,119C,188C 'start':41B 'superus':82B,168C 'suppli':138C 'swarm':182C 'system':67B,154C 'systemd':28B,61B,148C 'top':129C 'trust':43B,114C,210C 'unix':118C 'unix-socket':117C 'unprivileg':64B,151C 'user':10A 'version':32B,229C 'without':83B,169C","nicknames":[],"mitigations":[],"who_affected":"Teams running pgEdge Control Plane from 0.1.0 through 0.10.1 to manage PostgreSQL. The systemd orchestrator is the most exposed, since any local OS account on a database host can gain superuser access. Under Docker Swarm the attacker must first run code inside the database container, so exposure is lower. Teams not running pgEdge Control Plane can skip this.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["controlplane","pgedgecontrolplane"],"ptokens":["control","pgedge","plane"],"labels":["high","infrastructure","pgedge","postgresql","selfhosted","systemd","vendor"],"campaign_type":null,"search_a":"'-125323':15A,18A '-2026':14A,17A 'access':6A 'bypass':11A 'control':2A,20A 'cve':13A,16A 'databas':5A 'generat':4A 'let':8A 'local':9A 'password':12A 'pgedg':1A 'pgedge':19A 'plane':3A,21A 'rule':7A 'user':10A","search_b":"'0.1.0':33B '0.10.1':35B 'access':38B 'account':68B 'connect':50B 'control':30B 'databas':71B 'entri':44B,53B 'file':39B 'generat':36B 'host':27B,72B 'includ':80B 'infrastructur':22B 'local':46B 'log':74B 'loopback':49B 'oper':56B,66B 'operating-system':65B 'operator-set':55B 'orchestr':62B 'overrid':54B 'password':85B 'pgedg':23B,29B 'plane':31B 'postgresql':24B,37B,78B 'role':79B 'rule':58B 'self':26B 'self-host':25B 'set':57B 'socket':47B 'start':41B 'superus':82B 'system':67B 'systemd':28B,61B 'trust':43B 'unprivileg':64B 'version':32B 'without':83B","search_c":"'0.1.0':103C '0.10.1':105C '0.11.0':230C '1':223C '127.0.0.1':221C 'account':155C 'across':99C 'also':134C 'appear':217C 'applic':92C 'authent':161C 'began':109C 'bottom':131C 'code':113C,193C 'conf':144C 'connect':122C,214C 'contain':186C,198C 'container-loc':185C 'control':87C,174C 'could':160C 'credenti':170C 'databas':98C,158C,179C,197C 'distribut':91C 'docker':181C 'entri':115C,133C 'evalu':125C 'execut':194C 'expos':208C 'field':145C 'file':108C,127C 'fix':227C 'full':173C 'generat':106C 'hard':112C 'hard-cod':111C 'hba':143C 'host':101C,159C,177C,205C,213C 'includ':166C 'insid':195C 'interfac':191C 'issu':225C 'local':187C 'loopback':121C,190C 'manag':94C 'multipl':100C 'obtain':172C 'oper':137C,153C 'operating-system':152C 'operator-suppli':136C 'orchestr':96C,149C 'origin':219C 'pg':142C 'pg_hba.conf':107C 'pgedg':86C 'plane':88C 'port':202C 'postgr':97C 'postgresql':124C,164C,201C 'preempt':135C 'publish':199C 'reach':183C 'requir':192C 'role':165C 'rule':139C,211C 'socket':119C,188C 'superus':168C 'suppli':138C 'swarm':182C 'system':154C 'systemd':148C 'top':129C 'trust':114C,210C 'unix':118C 'unix-socket':117C 'unprivileg':151C 'version':229C 'without':169C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-28T16:48:30+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-125323","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-125323","severity":null,"published_at":"2026-11-10T18:17:33+00:00","modified_at":"2026-11-10T18:17:33+00:00","first_seen_at":"2026-11-10T18:22:56+00:00","fetched_at":"2026-11-10T18:22:56+00:00","note":null}],"documents":[{"id":116905,"url":"https://github.com/pgEdge/control-plane/commit/88659f7388fc6c86125e60475aa83810171145b7","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":116906,"url":"https://github.com/pgEdge/control-plane/releases/tag/v0.11.0","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":116907,"url":"https://github.com/pgEdge/control-plane/security/advisories/GHSA-vq9p-w6wv-cr25","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-28T16:48:30+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: 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"}