pgEdge Postgres MCP Server: Login rate limit bypass via X-Forwarded-For
Summary
The HTTP transport of pgEdge Postgres MCP Server with authentication enabled takes the client address for login rate limiting from the leftmost X-Forwarded-For value, which the caller controls. An unauthenticated attacker can rotate this value to evade the rate limiter and continue password guessing, or send another user's address to consume that user's limiter bucket. Account lockout keyed on the username is not affected, but it is disabled by default.
Affected
- pgEdge pgedge-postgres-mcp (pgEdge Postgres MCP Server) versions before 1.1.0
- Only deployments using the nondefault HTTP transport with authentication enabled
- The published nginx configuration appends to X-Forwarded-For, which makes the issue reachable without operator misconfiguration
Fixed in
- Upgrade to version 1.1.0 or later
Workaround
- Unknown. No mitigation is documented beyond upgrading.
- Overwrite X-Forwarded-For at the reverse proxy with $remote_addr instead of appending to it
- Enable username-based account lockout (max_failed_attempts_before_lockout) as a second control, after testing for abuse
Exploitation
- No evidence of active exploitation found.
- CISA SSVC: exploitation none, automatable yes, technical impact partial.
- A public proof of concept could not be confirmed.
Our recommendation
- Upgrade to version 1.1.0 or later, together with the related fixes CVE-2026-125320 and CVE-2026-125322.
- Check whether the HTTP transport with authentication is enabled and whether it is reachable from the internet.
- Check the reverse proxy's handling of X-Forwarded-For and configure the client_ip setting after the upgrade.
- Monitor authentication logs for many failed logins from changing addresses.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-v347-v3w7-7fq9 github.com
- Fix commit 6a19e46 github.com
- Issue #204 github.com
- Pull request #205 github.com
- Strix CVE record CVE-2026-125321 www.strix.ai
- threatint CVE record CVE-2026-125321 cve.threatint.com
- pgEdge 1.1.0 server configuration reference docs.pgedge.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 11 Nov 2026, 12:41.
Original description (NVD)
pgEdge Postgres MCP Server enables SQL queries against PostgreSQL databases through Model Context Protocol compatible clients. Prior to 1.1.0, deployments exposing the nondefault HTTP transport with authentication enabled used the leftmost caller-supplied X-Forwarded-For value as the client address for login rate limiting. ExtractIPAddress in internal/auth/middleware.go supplied that value to IsAllowed and RecordFailedAttempt in internal/auth/rate_limiter.go, allowing an unauthenticated caller to rotate addresses to evade throttling or assert another user's address to consume that user's limiter bucket. The published nginx configuration appended rather than replaced X-Forwarded-For, making the issue reachable without an operator misconfiguration. Username-keyed account lockout did not use the client address, but shipped defaults disabled that separate control through MaxFailedAttemptsBeforeLockout: 0. This issue is fixed in version 1.1.0.
NVD references (4)
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
