Skip to content

Commit 8c10ee0

Browse files
authored
Merge pull request #6502 from EnterpriseDB/release-2025-02-15a
Release 2025/02/15a
2 parents 81f8c5d + 27c9c92 commit 8c10ee0

File tree

14 files changed

+774
-140
lines changed

14 files changed

+774
-140
lines changed

advocacy_docs/security/advisories/index.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ navigation:
2727

2828

2929

30-
<h2>Updated 2024</h2>
30+
<h2>Released 2024</h2>
3131

3232
<table class="table-bordered">
3333

@@ -51,7 +51,7 @@ All versions of EnterpriseDB Postgres Advanced Server (EPAS) from 15.0 and prior
5151

5252

5353
</table>
54-
<h2>Updated 2025</h2>
54+
<h2>Released 2023</h2>
5555

5656
<table class="table-bordered">
5757

@@ -227,7 +227,7 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo
227227

228228

229229
</table>
230-
<h2>Updated 2022</h2>
230+
<h2>Released 2021</h2>
231231

232232
<table class="table-bordered">
233233

@@ -251,7 +251,7 @@ A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows
251251

252252

253253
</table>
254-
<h2>Updated 2018</h2>
254+
<h2>Released 2007</h2>
255255

256256
<table class="table-bordered">
257257

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: CVE-2025-1094 - PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation
3+
navTitle: CVE-2025-1094
4+
affectedProducts: All versions of PostgreSQL, EPAS and PGE prior to 17.3, 16.7, 15.11, 14.16, and 13.19
5+
---
6+
7+
First Published: 2025/02/15
8+
9+
Last Updated: 2025/02/15
10+
11+
Important: This is an assessment of the impact of CVE-2025-1094 on EDB products and services. It links to and details the CVE and supplements that information with EDB's own assessment.
12+
13+
## Summary
14+
15+
Improper neutralization of quoting syntax in PostgreSQL libpq functions `PQescapeLiteral()`, `PQescapeIdentifier()`, `PQescapeString()`, and `PQescapeStringConn()` allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is `BIG5` and server_encoding is one of `EUC_TW` or `MULE_INTERNAL`. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.
16+
17+
## Vulnerability details
18+
19+
CVE-ID: [CVE-2025-1094](https://www.postgresql.org/support/security/CVE-2025-1094/)
20+
21+
CVSS Base Score: 8.1
22+
23+
CVSS Temporal Score: Undefined
24+
25+
CVSS Environmental Score: Undefined
26+
27+
CVSS Vector: [AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H&version=3.0)
28+
29+
## Affected products and versions
30+
31+
### PostgreSQL
32+
33+
* All versions of PostgreSQL prior to 17.3
34+
* All versions of PostgreSQL prior to 16.7
35+
* All versions of PostgreSQL prior to 15.11
36+
* All versions of PostgreSQL prior to 14.16
37+
* All versions of PostgreSQL prior to 13.19
38+
39+
### EnterpriseDB Postgres Advanced Server (EPAS)
40+
41+
* All versions of EPAS prior to 17.3.0
42+
* All versions of EPAS prior to 16.7.0
43+
* All versions of EPAS prior to 15.11.0
44+
* All versions of EPAS prior to 14.16.0
45+
* All versions of EPAS prior to 13.19.25
46+
47+
### EnterpriseDB Postgres Extended
48+
49+
* All versions of PGE prior to 17.3
50+
* All versions of PGE prior to 16.7
51+
* All versions of PGE prior to 15.11
52+
* All versions of PGE prior to 14.16
53+
* All versions of PGE prior to 13.19
54+
55+
## Remediation/fixes
56+
57+
The fix is included in the following versions: 17.3, 16.7, 15.11, 14.16, and 13.19.
58+
59+
### PostgreSQL Version Information
60+
61+
| Affected Version | Fixed In | Fix Published |
62+
|-----------------------------|----------|---------------|
63+
| All versions prior to 17.3 | 17.3 | 2025-01-13 |
64+
| All versions prior to 16.3 | 16.7 | 2025-01-13 |
65+
| All versions prior to 15.7 | 15.11 | 2025-01-13 |
66+
| All versions prior to 14.12 | 14.16 | 2025-01-13 |
67+
| All versions prior to 13.19 | 13.19 | 2025-01-13 |
68+
69+
### EDB Postgres Extended Server
70+
71+
| Product | VRMF | Remediation/First Fix |
72+
|---------|-----------------------------|----------------------------------|
73+
| EPAS | All versions prior to 17.3 | Update to version 17.3 or later |
74+
| EPAS | All versions prior to 16.7 | Update to version 16.7 or later |
75+
| EPAS | All versions prior to 15.11 | Update to version 15.11 or later |
76+
| EPAS | All versions prior to 14.16 | Update to version 14.16 or later |
77+
| EPAS | All versions prior to 13.19 | Update to version 13.19 or later |
78+
79+
### EDB Postgres Advanced Server (EPAS)
80+
81+
| Product | VRMF | Remediation/First Fix |
82+
|---------|--------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
83+
| EPAS | All versions prior to 17.3.0 | Update to version 17.3.0 or later |
84+
| EPAS | All versions prior to 16.7.0 | Update to version 16.7.0 or later |
85+
| EPAS | All versions prior to 15.11.0 | Update to version 15.11.0 or later |
86+
| EPAS | All versions prior to 14.16.0 | Update to version 14.16.0 or later |
87+
| EPAS | All versions prior to 13.19.25 | Update to version 13.19.25 or later |
88+
89+
## References
90+
91+
* [CVSS Calculator v3.1](https://www.first.org/cvss/calculator/3.1)
92+
* [CWE-149 Improper Neutralization of Quoting Syntax](https://cwe.mitre.org/data/definitions/149.html)
93+
94+
## Related information
95+
96+
* [EnterpriseDB](https://www.enterprisedb.com/)
97+
* [EDB Blogs link](https://enterprisedb.com/blog/)
98+
99+
## Acknowledgement
100+
101+
Source: PostgreSQL.org
102+
103+
## Change history
104+
105+
15 Feb 2025: Original Copy Published
106+
107+
## Disclaimer
108+
109+
This document is provided on an "as is" basis and does not imply any kind of
110+
guarantee or warranty, including the warranties of merchantability or fitness
111+
for a particular use. Your use of the information on the document is at your own
112+
risk. EDB reserves the right to change or update this document at any time.
113+
Customers are therefore recommended to always view the latest version of this
114+
document.

advocacy_docs/security/assessments/index.mdx

Lines changed: 60 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ iconName: Security
66
hideKBLink: true
77
hideToC: false
88
navigation:
9-
- cve-2020-10531
10-
- cve-2024-0985
11-
- cve-2024-1597
12-
- cve-2024-4317
9+
- cve-2025-1094
1310
- cve-2024-7348
11+
- cve-2024-4317
12+
- cve-2024-1597
13+
- cve-2024-0985
14+
- cve-2020-10531
1415
---
1516

1617
The CVEs listed in this section are from PostgreSQL and other parties who have reported them and that may have an impact on EDB products.
@@ -22,58 +23,75 @@ The CVEs listed in this section are from PostgreSQL and other parties who have r
2223

2324

2425

25-
26-
<h2>Updated 2024</h2>
26+
27+
<h2>Released 2025</h2>
2728

2829
<table class="table-bordered">
2930

3031

3132
<tr><td>
32-
<details><summary><h3 style="display:inline"> CVE-2020-10531 </h3>
33+
<details><summary><h3 style="display:inline"> CVE-2025-1094 </h3>
3334
<span>
34-
&nbsp;&nbsp;<a href="cve-2020-10531">Read Assessment</a>
35-
&nbsp;&nbsp;Updated: </span><span>2024/11/14</span>
36-
<h4>Integer overflow in ICU doAppend()</h4>
37-
<h5> All versions of EDB Postgres Advanced Server from 13 through 16</h5>
35+
&nbsp;&nbsp;<a href="cve-2025-1094">Read Assessment</a>
36+
&nbsp;&nbsp;Updated: </span><span>2025/02/15</span>
37+
<h4>PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation</h4>
38+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 17.3, 16.7, 15.11, 14.16, and 13.19</h5>
3839
</summary>
3940
<hr/>
4041
<em>Summary:</em>&nbsp;
41-
The original vulnerability was an integer overflow leading to a heap-based buffer overflow in <code>UnicodeString::doAppend()</code> in ICU (International Components for Unicode) for C/C++ which existed up to (and including) version 66.1.
42+
Improper neutralization of quoting syntax in PostgreSQL libpq functions <code>PQescapeLiteral()</code>, <code>PQescapeIdentifier()</code>, <code>PQescapeString()</code>, and <code>PQescapeStringConn()</code> allows a database input provider to achieve SQL injection in certain usage patterns. Specifically, SQL injection requires the application to use the function result to construct input to psql, the PostgreSQL interactive terminal. Similarly, improper neutralization of quoting syntax in PostgreSQL command line utility programs allows a source of command line arguments to achieve SQL injection when client_encoding is <code>BIG5</code> and server_encoding is one of <code>EUC_TW</code> or <code>MULE_INTERNAL</code>. Versions before PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 are affected.
4243
<br/>
43-
<a href="cve-2020-10531">Read More...</a>
44+
<a href="cve-2025-1094">Read More...</a>
4445
</details></td></tr>
4546

4647

4748

4849

49-
</table>
50-
<h2>Updated 2025</h2>
50+
51+
</table>
52+
<h2>Released 2024</h2>
5153

5254
<table class="table-bordered">
5355

5456

5557
<tr><td>
56-
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
58+
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
5759
<span>
58-
&nbsp;&nbsp;<a href="cve-2024-0985">Read Assessment</a>
59-
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
60-
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
61-
<h5> PostgreSQL, EPAS all versions prior to 15.6.0,14.11.0,13.14.20 and 12.18.23, PGE all versions prior to 15.6.0</h5>
60+
&nbsp;&nbsp;<a href="cve-2024-7348">Read Assessment</a>
61+
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
62+
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
63+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
6264
</summary>
6365
<hr/>
6466
<em>Summary:</em>&nbsp;
65-
Late privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view. As part of exploiting this vulnerability, the attacker creates functions that use CREATE RULE to convert the internally-built temporary table to a view. Versions before PostgreSQL 15.6, 14.11, 13.14, and 12.18 are affected. The only known exploit does not work in PostgreSQL 16 and later. For defense in depth, PostgreSQL 16.2 adds the protections that older branches are using to fix their vulnerability.
67+
Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.
6668
<br/>
67-
<a href="cve-2024-0985">Read More...</a>
69+
<a href="cve-2024-7348">Read More...</a>
6870
</details></td></tr>
6971

7072

7173

7274

73-
</table>
74-
<h2>Updated 2024</h2>
7575

76-
<table class="table-bordered">
76+
77+
<tr><td>
78+
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
79+
<span>
80+
&nbsp;&nbsp;<a href="cve-2024-4317">Read Assessment</a>
81+
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
82+
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
83+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
84+
</summary>
85+
<hr/>
86+
<em>Summary:</em>&nbsp;
87+
Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.
88+
<br/>
89+
<a href="cve-2024-4317">Read More...</a>
90+
</details></td></tr>
91+
92+
93+
94+
7795

7896

7997
<tr><td>
@@ -95,39 +113,42 @@ pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using Prefe
95113

96114

97115

116+
98117
<tr><td>
99-
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
118+
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
100119
<span>
101-
&nbsp;&nbsp;<a href="cve-2024-4317">Read Assessment</a>
102-
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
103-
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
104-
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
120+
&nbsp;&nbsp;<a href="cve-2024-0985">Read Assessment</a>
121+
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
122+
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
123+
<h5> PostgreSQL, EPAS all versions prior to 15.6.0,14.11.0,13.14.20 and 12.18.23, PGE all versions prior to 15.6.0</h5>
105124
</summary>
106125
<hr/>
107126
<em>Summary:</em>&nbsp;
108-
Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext_exprs allows an unprivileged database user to read most common values and other statistics from CREATE STATISTICS commands of other users. The most common values may reveal column values the eavesdropper could not otherwise read or results of functions they cannot execute. Installing an unaffected version only fixes fresh PostgreSQL installations, namely those that are created with the initdb utility after installing that version. Current PostgreSQL installations will remain vulnerable until they follow the instructions in the release notes, which are provided as a convenience in the below section. Within major versions 14-16, minor versions before PostgreSQL 16.3, 15.7, and 14.12 are affected. Versions before PostgreSQL 14 are unaffected.
127+
Late privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view. As part of exploiting this vulnerability, the attacker creates functions that use CREATE RULE to convert the internally-built temporary table to a view. Versions before PostgreSQL 15.6, 14.11, 13.14, and 12.18 are affected. The only known exploit does not work in PostgreSQL 16 and later. For defense in depth, PostgreSQL 16.2 adds the protections that older branches are using to fix their vulnerability.
109128
<br/>
110-
<a href="cve-2024-4317">Read More...</a>
129+
<a href="cve-2024-0985">Read More...</a>
111130
</details></td></tr>
112131

113132

114133

115134

116135

136+
117137
<tr><td>
118-
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
138+
<details><summary><h3 style="display:inline"> CVE-2020-10531 </h3>
119139
<span>
120-
&nbsp;&nbsp;<a href="cve-2024-7348">Read Assessment</a>
121-
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
122-
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
123-
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
140+
&nbsp;&nbsp;<a href="cve-2020-10531">Read Assessment</a>
141+
&nbsp;&nbsp;Updated: </span><span>2024/11/14</span>
142+
<h4>Integer overflow in ICU doAppend()</h4>
143+
<h5> All versions of EDB Postgres Advanced Server from 13 through 16</h5>
124144
</summary>
125145
<hr/>
126146
<em>Summary:</em>&nbsp;
127-
Time-of-check Time-of-use (TOCTOU) race condition in pg_dump in PostgreSQL allows an object creator to execute arbitrary SQL functions as the user running pg_dump, which is often a superuser. The attack involves replacing another relation type with a view or foreign table. The attack requires waiting for pg_dump to start, but winning the race condition is trivial if the attacker retains an open transaction. Versions before PostgreSQL 16.4, 15.8, 14.13, 13.16, and 12.20 are affected.
147+
The original vulnerability was an integer overflow leading to a heap-based buffer overflow in <code>UnicodeString::doAppend()</code> in ICU (International Components for Unicode) for C/C++ which existed up to (and including) version 66.1.
128148
<br/>
129-
<a href="cve-2024-7348">Read More...</a>
149+
<a href="cve-2020-10531">Read More...</a>
130150
</details></td></tr>
131151

152+
<!-- end of file -->
132153
</table>
133154

0 commit comments

Comments
 (0)