{"id":8907,"date":"2026-11-13T20:16:25","date_gmt":"2026-11-13T20:16:25","guid":{"rendered":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass"},"modified":"2026-11-13T20:16:25","modified_gmt":"2026-11-13T20:16:25","slug":"cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","status":"publish","type":"post","link":"https:\/\/i10x.ai\/news\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","title":{"rendered":"CVE-2026-125321: pgEdge Postgres MCP Server login rate limiting bypassed via X-Forwarded-For"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u26a1 Quick Take<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>What:<\/strong> CVE-2026-125321 in pgEdge Postgres MCP Server allowed attackers to bypass login rate limiting by spoofing the X-Forwarded-For header.<\/li><li><strong>Who is affected:<\/strong> Deployments of version 1.0.0 or earlier exposing the HTTP transport with authentication enabled. The HTTP transport is off by default.<\/li><li><strong>What to do:<\/strong> Upgrade to version 1.1.0 or later and review proxy configuration to ensure client IP resolution matches your deployment.<\/li><li><strong>Severity:<\/strong> CVSS 6.5 (Medium). Attackers could perform unlimited password guessing or temporarily block legitimate users.<\/li><li><strong>Fixed:<\/strong> Version 1.1.0 resolves client addresses from the connection and adds a trusted-proxies configuration block.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">In plain English<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A security flaw in pgEdge Postgres MCP Server let attackers trick the login system by sending fake IP addresses in a header called X-Forwarded-For. This meant they could guess passwords as many times as they wanted without being slowed down, or they could block real users from logging in by pretending to be them. The problem only affected servers that had the HTTP mode turned on with login protection enabled (HTTP mode is off by default). The company fixed this in version 1.1.0 by making the server use the real connection address instead of trusting what the attacker sends. If you run this server with HTTP mode on, update to 1.1.0 and check your proxy settings.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What happened<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The pgEdge Postgres MCP Server, which enables SQL queries against PostgreSQL databases through Model Context Protocol compatible clients, contained a vulnerability in its login rate limiting mechanism. Prior to version 1.1.0, deployments exposing the non-default HTTP transport with authentication enabled used the leftmost caller-supplied X-Forwarded-For value as the client address for login rate limiting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The function ExtractIPAddress in internal\/auth\/middleware.go read the leftmost entry of the X-Forwarded-For header first, which is precisely the part of that header a client can set for itself. This value was then supplied to IsAllowed and RecordFailedAttempt in internal\/auth\/rate_limiter.go, allowing an unauthenticated caller to rotate addresses to evade throttling entirely or assert another user&#8217;s address to consume that user&#8217;s limiter bucket.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The published nginx configuration examples in the project documentation used $proxy_add_x_forwarded_for, which appends to the caller&#8217;s value rather than replacing it. This made the vulnerability reachable without any operator misconfiguration. A client sending X-Forwarded-For: 9.9.9.9 would arrive as 9.9.9.9, real client, and the server would return 9.9.9.9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The resolved address reached exactly two consumers: the login rate limiter and one request log line. The username-keyed account lockout was not affected because it is keyed on the username rather than the address.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What you should do<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Upgrade to version 1.1.0 or later. The fix resolves the client address from the connection by default rather than from a caller-supplied header.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you terminate TLS or proxy in front of the server, configure the new http.client_ip block to match your deployment. The configuration allows you to specify trusted proxies:<\/p>\n\n\n\n<figure class=\"nx-code\" data-lang=\"yaml\"><div class=\"nx-code__bar\"><span class=\"nx-code__label\">http.client_ip \u00b7 YAML<\/span><button type=\"button\" class=\"nx-code__copy\" aria-label=\"Copy code\" onclick=\"(function(b){var t=b.closest('.nx-code').querySelector('code').innerText;navigator.clipboard.writeText(t).then(function(){var o=b.textContent;b.textContent='Copied';setTimeout(function(){b.textContent=o},1500)})})(this)\">Copy<\/button><\/div><pre class=\"nx-code__pre nx-code__pre--nums\" style=\"--nx-ln-start:1\" tabindex=\"0\"><code class=\"language-yaml\"><span class=\"nx-code__line\">http:<\/span>\n<span class=\"nx-code__line\">  client_ip:<\/span>\n<span class=\"nx-code__line\">    source: header<\/span>\n<span class=\"nx-code__line\">    header: X-Real-IP<\/span>\n<span class=\"nx-code__line\">    trusted_proxies:<\/span>\n<span class=\"nx-code__line\">      - 192.0.2.0\/24<\/span><\/code><\/pre><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The header is honored only when the peer matches trusted_proxies, and X-Forwarded-For is walked from right to left past trusted entries. Starting with source: header and no trusted proxies is a startup error rather than a silent fallback.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The updated nginx examples in the documentation now set X-Forwarded-For to $remote_addr rather than appending to it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What it means<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This vulnerability gave attackers two distinct abilities. First, they could evade the throttle entirely by varying the header on each attempt, meaning the limit was never reached and password guessing proceeded unthrottled. Second, they could throttle somebody else by asserting a victim&#8217;s address, failing the configured number of attempts, and causing the victim&#8217;s own requests to be refused for the length of the window.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The CVSS score of 6.5 reflects Medium severity with Low confidentiality and availability impact. No account lockout occurred because lockout is a separate, username-keyed mechanism that defaults to off (MaxFailedAttemptsBeforeLockout: 0).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fix ensures that client addresses come from the connection by default, which is correct for a server clients reach directly and cannot be influenced by the caller. Resolution happens once per request in middleware, so the rate limiter and the request log agree on where a request came from.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/pgEdge\/pgedge-postgres-mcp\/security\/advisories\/GHSA-v347-v3w7-7fq9\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Security Advisory GHSA-v347-v3w7-7fq9<\/a><\/li><li><a href=\"https:\/\/github.com\/pgEdge\/pgedge-postgres-mcp\/issues\/204\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Issue #204<\/a><\/li><li><a href=\"https:\/\/github.com\/pgEdge\/pgedge-postgres-mcp\/pull\/205\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Pull Request #205<\/a><\/li><li><a href=\"https:\/\/github.com\/pgEdge\/pgedge-postgres-mcp\/commit\/6a19e46a240b9f4661a4a253811948dd75c4077e\" target=\"_blank\" rel=\"noreferrer noopener\">Fix commit 6a19e46<\/a><\/li><li><a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2026-125321\" target=\"_blank\" rel=\"noreferrer noopener\">NVD CVE-2026-125321<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A vulnerability in pgEdge Postgres MCP Server allowed unauthenticated attackers to evade login rate limiting by manipulating the X-Forwarded-For header, enabling unlimited password guessing attempts.<\/p>\n","protected":false},"author":2,"featured_media":8906,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"paper_title":"","paper_url":"","pdf_url":"","doi":"","arxiv_id":"","authors":"","institutions":"","paper_date":"","venue":"","peer_reviewed":false,"code_url":"","data_url":"","funding_coi":"","figure_license":"","paper_license":"","replication":"","study_models":"","study_sample":"","footnotes":"","_yoast_wpseo_primary_category":"65","_nx_sec_severity":"medium","_nx_sec_affected":"pgEdge Postgres MCP Server versions 1.0.0 and earlier with HTTP transport and authentication enabled","_nx_sec_status":"patch-available","_nx_sec_kicker":"ALERT: Password guessing throttle bypassed in pgEdge MCP Server","_nx_sec_type":"mcp","_nx_sec_vendor":"pgEdge","_nx_sec_fixed":"1.1.0","_nx_sec_action":""},"categories":[65,12,28],"tags":[],"companies":[],"products":[],"class_list":["post-8907","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-security","category-policy-safety","category-security-defense"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CVE-2026-125321: pgEdge MCP rate limit bypass fixed<\/title>\n<meta name=\"description\" content=\"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CVE-2026-125321: pgEdge MCP rate limit bypass fixed\" \/>\n<meta property=\"og:description\" content=\"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\" \/>\n<meta property=\"og:site_name\" content=\"i10X News\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-13T20:16:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i10xnews.kinsta.cloud\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1344\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Christopher Ort\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/10\/i10x-news-og-default-1200x630-1.png\" \/>\n<meta name=\"twitter:creator\" content=\"@i10x_ai\" \/>\n<meta name=\"twitter:site\" content=\"@i10x_ai\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christopher Ort\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\"},\"author\":{\"name\":\"Christopher Ort\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#\\\/schema\\\/person\\\/d410bb7ee72febefca2c9c369939219a\"},\"headline\":\"CVE-2026-125321: pgEdge Postgres MCP Server login rate limiting bypassed via X-Forwarded-For\",\"datePublished\":\"2026-11-13T20:16:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\"},\"wordCount\":716,\"publisher\":{\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp\",\"articleSection\":[\"AI Security\",\"Policy &amp; Safety\",\"Security &amp; Defense\"],\"inLanguage\":\"en-US\",\"dateModified\":\"2026-11-13T20:16:25+00:00\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\",\"url\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\",\"name\":\"CVE-2026-125321: pgEdge MCP rate limit bypass fixed\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp\",\"datePublished\":\"2026-11-13T20:16:25+00:00\",\"description\":\"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage\",\"url\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp\",\"contentUrl\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp\",\"width\":1344,\"height\":768,\"caption\":\"Image: AI-generated, i10X\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/i10x.ai\\\/news\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CVE-2026-125321: pgEdge Postgres MCP Server login rate limiting bypassed via X-Forwarded-For\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#website\",\"url\":\"https:\\\/\\\/i10x.ai\\\/news\",\"name\":\"i10X News\",\"description\":\"Stay updated with the latest news and announcements from i10X.\",\"publisher\":{\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/i10x.ai\\\/news?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#organization\",\"name\":\"i10X\",\"url\":\"https:\\\/\\\/i10x.ai\\\/news\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/i10x-logo-180.png\",\"contentUrl\":\"https:\\\/\\\/i10xnews.kinsta.cloud\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/i10x-logo-180.png\",\"width\":180,\"height\":180,\"caption\":\"i10X\"},\"image\":{\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/i10x_ai\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/i10x-ai\",\"https:\\\/\\\/instagram.com\\\/i10x.ai\",\"https:\\\/\\\/www.youtube.com\\\/@i10X_ai_official\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#\\\/schema\\\/person\\\/d410bb7ee72febefca2c9c369939219a\",\"name\":\"Christopher Ort\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/christopher-ort-192.webp\",\"url\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/christopher-ort-192.webp\",\"contentUrl\":\"https:\\\/\\\/i10x.ai\\\/news\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/christopher-ort-192.webp\",\"caption\":\"Christopher Ort\"},\"description\":\"Christopher Ort handles SEO, AI agent workflows and PR & partnerships at i10x.ai, the all-in-one AI workspace built by i10X Global Pte. Ltd. in Singapore. He is a graduate of Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg (FAU). He is the author of \u201cThe Style Penalty\u201d, a study published on SSRN that analyses 1,576 evaluation decisions by four frontier AI models to show how AI-written CVs fare in automated hiring screens; the research has been covered by heise online and t3n.\",\"url\":\"https:\\\/\\\/i10x.ai\\\/news\\\/author\\\/christopher-ort\",\"sameAs\":[\"https:\\\/\\\/i10x.ai\\\/blog\\\/author\\\/christopher-ort\"],\"worksFor\":{\"@id\":\"https:\\\/\\\/i10x.ai\\\/news\\\/#organization\"},\"alumniOf\":{\"@type\":\"EducationalOrganization\",\"name\":\"Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg (FAU)\",\"url\":\"https:\\\/\\\/www.fau.eu\"},\"subjectOf\":[{\"@type\":\"CreativeWork\",\"url\":\"https:\\\/\\\/papers.ssrn.com\\\/abstract=7426699\",\"name\":\"The Style Penalty: How AI Resume-Writing Tools Shape Outcomes in Automated Hiring Screens\"},{\"@type\":\"CreativeWork\",\"url\":\"https:\\\/\\\/www.heise.de\\\/news\\\/KI-Chatbots-bewerten-KI-Lebenslaeufe-Claude-findet-sich-besser-als-GPT-11317531.html\",\"name\":\"KI-Chatbots bewerten KI-Lebensl\u00e4ufe: Claude findet sich besser als GPT\"},{\"@type\":\"CreativeWork\",\"url\":\"https:\\\/\\\/t3n.de\\\/news\\\/bewerbung-schreiben-ki-5-fehler-1747190\\\/\",\"name\":\"Bewerbung mit KI schreiben: Diese 5 Fehler solltet ihr laut Studien vermeiden\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CVE-2026-125321: pgEdge MCP rate limit bypass fixed","description":"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","og_locale":"en_US","og_type":"article","og_title":"CVE-2026-125321: pgEdge MCP rate limit bypass fixed","og_description":"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.","og_url":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","og_site_name":"i10X News","article_published_time":"2026-11-13T20:16:25+00:00","og_image":[{"width":1344,"height":768,"url":"https:\/\/i10xnews.kinsta.cloud\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp","type":"image\/webp"}],"author":"Christopher Ort","twitter_card":"summary_large_image","twitter_image":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/10\/i10x-news-og-default-1200x630-1.png","twitter_creator":"@i10x_ai","twitter_site":"@i10x_ai","twitter_misc":{"Written by":"Christopher Ort","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#article","isPartOf":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass"},"author":{"name":"Christopher Ort","@id":"https:\/\/i10x.ai\/news\/#\/schema\/person\/d410bb7ee72febefca2c9c369939219a"},"headline":"CVE-2026-125321: pgEdge Postgres MCP Server login rate limiting bypassed via X-Forwarded-For","datePublished":"2026-11-13T20:16:25+00:00","mainEntityOfPage":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass"},"wordCount":716,"publisher":{"@id":"https:\/\/i10x.ai\/news\/#organization"},"image":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage"},"thumbnailUrl":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp","articleSection":["AI Security","Policy &amp; Safety","Security &amp; Defense"],"inLanguage":"en-US","dateModified":"2026-11-13T20:16:25+00:00"},{"@type":"WebPage","@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","url":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass","name":"CVE-2026-125321: pgEdge MCP rate limit bypass fixed","isPartOf":{"@id":"https:\/\/i10x.ai\/news\/#website"},"primaryImageOfPage":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage"},"image":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage"},"thumbnailUrl":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp","datePublished":"2026-11-13T20:16:25+00:00","description":"CVE-2026-125321 let attackers bypass login rate limiting in pgEdge Postgres MCP Server by spoofing X-Forwarded-For headers. Fixed in version 1.1.0.","breadcrumb":{"@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#primaryimage","url":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp","contentUrl":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/11\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass-title.webp","width":1344,"height":768,"caption":"Image: AI-generated, i10X"},{"@type":"BreadcrumbList","@id":"https:\/\/i10xnews.kinsta.cloud\/cve-2026-125321-pgedge-postgres-mcp-server-rate-limit-bypass#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/i10x.ai\/news"},{"@type":"ListItem","position":2,"name":"CVE-2026-125321: pgEdge Postgres MCP Server login rate limiting bypassed via X-Forwarded-For"}]},{"@type":"WebSite","@id":"https:\/\/i10x.ai\/news\/#website","url":"https:\/\/i10x.ai\/news","name":"i10X News","description":"Stay updated with the latest news and announcements from i10X.","publisher":{"@id":"https:\/\/i10x.ai\/news\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/i10x.ai\/news?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/i10x.ai\/news\/#organization","name":"i10X","url":"https:\/\/i10x.ai\/news\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i10x.ai\/news\/#\/schema\/logo\/image\/","url":"https:\/\/i10xnews.kinsta.cloud\/wp-content\/uploads\/2026\/10\/i10x-logo-180.png","contentUrl":"https:\/\/i10xnews.kinsta.cloud\/wp-content\/uploads\/2026\/10\/i10x-logo-180.png","width":180,"height":180,"caption":"i10X"},"image":{"@id":"https:\/\/i10x.ai\/news\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/i10x_ai","https:\/\/www.linkedin.com\/company\/i10x-ai","https:\/\/instagram.com\/i10x.ai","https:\/\/www.youtube.com\/@i10X_ai_official"]},{"@type":"Person","@id":"https:\/\/i10x.ai\/news\/#\/schema\/person\/d410bb7ee72febefca2c9c369939219a","name":"Christopher Ort","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/10\/christopher-ort-192.webp","url":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/10\/christopher-ort-192.webp","contentUrl":"https:\/\/i10x.ai\/news\/wp-content\/uploads\/2026\/10\/christopher-ort-192.webp","caption":"Christopher Ort"},"description":"Christopher Ort handles SEO, AI agent workflows and PR & partnerships at i10x.ai, the all-in-one AI workspace built by i10X Global Pte. Ltd. in Singapore. He is a graduate of Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg (FAU). He is the author of \u201cThe Style Penalty\u201d, a study published on SSRN that analyses 1,576 evaluation decisions by four frontier AI models to show how AI-written CVs fare in automated hiring screens; the research has been covered by heise online and t3n.","url":"https:\/\/i10x.ai\/news\/author\/christopher-ort","sameAs":["https:\/\/i10x.ai\/blog\/author\/christopher-ort"],"worksFor":{"@id":"https:\/\/i10x.ai\/news\/#organization"},"alumniOf":{"@type":"EducationalOrganization","name":"Friedrich-Alexander-Universit\u00e4t Erlangen-N\u00fcrnberg (FAU)","url":"https:\/\/www.fau.eu"},"subjectOf":[{"@type":"CreativeWork","url":"https:\/\/papers.ssrn.com\/abstract=7426699","name":"The Style Penalty: How AI Resume-Writing Tools Shape Outcomes in Automated Hiring Screens"},{"@type":"CreativeWork","url":"https:\/\/www.heise.de\/news\/KI-Chatbots-bewerten-KI-Lebenslaeufe-Claude-findet-sich-besser-als-GPT-11317531.html","name":"KI-Chatbots bewerten KI-Lebensl\u00e4ufe: Claude findet sich besser als GPT"},{"@type":"CreativeWork","url":"https:\/\/t3n.de\/news\/bewerbung-schreiben-ki-5-fehler-1747190\/","name":"Bewerbung mit KI schreiben: Diese 5 Fehler solltet ihr laut Studien vermeiden"}]}]}},"_links":{"self":[{"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/posts\/8907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/comments?post=8907"}],"version-history":[{"count":0,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/posts\/8907\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/media\/8906"}],"wp:attachment":[{"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/media?parent=8907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/categories?post=8907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/tags?post=8907"},{"taxonomy":"company","embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/companies?post=8907"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/i10x.ai\/news\/wp-json\/wp\/v2\/products?post=8907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}