GHSA-j7mp-839j-jrm7: pgEdge Postgres MCP Server read-only mode can be bypassed by SQL statement smuggling through query_database

Published Nov 12, 2026
·
Updated

pgEdge Postgres MCP Server enables SQL queries against PostgreSQL databases through Model Context Protocol compatible clients. Prior to 1.1.0, querydatabase on a readonly connection could send unrecognized statements through pgx Exec without bind parameters, selecting PostgreSQL's simple query protocol and allowing multiple semicolon-separated statements in one request. A caller could combine transaction or session state changes with database writes, and pooled session state could leave later calls writable, when the connecting role held write privileges. The flaw affected deployments relying on readonly as a safety boundary, could compromise integrity and availability, and did not add confidentiality impact beyond the reads already permitted by the connection. This issue is fixed in 1.1.0.

Affected Software

1 affected component
pgEdge Postgres MCP Server<1.1.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pgEdge Postgres MCP Server to a version that resolves this vulnerability.

    Fixed in 1.1.0

Event History

Nov 12, 2026
CVE Published
via OSV·05:27 PM
Data Sourced
via OSV·05:27 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to write or availability impact?

Deployments using versions before 1.1.0 that rely on a read_only connection as a safety boundary are affected when the connecting PostgreSQL role has write privileges. The issue does not add confidentiality impact beyond the reads already allowed to that connection.

2

What does an attacker need to exploit the issue?

An attacker needs access to invoke query_database through an MCP-compatible client and must be able to submit SQL that includes multiple semicolon-separated statements. Exploitation depends on the connection role having write privileges.

3

Are default read-only protections sufficient?

No. The read_only mode could be bypassed because unrecognized statements were sent through pgx Exec using PostgreSQL's simple query protocol, allowing statement smuggling and session or transaction state changes before writes.

4

What can be done if upgrading is not immediately possible?

Do not rely on read_only as the sole safety boundary. Use a connecting PostgreSQL role without write privileges to prevent the smuggled statements from performing database writes.

5

How can I determine whether my deployment is affected?

Check whether the pgEdge Postgres MCP Server version is earlier than 1.1.0, whether query_database is available on read_only connections, and whether those connections authenticate as roles with write privileges. Pooled connections may retain session state that leaves later calls writable.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203