pgEdge Postgres MCP Server SQL injection through custom pl-do tool parameters
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| pgEdge | pgedge-postgres-mcp | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Pgedge | Pgedge-postgres-mcp |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
No EPSS score available.
Key SSVC decision points have not yet been added.
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Pgedge
Pgedge pgedge-postgres-mcp |
|
| Vendors & Products |
Pgedge
Pgedge pgedge-postgres-mcp |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | pgEdge Postgres MCP Server enables SQL queries against PostgreSQL databases through Model Context Protocol compatible clients. Prior to 1.1.0, custom pl-do tools interpolated JSON arguments into a PostgreSQL DO block delimited by fixed dollar-quote tags. An argument containing $mcp_custom_tool$ could terminate the block and inject arbitrary SQL statements, while $mcp_args$ could inject procedural code into a plpgsql block. Because the statement used the simple query protocol, injected text could include additional statements and transaction control, bypassing read_only and accessing data or modifying resources available to the connecting role. The issue requires at least one pl-do custom tool; sql and pl-func tools pass arguments as bind parameters and are not affected by this injection mechanism. This issue is fixed in 1.1.0. | |
| Title | pgEdge Postgres MCP Server SQL injection through custom pl-do tool parameters | |
| Weaknesses | CWE-89 | |
| References |
|
|
| Metrics |
cvssV3_1
|