Skip to content

Commit c2b53ed

Browse files
committed
Short list fixups and formatting
Signed-off-by: Dj Walker-Morgan <[email protected]>
1 parent 336adc5 commit c2b53ed

File tree

2 files changed

+96
-69
lines changed

2 files changed

+96
-69
lines changed

advocacy_docs/security/index.mdx

Lines changed: 94 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -47,58 +47,106 @@ All versions of EnterpriseDB Postgres Advanced Server (EPAS) from 15.0 and prior
4747
<a href="advisories/cve20244545">Read More...</a>
4848
</details></td></tr>
4949

50-
</table>
5150

52-
## Most Recent Assessments
51+
<tr><td>
52+
<details><summary><h3 style="display:inline">CVE-2023-41120 </h3>
53+
<span>
54+
&nbsp;&nbsp;<a href="advisories/cve202341120">Read Advisory</a>
55+
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
56+
<h4>EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission</h4>
57+
<h5> All versions of EnterpriseDB Postgres Advanced Server (EPAS) prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0</h5>
58+
</summary>
59+
<hr/>
60+
<em>Summary:</em>&nbsp;
61+
An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 11.21.32, 12.x before 12.16.20, 13.x before 13.12.16, 14.x before 14.9.0, and 15.x before 15.4.0. It permits an authenticated user to use DBMS_PROFILER to remove all accumulated profiling data on a system-wide basis, regardless of that user's permissions.
62+
<br/>
63+
<a href="advisories/cve202341120">Read More...</a>
64+
</details></td></tr>
5365

54-
<table class="table-bordered">
66+
67+
<tr><td>
68+
<details><summary><h3 style="display:inline">CVE-2023-41119 </h3>
69+
<span>
70+
&nbsp;&nbsp;<a href="advisories/cve202341119">Read Advisory</a>
71+
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
72+
<h4>EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser</h4>
73+
<h5> All versions of EnterpriseDB Postgres Advanced Server (EPAS) prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0</h5>
74+
</summary>
75+
<hr/>
76+
<em>Summary:</em>&nbsp;
77+
An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 11.21.32, 12.x before 12.16.20, 13.x before 13.12.16, 14.x before 14.9.0, and 15.x before 15.4.0. It contains the function _dbms_aq_move_to_exception_queue that may be used to elevate a user's privileges to superuser. This function accepts the OID of a table, and then accesses that table as the superuser by using SELECT and DML commands.
78+
<br/>
79+
<a href="advisories/cve202341119">Read More...</a>
80+
</details></td></tr>
5581

5682

5783
<tr><td>
58-
<details><summary><h3 style="display:inline"> CVE-2020-10531 </h3>
84+
<details><summary><h3 style="display:inline">CVE-2023-41118 </h3>
5985
<span>
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>
86+
&nbsp;&nbsp;<a href="advisories/cve202341118">Read Advisory</a>
87+
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
88+
<h4>EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass</h4>
89+
<h5> All versions of EnterpriseDB Postgres Advanced Server (EPAS) prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0</h5>
6490
</summary>
6591
<hr/>
6692
<em>Summary:</em>&nbsp;
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.
93+
An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 11.21.32, 12.x before 12.16.20, 13.x before 13.12.16, 14.x before 14.9.0, and 15.x before 15.4.0. It may allow an authenticated user to bypass authorization requirements and access underlying implementation functions. When a superuser has configured file locations using CREATE DIRECTORY, these functions allow users to take a wide range of actions, including read, write, copy, rename, and delete.
6894
<br/>
69-
<a href="assessments/cve-2020-10531">Read More...</a>
95+
<a href="advisories/cve202341118">Read More...</a>
7096
</details></td></tr>
7197

7298

7399
<tr><td>
74-
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
100+
<details><summary><h3 style="display:inline">CVE-2023-41117 </h3>
75101
<span>
76-
&nbsp;&nbsp;<a href="assessments/cve-2024-0985">Read Assessment</a>
102+
&nbsp;&nbsp;<a href="advisories/cve202341117">Read Advisory</a>
77103
&nbsp;&nbsp;Updated: </span><span>2025/01/31</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>
104+
<h4>EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path</h4>
105+
<h5> All versions of EnterpriseDB Postgres Advanced Server (EPAS) prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0</h5>
80106
</summary>
81107
<hr/>
82108
<em>Summary:</em>&nbsp;
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.
109+
An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 11.21.32, 12.x before 12.16.20, 13.x before 13.12.16, 14.x before 14.9.0, and 15.x before 15.4.0. It contain packages, standalone packages, and functions that run SECURITY DEFINER but are inadequately secured against search_path attacks.
84110
<br/>
85-
<a href="assessments/cve-2024-0985">Read More...</a>
111+
<a href="advisories/cve202341117">Read More...</a>
86112
</details></td></tr>
87113

114+
</table>
115+
116+
## Most Recent Assessments
117+
118+
<table class="table-bordered">
119+
88120

89121
<tr><td>
90-
<details><summary><h3 style="display:inline"> CVE-2024-1597 </h3>
122+
<details><summary><h3 style="display:inline"> CVE-2025-1094 </h3>
91123
<span>
92-
&nbsp;&nbsp;<a href="assessments/cve-2024-1597">Read Assessment</a>
93-
&nbsp;&nbsp;Updated: </span><span>2024/03/08</span>
94-
<h4>SQL Injection via line comment generation</h4>
95-
<h5> pgJDBC all versions prior to 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 and EDB pgJDBC all versions prior to 42.5.5</h5>
124+
&nbsp;&nbsp;<a href="assessments/cve-2025-1094">Read Assessment</a>
125+
&nbsp;&nbsp;Updated: </span><span>2025/02/15</span>
126+
<h4>PostgreSQL quoting APIs miss neutralizing quoting syntax in text that fails encoding validation</h4>
127+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 17.3, 16.7, 15.11, 14.16, and 13.19</h5>
96128
</summary>
97129
<hr/>
98130
<em>Summary:</em>&nbsp;
99-
pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string payload, the attacker can inject SQL to alter the query,bypassing the protections that parameterized queries bring against SQL Injection attacks. Versions before 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 are affected.
131+
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.
100132
<br/>
101-
<a href="assessments/cve-2024-1597">Read More...</a>
133+
<a href="assessments/cve-2025-1094">Read More...</a>
134+
</details></td></tr>
135+
136+
137+
<tr><td>
138+
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
139+
<span>
140+
&nbsp;&nbsp;<a href="assessments/cve-2024-7348">Read Assessment</a>
141+
&nbsp;&nbsp;Updated: </span><span>2024/08/15</span>
142+
<h4>PostgreSQL relation replacement during pg_dump executes arbitrary SQL</h4>
143+
<h5> All versions of PostgreSQL, EPAS and PGE prior to 16.4, 15.8, and 14.13</h5>
144+
</summary>
145+
<hr/>
146+
<em>Summary:</em>&nbsp;
147+
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.
148+
<br/>
149+
<a href="assessments/cve-2024-7348">Read More...</a>
102150
</details></td></tr>
103151

104152

@@ -119,18 +167,34 @@ Missing authorization in PostgreSQL built-in views pg_stats_ext and pg_stats_ext
119167

120168

121169
<tr><td>
122-
<details><summary><h3 style="display:inline"> CVE-2024-7348 </h3>
170+
<details><summary><h3 style="display:inline"> CVE-2024-1597 </h3>
123171
<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>
172+
&nbsp;&nbsp;<a href="assessments/cve-2024-1597">Read Assessment</a>
173+
&nbsp;&nbsp;Updated: </span><span>2024/03/08</span>
174+
<h4>SQL Injection via line comment generation</h4>
175+
<h5> pgJDBC all versions prior to 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 and EDB pgJDBC all versions prior to 42.5.5</h5>
128176
</summary>
129177
<hr/>
130178
<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.
179+
pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string payload, the attacker can inject SQL to alter the query,bypassing the protections that parameterized queries bring against SQL Injection attacks. Versions before 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 are affected.
132180
<br/>
133-
<a href="assessments/cve-2024-7348">Read More...</a>
181+
<a href="assessments/cve-2024-1597">Read More...</a>
182+
</details></td></tr>
183+
184+
185+
<tr><td>
186+
<details><summary><h3 style="display:inline"> CVE-2024-0985 </h3>
187+
<span>
188+
&nbsp;&nbsp;<a href="assessments/cve-2024-0985">Read Assessment</a>
189+
&nbsp;&nbsp;Updated: </span><span>2025/01/31</span>
190+
<h4>PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL</h4>
191+
<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>
192+
</summary>
193+
<hr/>
194+
<em>Summary:</em>&nbsp;
195+
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.
196+
<br/>
197+
<a href="assessments/cve-2024-0985">Read More...</a>
134198
</details></td></tr>
135199

136200
</table>

tools/automation/generators/advisoryindex/advisoryindex.js

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -136,25 +136,7 @@ cvelist.forEach((cve) => {
136136
allDocMap[cve] = docMap;
137137
});
138138

139-
let shortcvelist = [];
140-
let lastyear = "";
141-
let count = 0;
142-
cvelist.forEach((cve) => {
143-
const year = cve.substring(3, 7);
144-
if (lastyear == "") {
145-
count = 0;
146-
lastyear = year;
147-
} else if (lastyear != year) {
148-
return;
149-
}
150-
if (count < seccount) {
151-
shortcvelist.push(cve);
152-
count++;
153-
}
154-
});
155-
156-
//shortcvelist.forEach(cve => { console.log(allDocMap[cve].summary)})
157-
//console.log(allDocMap);
139+
let shortcvelist = cvelist.slice(0, seccount);
158140

159141
// Process the assessments
160142
const assfiles = fs
@@ -180,27 +162,8 @@ asslist.forEach((ass) => {
180162
assAllDocMap[ass] = assDocMap;
181163
});
182164

183-
let shortasslist = [];
184-
let asslastyear = "";
185-
let asscount = 0;
186-
187-
asslist.forEach((ass) => {
188-
const year = ass.substring(3, 7);
189-
if (asslastyear == "") {
190-
asscount = 0;
191-
asslastyear = year;
192-
} else if (asslastyear != year) {
193-
return;
194-
}
195-
if (asscount < seccount) {
196-
shortasslist.push(ass);
197-
asscount++;
198-
}
199-
});
200-
201165
asslist.reverse();
202-
203-
// Render the cve list
166+
let shortasslist = asslist.slice(0, seccount);
204167

205168
namespace["shortcvelist"] = shortcvelist;
206169
namespace["cvesorted"] = cvelist;

0 commit comments

Comments
 (0)