Skip to content

Commit add7b08

Browse files
authored
Merge pull request #6240 from EnterpriseDB/release-2024-11-14c
Release 2024-11-14c
2 parents f837a6f + 628e324 commit add7b08

File tree

4 files changed

+165
-46
lines changed

4 files changed

+165
-46
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
title: CVE-2020-10531 - Integer overflow in ICU doAppend()
3+
navTitle: CVE-2020-10531
4+
affectedProducts: All versions of EDB Postgres Advanced Server from 13 through 16
5+
---
6+
7+
First Published: 2024/11/14
8+
9+
Last Updated: 2024/11/14
10+
11+
## Important
12+
13+
This is an assessment of the impact of CVE-2020-10531 on EDB products and services. It links to and details the CVE and supplements that information with EDB's own assessment.
14+
15+
## Summary
16+
17+
The original vulnerability was an integer overflow leading to a heap-based buffer overflow in `UnicodeString::doAppend()` in ICU (International Components for Unicode) for C/C++ which existed up to (and including) version 66.1.
18+
19+
In the process of validating EDB Postgres Advanced Server 17, a release check identified the presence of a pre 67.1 version of the library being used.
20+
21+
It had been believed that existing versions of EPAS had been built with a later library version.
22+
23+
While most EDB software builds against the operating system provided version of ICU, EDB Postgres Advanced Server can include EDB’s own build of ICU 66.1, specifically on RHEL7 on x86\_64/PPCLE, RHEL8 on x86\_64/PPCLE, SLES 12 x86\_64/PPCLE/s390x, and SLES 15 x86\_64/PPCLE/s390x. On RHEL9, the OS supplied library (version 67.1) is used.
24+
25+
EDB Postgres Extended and Postgres use the OS supplied ICU libraries, and are not affected by this vulnerability.
26+
27+
It has been established that EDB’s code does not use the vulnerable function.
28+
Assessment and mitigation: In the interests of ensuring that the vulnerable library doesn’t provide any surface for an attacker, we are releasing updated versions of all affected products.
29+
30+
## Vulnerability Details
31+
32+
CVE-ID: [CVE-2020-10531](https://nvd.nist.gov/vuln/detail/CVE-2020-10531)
33+
34+
CVSS Base Score: 8.8
35+
36+
CVSS Temporal Score: Undefined
37+
38+
CVSS Environmental Score: Undefined
39+
40+
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
41+
42+
## Affected Products and Versions
43+
44+
### EnterpriseDB Postgres Advanced Server
45+
46+
On RHEL 7/8 (x86_64/PPCLE) and SLES 12/15 (x86_64/PPCLE/s390x)
47+
48+
* All versions of EPAS prior to 16.5.0
49+
* All versions of EPAS prior to 15.9.0
50+
* All versions of EPAS prior to 14.14.0
51+
* All versions of EPAS prior to 13.17.0
52+
53+
## Remediation
54+
55+
### EDB Postgres Advanced Server Version Information
56+
57+
| Product | VRMF | Remediation/First Fix |
58+
|:--------|:--------|:----------------------|
59+
| EPAS 16 | 16.4.0 | Upgrade to 16.5.0 |
60+
| EPAS 15 | 15.8.0 | Upgrade to 15.9.0 |
61+
| EPAS 14 | 14.13.0 | Upgrade to 14.14.0 |
62+
| EPAS 13 | 13.16.0 | Upgrade to 13.17.0 |
63+
64+
If you are unable to upgrade your EPAS installation, upgrade the installed edb-icu
65+
66+
## Reference
67+
68+
* [CVSS #3.1 Calculator](https://www.first.org/cvss/calculator/3.1)
69+
70+
## Related Information
71+
72+
* [EnterpriseDB](https://www.enterprisedb.com/)
73+
* [Postgresql](https://www.postgresql.org/)
74+
* [EDB Postgres Advanced Server](https://www.enterprisedb.com/products/edb-postgres-advanced-server)
75+
76+
## Change History
77+
78+
14 November 2024: Original Copy Published
79+
80+
## Disclaimer
81+
82+
This document is provided on an "as is" basis and does not imply any kind of guarantee or warranty, including the warranties of merchantability or fitness for a particular use. Your use of the information on the document is at your own risk. EDB reserves the right to change or update this document at any time. Customers are therefore recommended to always view the latest version of this document.

advocacy_docs/security/assessments/index.mdx

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ iconName: Security
66
hideKBLink: true
77
hideToC: false
88
navigation:
9-
- cve-2024-7348
10-
- cve-2024-4317
11-
- cve-2024-1597
9+
- cve-2020-10531
1210
- cve-2024-0985
11+
- cve-2024-1597
12+
- cve-2024-4317
13+
- cve-2024-7348
1314
---
1415

1516
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.
@@ -28,37 +29,37 @@ The CVEs listed in this section are from PostgreSQL and other parties who have r
2829

2930

3031
<tr><td>
31-
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
32+
<details><summary><h3 style="display:inline"> CVE-2020-10531 </h3>
3233
<span>
33-
&nbsp;&nbsp;<a href="cve-2024-7348">Read Assessment</a>
34-
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
35-
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
36-
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
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>
3738
</summary>
3839
<hr/>
3940
<em>Summary:</em>&nbsp;
40-
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.
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.
4142
<br/>
42-
<a href="cve-2024-7348">Read More...</a>
43+
<a href="cve-2020-10531">Read More...</a>
4344
</details></td></tr>
4445

4546

4647

4748

4849

4950
<tr><td>
50-
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
51+
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
5152
<span>
52-
&nbsp;&nbsp;<a href="cve-2024-4317">Read Assessment</a>
53-
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
54-
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
55-
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
53+
&nbsp;&nbsp;<a href="cve-2024-0985">Read Assessment</a>
54+
&nbsp;&nbsp;Updated: </span><span>2024/02/26</span>
55+
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
56+
<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>
5657
</summary>
5758
<hr/>
5859
<em>Summary:</em>&nbsp;
59-
Missing authorization in PostgreSQL built-in views <code>pg_stats_ext</code> and <code>pg_stats_ext_exprs</code> 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.
60+
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.
6061
<br/>
61-
<a href="cve-2024-4317">Read More...</a>
62+
<a href="cve-2024-0985">Read More...</a>
6263
</details></td></tr>
6364

6465

@@ -85,18 +86,37 @@ pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using Prefe
8586

8687

8788
<tr><td>
88-
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
89+
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
8990
<span>
90-
&nbsp;&nbsp;<a href="cve-2024-0985">Read Assessment</a>
91-
&nbsp;&nbsp;Updated: </span><span>2024/02/26</span>
92-
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
93-
<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>
91+
&nbsp;&nbsp;<a href="cve-2024-4317">Read Assessment</a>
92+
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
93+
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
94+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
9495
</summary>
9596
<hr/>
9697
<em>Summary:</em>&nbsp;
97-
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.
98+
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.
9899
<br/>
99-
<a href="cve-2024-0985">Read More...</a>
100+
<a href="cve-2024-4317">Read More...</a>
101+
</details></td></tr>
102+
103+
104+
105+
106+
107+
<tr><td>
108+
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
109+
<span>
110+
&nbsp;&nbsp;<a href="cve-2024-7348">Read Assessment</a>
111+
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
112+
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
113+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
114+
</summary>
115+
<hr/>
116+
<em>Summary:</em>&nbsp;
117+
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.
118+
<br/>
119+
<a href="cve-2024-7348">Read More...</a>
100120
</details></td></tr>
101121

102122
</table>

advocacy_docs/security/index.mdx

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -55,34 +55,34 @@ All versions of EnterpriseDB Postgres Advanced Server (EPAS) from 15.0 and prior
5555

5656

5757
<tr><td>
58-
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
58+
<details><summary><h3 style="display:inline"> CVE-2020-10531 </h3>
5959
<span>
60-
&nbsp;&nbsp;<a href="assessments/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>
60+
&nbsp;&nbsp;<a href="assessments/cve-2020-10531">Read Assessment</a>
61+
&nbsp;&nbsp;Updated: </span><span>2024/11/14</span>
62+
<h4>Integer overflow in ICU doAppend()</h4>
63+
<h5> All versions of EDB Postgres Advanced Server from 13 through 16</h5>
6464
</summary>
6565
<hr/>
6666
<em>Summary:</em>&nbsp;
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.
67+
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.
6868
<br/>
69-
<a href="assessments/cve-2024-7348">Read More...</a>
69+
<a href="assessments/cve-2020-10531">Read More...</a>
7070
</details></td></tr>
7171

7272

7373
<tr><td>
74-
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
74+
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
7575
<span>
76-
&nbsp;&nbsp;<a href="assessments/cve-2024-4317">Read Assessment</a>
77-
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
78-
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
79-
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
76+
&nbsp;&nbsp;<a href="assessments/cve-2024-0985">Read Assessment</a>
77+
&nbsp;&nbsp;Updated: </span><span>2024/02/26</span>
78+
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
79+
<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>
8080
</summary>
8181
<hr/>
8282
<em>Summary:</em>&nbsp;
83-
Missing authorization in PostgreSQL built-in views <code>pg_stats_ext</code> and <code>pg_stats_ext_exprs</code> 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.
83+
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.
8484
<br/>
85-
<a href="assessments/cve-2024-4317">Read More...</a>
85+
<a href="assessments/cve-2024-0985">Read More...</a>
8686
</details></td></tr>
8787

8888

@@ -103,18 +103,34 @@ pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using Prefe
103103

104104

105105
<tr><td>
106-
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
106+
<details><summary><h3 style="display:inline"> CVE-2024-4317 </h3>
107107
<span>
108-
&nbsp;&nbsp;<a href="assessments/cve-2024-0985">Read Assessment</a>
109-
&nbsp;&nbsp;Updated: </span><span>2024/02/26</span>
110-
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
111-
<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>
108+
&nbsp;&nbsp;<a href="assessments/cve-2024-4317">Read Assessment</a>
109+
&nbsp;&nbsp;Updated: </span><span>2024/05/09</span>
110+
<h4>Restrict visibility of "pg_stats_ext" and "pg_stats_ext_exprs" entries to the table owner</h4>
111+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.3, 15.7, and 14.12</h5>
112112
</summary>
113113
<hr/>
114114
<em>Summary:</em>&nbsp;
115-
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.
115+
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.
116116
<br/>
117-
<a href="assessments/cve-2024-0985">Read More...</a>
117+
<a href="assessments/cve-2024-4317">Read More...</a>
118+
</details></td></tr>
119+
120+
121+
<tr><td>
122+
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
123+
<span>
124+
&nbsp;&nbsp;<a href="assessments/cve-2024-7348">Read Assessment</a>
125+
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
126+
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
127+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
128+
</summary>
129+
<hr/>
130+
<em>Summary:</em>&nbsp;
131+
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.
132+
<br/>
133+
<a href="assessments/cve-2024-7348">Read More...</a>
118134
</details></td></tr>
119135

120136
</table>

0 commit comments

Comments
 (0)