From 5492501aa90a3e7393aefbd99f4160ed59495521 Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Thu, 24 Aug 2023 12:05:52 +0100 Subject: [PATCH 01/11] Fixes shell space Signed-off-by: Dj Walker-Morgan --- .../products/hadoop-foreign-data-wrapper/rhel-8-or-ol-8.njk | 2 +- .../products/hadoop-foreign-data-wrapper/rhel-9-or-ol-9.njk | 2 +- .../products/mysql-foreign-data-wrapper/debian-10.njk | 2 +- .../02_connecting_from_aws/02_vpc_peering.mdx | 4 ++-- .../eprs/7/07_common_operations/11_using_ssl_connections.mdx | 2 +- .../docs/pgd/5/quickstart/connecting_applications.mdx | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-8-or-ol-8.njk b/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-8-or-ol-8.njk index 638eb914d0a..e88a7769cfd 100644 --- a/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-8-or-ol-8.njk +++ b/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-8-or-ol-8.njk @@ -3,7 +3,7 @@ {% block prerequisites %} {{ super() }} - Enable additional repositories to resolve dependencies: - ```shell + ```shell sudo dnf config-manager --set-enabled PowerTools ``` {% endblock prerequisites %} \ No newline at end of file diff --git a/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-9-or-ol-9.njk b/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-9-or-ol-9.njk index 32cd6baa6e2..11d9017285f 100644 --- a/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-9-or-ol-9.njk +++ b/install_template/templates/products/hadoop-foreign-data-wrapper/rhel-9-or-ol-9.njk @@ -3,7 +3,7 @@ {% block prerequisites %} {{ super() }} - Enable additional repositories to resolve dependencies: - ```shell + ```shell sudo dnf config-manager --set-enabled PowerTools ``` {% endblock prerequisites %} \ No newline at end of file diff --git a/install_template/templates/products/mysql-foreign-data-wrapper/debian-10.njk b/install_template/templates/products/mysql-foreign-data-wrapper/debian-10.njk index 953a63f94af..904b8c82152 100644 --- a/install_template/templates/products/mysql-foreign-data-wrapper/debian-10.njk +++ b/install_template/templates/products/mysql-foreign-data-wrapper/debian-10.njk @@ -3,7 +3,7 @@ {% block prerequisites %} {{ super() }} - Download the GPG key to your APT keyring directly using the apt-key utility - ```shell + ```shell sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 3A79BD29 ``` - Install and configure the MySQL repo diff --git a/product_docs/docs/biganimal/release/using_cluster/02_connecting_your_cluster/02_connecting_from_aws/02_vpc_peering.mdx b/product_docs/docs/biganimal/release/using_cluster/02_connecting_your_cluster/02_connecting_from_aws/02_vpc_peering.mdx index 34682bdda81..f80ffd39c6b 100644 --- a/product_docs/docs/biganimal/release/using_cluster/02_connecting_your_cluster/02_connecting_from_aws/02_vpc_peering.mdx +++ b/product_docs/docs/biganimal/release/using_cluster/02_connecting_your_cluster/02_connecting_from_aws/02_vpc_peering.mdx @@ -97,7 +97,7 @@ You can create a VPC peering connection with a VPC in the same region or a diffe 1. Access the cluster with its domain name from your cluster's connection string. It's accessible from `vpc-client` after peering. - ```shell + ```shell psql -h vpce-XXXXXXXXXXXXXXXXXXXX.eu-west-1.vpce.amazonaws.com -U edb_admin __OUTPUT__ Password for user edb_admin: @@ -139,7 +139,7 @@ You can create a VPC peering connection with a VPC in the same region or a diffe 1. Access the cluster with its domain name from your cluster's connection string. It's accessible from `vpc-client` after peering. - ```shell + ```shell psql -h vpce-XXXXXXXXXXXXXXXXXXXX.eu-west-1.vpce.amazonaws.com -U edb_admin __OUTPUT__ Password for user edb_admin: diff --git a/product_docs/docs/eprs/7/07_common_operations/11_using_ssl_connections.mdx b/product_docs/docs/eprs/7/07_common_operations/11_using_ssl_connections.mdx index 54992a92987..d781b3ca390 100644 --- a/product_docs/docs/eprs/7/07_common_operations/11_using_ssl_connections.mdx +++ b/product_docs/docs/eprs/7/07_common_operations/11_using_ssl_connections.mdx @@ -274,7 +274,7 @@ Before you begin, configure the client for SSL with trigger mode. For this example, assume file `xdb.crt` is a copy of `server.crt` and `xdb.key` is a copy of `server.key`. If you generated the server certificate with `CN=hostname/ip-address`, create xdb.keystore/xdb_pkcs.p12 with the `postgresql.crt` and `postgresql.ke`y client files as created with `CN=username` using the following commands : - ```shell + ```shell $ cp postgresql.crt xdb.crt $ cp postgresql.key xdb.key ``` diff --git a/product_docs/docs/pgd/5/quickstart/connecting_applications.mdx b/product_docs/docs/pgd/5/quickstart/connecting_applications.mdx index e1c71bb63e4..af13cf1f1e1 100644 --- a/product_docs/docs/pgd/5/quickstart/connecting_applications.mdx +++ b/product_docs/docs/pgd/5/quickstart/connecting_applications.mdx @@ -158,7 +158,7 @@ bdrdb=# By listing all the addresses of proxies as the host, you can ensure that the client will always failover and connect to the first available proxy in the event of a proxy failing. -```shell +```shell psql -h ,, -U enterprisedb -p 6432 bdrdb __OUTPUT__ psql (15.2, server 15.2.0 (Debian 15.2.0-2.buster)) From 29168d574fdffc1dfe9fd382b268ecf87f3ad93c Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Thu, 24 Aug 2023 15:25:59 +0100 Subject: [PATCH 02/11] Removed non-breaking-space Signed-off-by: Dj Walker-Morgan --- product_docs/docs/postgres_for_kubernetes/1/benchmarking.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/postgres_for_kubernetes/1/benchmarking.mdx b/product_docs/docs/postgres_for_kubernetes/1/benchmarking.mdx index cb90ac72b44..0884e13a29e 100644 --- a/product_docs/docs/postgres_for_kubernetes/1/benchmarking.mdx +++ b/product_docs/docs/postgres_for_kubernetes/1/benchmarking.mdx @@ -55,7 +55,7 @@ kubectl cnp pgbench \ You can see the progress of the job with: -```shell  +```shell kubectl logs jobs/pgbench-run ``` From d9516273818ee5ada22d4c07cc900b5a0d20570d Mon Sep 17 00:00:00 2001 From: Bobby Bissett <70302203+EFM-Bobby@users.noreply.github.com> Date: Thu, 14 Sep 2023 10:11:16 -0400 Subject: [PATCH 03/11] removed text that was not needed The db.bin property is just one of many needed properties, so calling it out here in a note doesn't make sense. My guess is that we added that property some time back and an upgrade required setting it, but by now any installation that a user is upgrading from will already have it set. The unit file comment I removed doesn't make sense here, and I don't know where it might have come from. When upgrading, the service name doesn't change, and there would be a new unit file anyway. This might be related to the multiple efm agents on a single node section, but doesn't make sense here that I can see. --- product_docs/docs/efm/4/upgrading.mdx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/product_docs/docs/efm/4/upgrading.mdx b/product_docs/docs/efm/4/upgrading.mdx index d8064ddd1db..939d8175781 100644 --- a/product_docs/docs/efm/4/upgrading.mdx +++ b/product_docs/docs/efm/4/upgrading.mdx @@ -26,9 +26,6 @@ Failover Manager provides a utility to assist you when upgrading a cluster manag 3. Modify the `.properties` and `.nodes` files for Failover Manager 4.7, specifying any new preferences. Use your choice of editor to modify any additional properties in the properties file (located in the `/etc/edb/efm-4.7` directory) before starting the service for that node. For detailed information about property settings, see [The cluster properties file](04_configuring_efm/01_cluster_properties/#cluster_properties). -!!! Note - `db.bin` is a required property. When modifying the properties file, ensure that the `db.bin` property specifies the location of the Postgres `bin` directory. - 4. If you're using Eager Failover, you must disable it before stopping the Failover Manager cluster. For more information, see [Disabling Eager Failover](04_configuring_efm/06_configuring_for_eager_failover/#disabling-eager-failover). 5. Use a version-specific command to stop the old Failover Manager cluster. For example, you can use the following command to stop a version 4.4 cluster: @@ -54,9 +51,6 @@ Upgrade of files is finished. The owner and group for properties and nodes files If you're [using a Failover Manager configuration without sudo](04_configuring_efm/04_extending_efm_permissions/#running_efm_without_sudo), include the `-source` flag and specify the name of the directory in which the configuration files reside when invoking `upgrade-conf`. If the directory isn't the configuration default directory, the upgraded files are created in the directory from which the `upgrade-conf` command was invoked. -!!! Note - If you're using a unit file, manually update the file to reflect the new Failover Manager service name when you perform an upgrade. - ## Uninstalling Failover Manager !!! Note From faf7ff296dbef6d0eae774572950ff56c87e97e7 Mon Sep 17 00:00:00 2001 From: Vishal Sawale Date: Mon, 18 Sep 2023 14:57:44 +0530 Subject: [PATCH 04/11] fix(UPM-24162): Fix typo, space --- .../release/using_cluster/06_analyze_with_superset.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/biganimal/release/using_cluster/06_analyze_with_superset.mdx b/product_docs/docs/biganimal/release/using_cluster/06_analyze_with_superset.mdx index a1d6a40403f..cecf5a2d7c9 100644 --- a/product_docs/docs/biganimal/release/using_cluster/06_analyze_with_superset.mdx +++ b/product_docs/docs/biganimal/release/using_cluster/06_analyze_with_superset.mdx @@ -30,7 +30,7 @@ To connect to a BigAnimal cluster: 2. Select **Analyze > Connections**. 3. Select **+ Database**. 4. In the Add Database dialog box, enter a value for **Database Name**. -5. To connect to the database, you need database user with a password.Enter the connection string for your cluster in the **SQLALCHEMY URI** field, using the following format: +5. To connect to the database, you need database user with a password. Enter the connection string for your cluster in the **SQLALCHEMY URI** field, using the following format: `postgresql://{}:{}@{}:{}/{}?sslmode=verify-full` !!!note From 259582e56599a0b0ca4f93753b771b77d4a6023f Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Mon, 11 Sep 2023 12:38:55 +0100 Subject: [PATCH 05/11] Now with fully automatic index page generation Signed-off-by: Dj Walker-Morgan --- .../security/advisories/cve.mdx.template | 1 + .../security/advisories/cve20074639.mdx | 1 + .../security/advisories/cve201910128.mdx | 1 + .../security/advisories/cve202331043.mdx | 1 + .../security/advisories/cve202341113.mdx | 1 + .../security/advisories/cve202341114.mdx | 1 + .../security/advisories/cve202341115.mdx | 1 + .../security/advisories/cve202341116.mdx | 6 +- .../security/advisories/cve202341117.mdx | 1 + .../security/advisories/cve202341118.mdx | 1 + .../security/advisories/cve202341119.mdx | 1 + .../security/advisories/cve202341120.mdx | 1 + advocacy_docs/security/advisories/index.mdx | 181 +++++++++------ advocacy_docs/security/index.mdx | 106 ++++----- .../security/templates/advisoriesindex.njs | 39 ++++ .../security/templates/securityindex.njs | 45 ++++ .../generators/advisoryindex/advisoryindex.js | 173 ++++++++++++++ .../advisoryindex/package-lock.json | 216 ++++++++++++++++++ .../generators/advisoryindex/package.json | 17 ++ 19 files changed, 662 insertions(+), 132 deletions(-) create mode 100755 advocacy_docs/security/templates/advisoriesindex.njs create mode 100755 advocacy_docs/security/templates/securityindex.njs create mode 100755 tools/automation/generators/advisoryindex/advisoryindex.js create mode 100644 tools/automation/generators/advisoryindex/package-lock.json create mode 100755 tools/automation/generators/advisoryindex/package.json diff --git a/advocacy_docs/security/advisories/cve.mdx.template b/advocacy_docs/security/advisories/cve.mdx.template index bea078ec99c..737e13f1c70 100644 --- a/advocacy_docs/security/advisories/cve.mdx.template +++ b/advocacy_docs/security/advisories/cve.mdx.template @@ -1,6 +1,7 @@ --- title: CVE Title navTitle: CVE ID as CVE-Year-Number +affectedProducts: one liner covering which products affected --- First Published: YYYY/MM/DD (ISO8601) diff --git a/advocacy_docs/security/advisories/cve20074639.mdx b/advocacy_docs/security/advisories/cve20074639.mdx index 87c6c3bb631..591e5d8dc02 100644 --- a/advocacy_docs/security/advisories/cve20074639.mdx +++ b/advocacy_docs/security/advisories/cve20074639.mdx @@ -1,6 +1,7 @@ --- title: CVE-2007-4639 - EDB Advanced Server 8.2 improperly handles debugging function calls navTitle: CVE-2007-4639 +affectedProducts: EDB Advanced Server 8.2 --- First Published: 2007/08/31 diff --git a/advocacy_docs/security/advisories/cve201910128.mdx b/advocacy_docs/security/advisories/cve201910128.mdx index 1625190c580..ac0edcd989b 100644 --- a/advocacy_docs/security/advisories/cve201910128.mdx +++ b/advocacy_docs/security/advisories/cve201910128.mdx @@ -1,6 +1,7 @@ --- title: CVE-2019-10128 - EDB supplied PostgreSQL inherits ACL for installation directory navTitle: CVE-2019-10128 +affectedProducts: PostgreSQL --- First Published: 2021/03/19 diff --git a/advocacy_docs/security/advisories/cve202331043.mdx b/advocacy_docs/security/advisories/cve202331043.mdx index bbdace27441..bf46090ac4b 100644 --- a/advocacy_docs/security/advisories/cve202331043.mdx +++ b/advocacy_docs/security/advisories/cve202331043.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-31043 - EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0 navTitle: CVE-2023-31043 +affectedProducts: EDB Postgres Advanced Server 10.23.32 to 14.5.0 --- First Published: 2023/04/23 diff --git a/advocacy_docs/security/advisories/cve202341113.mdx b/advocacy_docs/security/advisories/cve202341113.mdx index b81a774e300..085470c016b 100644 --- a/advocacy_docs/security/advisories/cve202341113.mdx +++ b/advocacy_docs/security/advisories/cve202341113.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41113 - EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory() navTitle: CVE-2023-41113 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341114.mdx b/advocacy_docs/security/advisories/cve202341114.mdx index c4dcb6de550..b4203893917 100644 --- a/advocacy_docs/security/advisories/cve202341114.mdx +++ b/advocacy_docs/security/advisories/cve202341114.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41114 - EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL navTitle: CVE-2023-41114 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341115.mdx b/advocacy_docs/security/advisories/cve202341115.mdx index 83c847237dd..e49f4cc7a0d 100644 --- a/advocacy_docs/security/advisories/cve202341115.mdx +++ b/advocacy_docs/security/advisories/cve202341115.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41115 - EDB Postgres Advanced Server (EPAS) permission bypass for large objects navTitle: CVE-2023-41115 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341116.mdx b/advocacy_docs/security/advisories/cve202341116.mdx index 13a342a4114..db07c04c79d 100644 --- a/advocacy_docs/security/advisories/cve202341116.mdx +++ b/advocacy_docs/security/advisories/cve202341116.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41116 - EDB Postgres Advanced Server (EPAS) permission bypass for materialized views navTitle: CVE-2023-41116 +affectedProducts: 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 --- First Published: 2023/08/21 @@ -9,10 +10,7 @@ Last Updated: 2023/08/30 ## Summary -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 allows an authenticated user to refresh any materialized -view, regardless of that user's permissions. +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 allows an authenticated user to refresh any materialized view, regardless of that user's permissions. ## Vulnerability details diff --git a/advocacy_docs/security/advisories/cve202341117.mdx b/advocacy_docs/security/advisories/cve202341117.mdx index 8fcbaacd774..288d7d8ca66 100644 --- a/advocacy_docs/security/advisories/cve202341117.mdx +++ b/advocacy_docs/security/advisories/cve202341117.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41117 - EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path navTitle: CVE-2023-41117 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341118.mdx b/advocacy_docs/security/advisories/cve202341118.mdx index 5953cc41dde..b9ce6888252 100644 --- a/advocacy_docs/security/advisories/cve202341118.mdx +++ b/advocacy_docs/security/advisories/cve202341118.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41118 - EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass navTitle: CVE-2023-41118 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341119.mdx b/advocacy_docs/security/advisories/cve202341119.mdx index ca40495a3ec..6c1052adba8 100644 --- a/advocacy_docs/security/advisories/cve202341119.mdx +++ b/advocacy_docs/security/advisories/cve202341119.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41119 - EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser navTitle: CVE-2023-41119 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/cve202341120.mdx b/advocacy_docs/security/advisories/cve202341120.mdx index fb9c0411444..a1f82346248 100644 --- a/advocacy_docs/security/advisories/cve202341120.mdx +++ b/advocacy_docs/security/advisories/cve202341120.mdx @@ -1,6 +1,7 @@ --- title: CVE-2023-41120 - EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission navTitle: CVE-2023-41120 +affectedProducts: 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 --- First Published: 2023/08/21 diff --git a/advocacy_docs/security/advisories/index.mdx b/advocacy_docs/security/advisories/index.mdx index 9501d20e4ff..02ac823fd9e 100644 --- a/advocacy_docs/security/advisories/index.mdx +++ b/advocacy_docs/security/advisories/index.mdx @@ -18,18 +18,25 @@ navigation: - cve20074639 --- -## Updated 2023 + + + + + + + +

Updated 2023

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -
-

CVE-2023-41120

+

CVE-2023-41120

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41120 - EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

+
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

Summary:  @@ -38,31 +45,37 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41119

+

CVE-2023-41119

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser -

-
All EnterpriseDB Postgres Advanced Server (EPAS) versions prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0
+  Updated: 2023/08/30 +

CVE-2023-41119 - EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

+
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

Summary:  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.
Read More... -
-
-

CVE-2023-41118

+

CVE-2023-41118

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41118 - EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

+
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
+

Summary:  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. @@ -70,30 +83,36 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41117

+

CVE-2023-41117

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

-
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
+  Updated: 2023/08/30 +

CVE-2023-41117 - EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

+
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

Summary:  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.
Read More... -
-
-

CVE-2023-41116

+

CVE-2023-41116

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41116 - EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

+
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

Summary:  @@ -102,14 +121,17 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41115

+

CVE-2023-41115

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permission bypass for large objects -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41115 - EDB Postgres Advanced Server (EPAS) permission bypass for large objects

+
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

Summary:  @@ -119,14 +141,16 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1
-

CVE-2023-41114

+

CVE-2023-41114

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41114 - EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

+
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

Summary:  @@ -135,32 +159,36 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41113

+

CVE-2023-41113

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory() -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41113 - EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

+
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

Summary:  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 allows an authenticated user to to obtain information about whether certain files exist on disk, what errors if any occur when attempting to read them, and some limited information about their contents (regardless of permissions). This can occur when a superuser has configured one or more directories for filesystem access via CREATE DIRECTORY and adopted certain non-default settings for log_line_prefix and log_connections. -
+
Read More... -
-
-

CVE-2023-31043

+

CVE-2023-31043

  Read Advisory -  Updated: 2023/05/02 -

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0 -

-
EDB Postgres Advanced Server 10.23.32 to 14.5.0
+  Updated: 2023/05/02 +

CVE-2023-31043 - EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

+
EDB Postgres Advanced Server 10.23.32 to 14.5.0

Summary:  @@ -168,43 +196,54 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo
Read More...
-## Updated 2022 - + + +
+

Updated 2022

+ + + + -
-

CVE-2019-10128

+

CVE-2019-10128

  Read Advisory -  Updated: 2022/01/01 -

EDB supplied PostgreSQL inherits ACL for installation directory -

-
PostgreSQL
+  Updated: 2022/01/01 +

CVE-2019-10128 - EDB supplied PostgreSQL inherits ACL for installation directory

+
PostgreSQL

Summary:  -A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows installer for EDB-supplied PostgreSQL does not lock down the ACL of the binary installation directory or the ACL of the data directory; it keeps the inherited ACL. In the default configuration, this allows a local attacker to read arbitrary data directory files, essentially bypassing database-imposed read access limitations. In plausible non-default configurations, an attacker having both an unprivileged Windows account and an unprivileged PostgreSQL account can cause the PostgreSQL service account to execute arbitrary code. +A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows installer for EnterpriseDB-supplied PostgreSQL does not lock down the ACL of the binary installation directory or the ACL of the data directory; it keeps the inherited ACL. In the default configuration, this allows a local attacker to read arbitrary data directory files, essentially bypassing database-imposed read access limitations. In plausible non-default configurations, an attacker having both an unprivileged Windows account and an unprivileged PostgreSQL account can cause the PostgreSQL service account to execute arbitrary code.
Read More...
-## Updated 2018 - + + +
+

Updated 2018

+ + + +
-

CVE-2007-4639

+

CVE-2007-4639

  Read Advisory -  Updated: 2018/10/15 -

EDB Advanced Server 8.2 improperly handles debugging function calls -

-
EDB Postgres Advanced Server version 8.2
+  Updated: 2018/10/15 +

CVE-2007-4639 - EDB Advanced Server 8.2 improperly handles debugging function calls

+
EDB Advanced Server 8.2

Summary:  -EDB Postgres Advanced Server 8.2 does not properly handle certain debugging function calls that occur before a call to pldbg_create_listener, which allows remote authenticated users to cause a denial of service (daemon crash) and possibly execute arbitrary code via a SELECT statement that invokes a pldbg_ function, as demonstrated by (1) pldbg_get_stack and (2) pldbg_abort_target, which triggers use of an uninitialized pointer.
+EDB Postgres Advanced Server 8.2 (EPAS) does not properly handle certain debugging function calls that occur before a call to `pldbg_create_listener`, which allows remote authenticated users to cause a denial of service (daemon crash) and possibly execute arbitrary code via a SELECT statement that invokes a `pldbg_` function, as demonstrated by (1) `pldbg_get_stack` and (2) `pldbg_abort_target`, which triggers use of an uninitialized pointer. +
Read More... -
+ + + diff --git a/advocacy_docs/security/index.mdx b/advocacy_docs/security/index.mdx index 4dccdc88fbc..00537b22c9c 100644 --- a/advocacy_docs/security/index.mdx +++ b/advocacy_docs/security/index.mdx @@ -24,14 +24,15 @@ This policy outlines how EnterpriseDB handles disclosures related to suspected v ## Most Recent Advisories + + + + + + + + - - - - - - - + + +
-

CVE-2023-41120

+

CVE-2023-41120

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41120 - EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

+
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

Summary:  @@ -40,31 +41,31 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41119

+

CVE-2023-41119

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser -

-
All EnterpriseDB Postgres Advanced Server (EPAS) versions prior to 11.21.32, 12.16.20, 13.12.17, 14.9.0, 15.4.0
+  Updated: 2023/08/30 +

CVE-2023-41119 - EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

+
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

Summary:  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.
Read More... -
-
-

CVE-2023-41118

+

CVE-2023-41118

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41118 - EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

+
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
+

Summary:  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. @@ -72,31 +73,30 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41117

+

CVE-2023-41117

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

-
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
+  Updated: 2023/08/30 +

CVE-2023-41117 - EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

+
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

Summary:  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.
Read More... -
-
-

CVE-2023-41116

+

CVE-2023-41116

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41116 - EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

+
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

Summary:  @@ -105,14 +105,14 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1 Read More...
-

CVE-2023-41115

+

CVE-2023-41115

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permission bypass for large objects -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41115 - EDB Postgres Advanced Server (EPAS) permission bypass for large objects

+
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

Summary:  @@ -122,21 +122,13 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1
-

CVE-2023-41114

+

CVE-2023-41114

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41114 - EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

+
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

Summary:  @@ -147,30 +139,28 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1
-

CVE-2023-41113

+

CVE-2023-41113

  Read Advisory -  Updated: 2023/08/30 -

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory() -

-
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
+  Updated: 2023/08/30 +

CVE-2023-41113 - EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

+
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

Summary:  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 allows an authenticated user to to obtain information about whether certain files exist on disk, what errors if any occur when attempting to read them, and some limited information about their contents (regardless of permissions). This can occur when a superuser has configured one or more directories for filesystem access via CREATE DIRECTORY and adopted certain non-default settings for log_line_prefix and log_connections.
Read More... -
-
-

CVE-2023-31043

+

CVE-2023-31043

  Read Advisory -  Updated: 2023/05/02 -

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0 -

-
EDB Postgres Advanced Server 10.23.32 to 14.5.0
+  Updated: 2023/05/02 +

CVE-2023-31043 - EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

+
EDB Postgres Advanced Server 10.23.32 to 14.5.0

Summary:  @@ -178,4 +168,6 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo
Read More...
+ diff --git a/advocacy_docs/security/templates/advisoriesindex.njs b/advocacy_docs/security/templates/advisoriesindex.njs new file mode 100755 index 00000000000..6597c3c0fe5 --- /dev/null +++ b/advocacy_docs/security/templates/advisoriesindex.njs @@ -0,0 +1,39 @@ +--- +title: EDB Security Advisories +navTitle: Advisories +iconName: Security +hideKBLink: true +hideToC: false +navigation:{% for cve in cvesorted %} +- {{ cve }}{% endfor %} +--- + +{% set updatedYear = -1 %} + +{% for cve in cvesorted %} +{% set thiscve = cves[cve] %} +{% set lastUpdatedYear = thiscve.open_last_updated.slice(0,4) %} +{% if lastUpdatedYear != updatedYear %} +{% if updatedYear != -1 %}{% endif %} +

Updated {{ lastUpdatedYear }}

+{% set updatedYear = lastUpdatedYear %} + +{% endif %} + + +{% endfor %} +
+

{{ thiscve.vulnerability_details_cve_id }}

+ +  Read Advisory +  Updated: {{ thiscve.open_last_updated }} +

{{ thiscve.frontmatter_title }}

+
{{ thiscve.frontmatter_affectedProducts }}
+
+
+Summary:  +{{ thiscve.summary_0 }} +
+Read More... +
+ diff --git a/advocacy_docs/security/templates/securityindex.njs b/advocacy_docs/security/templates/securityindex.njs new file mode 100755 index 00000000000..041bbf2c906 --- /dev/null +++ b/advocacy_docs/security/templates/securityindex.njs @@ -0,0 +1,45 @@ +--- +title: EDB Security +navTitle: EDB Security +directoryDefaults: + iconName: Security + indexCards: none + hideKBLink: true +navigation: + - vulnerability-disclosure-policy + - advisories +--- + +EDB is committed to a security first approach, from the products we build and the platforms we operate, to the services we provide our customers. Transparency is a core principle for the program and part of this effort includes welcoming incoming reports so that we can address concerns surfaced by our customers or security researchers. You’ll also find it in our advisories, which detail issues found and the required fixes or mitigations needed to keep your data and databases safe. + +## Policies + +*

EDB Vulnerability Disclosure Policy

+This policy outlines how EnterpriseDB handles disclosures related to suspected vulnerabilities within our products, systems, or services. It also provides guidance for those who wish to perform security research, or may have discovered a potential security vulnerability impacting EDB. + +## Advisories + +*

Full list of advisories issued

+ +## Most Recent Advisories + + +{% for cve in shortcvelist %} +{% set thiscve = cves[cve] %} + +{% endfor %} +
+

{{ thiscve.vulnerability_details_cve_id }}

+ +  Read Advisory +  Updated: {{ thiscve.open_last_updated }} +

{{ thiscve.frontmatter_title }}

+
{{ thiscve.frontmatter_affectedProducts }}
+
+
+Summary:  +{{ thiscve.summary_0 }} +
+Read More... +
+ diff --git a/tools/automation/generators/advisoryindex/advisoryindex.js b/tools/automation/generators/advisoryindex/advisoryindex.js new file mode 100755 index 00000000000..c360f1af953 --- /dev/null +++ b/tools/automation/generators/advisoryindex/advisoryindex.js @@ -0,0 +1,173 @@ +const fs = require('fs'); +const matter = require('gray-matter'); +const MarkdownIt = require('markdown-it'); +const njk = require('nunjucks'); +const { basename, join } = require('path'); +const parseArgs = require('minimist'); +const { addAbortListener } = require('events'); + +var argv = parseArgs(process.argv.slice(2)); + +if (argv.root == undefined) { + console.log("Need --root"); + process.exit(1); +} + +const securityRoot = argv.root; + +let seccount=10; + +if (argv.count != undefined) { + seccount=parseInt(argv.count); +} + +// We are going to process the advisories in +const advisoriesDir = join(securityRoot, "advisories"); +// To produce an index file named +const advisoriesIndex = join(advisoriesDir, "index.mdx"); +// And another similar but shorted one named +const securityIndex = join(securityRoot, "index.mdx"); + +// Using templates in a directory called +const templatesDir = join(securityRoot, "templates"); + +function parseMarkdownFile(filePath) { + const fileContent = fs.readFileSync(filePath, 'utf8'); + const parsedMatter = matter(fileContent); + + const sections = parsedMatter.content.split('\n#').slice(0); // split at headings + const sectionDicts = sections.map(section => { + const lines = section.split('\n'); + const heading = lines[0].replace('#', '').trim(); + const content = lines.slice(1); + var parsedContent = []; + content.forEach((line, index) => { + if (line !== '') { + if (line.startsWith('* [')) { + // This is a line with a link + // For now, we drop links completely + } else if (line.indexOf(':') > 0) { + const colon = line.indexOf(':'); + let key = line.slice(0, colon); + if (key.startsWith('* ')) { + key = key.slice(2); + } + const value = line.slice(colon + 1).trim(); + + parsedContent.push({ [slugify(key)]: value }); + } else { + parsedContent.push(line); + } + } + }); + + if (heading === '') { + return { ["open"]: parsedContent }; + } + + return { [slugify(heading)]: parsedContent }; + }); + + let docMap = {} + + // add the parsedMatter data to the docmap + Object.keys(parsedMatter.data).forEach(key => { + docMap["frontmatter_" + key] = parsedMatter.data[key]; + }); + + const path = basename(filePath, ".mdx"); + + docMap["filename"] = path; + + // add the flattened sections to the docMap + sectionDicts.forEach(section => { + Object.keys(section).forEach(key => { + let value = section[key]; + if (Array.isArray(value)) { + for (let i = 0; i < value.length; i++) { + if (typeof value[i] === 'object') { + Object.keys(value[i]).forEach(subkey => { + docMap[key + '_' + subkey] = value[i][subkey]; + }) + } else { + docMap[key + '_' + i] = value[i]; + } + } + value = value.join('\n'); + } else { + docMap[key] = value; + } + }) + });; + + return docMap; +} + +// function that takes a string and returns it in lower case, with no spaces +function slugify(string) { + return string + .toLowerCase() + .replace(/[-]+/g, '_') + .replace(/\s+/g, '_') + .replace(/[^\w-]+/g, '') + ; +} + +function cleanCVE(string) { + if (string[0] == "[") { + return string.slice(1, string.indexOf("]", 1)); + } + return string; +} + +// Iterate over all the files that start cve and end with mdx in the source directory, and parse them + +njk.configure(templatesDir, { autoescape: false }); + + + +const files = fs.readdirSync(advisoriesDir).filter(fn => fn.startsWith('cve') && fn.endsWith('mdx')); +files.sort().reverse(); +const cvelist = files.map(file => { return file.replace(/\.[^/.]+$/, "") }); + +let namespace = {}; +let allDocMap = {}; + +cvelist.forEach(cve => { + const docMap = parseMarkdownFile(join(advisoriesDir, cve + '.mdx')); + docMap['vulnerability_details_cve_id'] = cleanCVE(docMap['vulnerability_details_cve_id']); + allDocMap[cve] = docMap; +}); + + +let shortcvelist = []; +let lastyear = ""; +let count = 0; +cvelist.forEach(cve => { + const year = cve.substring(3, 7); + if (lastyear=="") { + count = 0; + lastyear = year; + } else if (lastyear!=year) { + return; + } + if (count < seccount) { + shortcvelist.push(cve); + count++; + } +}); + +namespace["shortcvelist"]= shortcvelist; +namespace["cvesorted"] = cvelist; +namespace["cves"] = allDocMap; + +//console.log(JSON.stringify(namespace, null, 2)); + +const res = njk.render("advisoriesindex.njs", namespace); + +fs.writeFileSync(advisoriesIndex, res); + +const res2 = njk.render("securityindex.njs", namespace); + +fs.writeFileSync(securityIndex,res2); + diff --git a/tools/automation/generators/advisoryindex/package-lock.json b/tools/automation/generators/advisoryindex/package-lock.json new file mode 100644 index 00000000000..84e0b3a6ad6 --- /dev/null +++ b/tools/automation/generators/advisoryindex/package-lock.json @@ -0,0 +1,216 @@ +{ + "name": "jssecindexes", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "jssecindexes", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "gray-matter": "^4.0.3", + "markdown-it": "^13.0.1", + "minimist": "^1.2.8", + "nunjucks": "^3.2.4" + } + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/nunjucks": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", + "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "chokidar": "^3.3.0" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + } + } +} diff --git a/tools/automation/generators/advisoryindex/package.json b/tools/automation/generators/advisoryindex/package.json new file mode 100755 index 00000000000..f979649a8cc --- /dev/null +++ b/tools/automation/generators/advisoryindex/package.json @@ -0,0 +1,17 @@ +{ + "name": "jssecindexes", + "version": "1.0.0", + "description": "", + "main": "advisoryindex.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "gray-matter": "^4.0.3", + "markdown-it": "^13.0.1", + "minimist": "^1.2.8", + "nunjucks": "^3.2.4" + } +} From f3d7f29ac566a772e8f8428511d292b21d1bf5eb Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Mon, 11 Sep 2023 19:44:57 +0100 Subject: [PATCH 06/11] Fixes to title rendering Signed-off-by: Dj Walker-Morgan --- advocacy_docs/security/advisories/index.mdx | 22 +++++++++---------- advocacy_docs/security/index.mdx | 18 +++++++-------- .../generators/advisoryindex/advisoryindex.js | 3 +++ 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/advocacy_docs/security/advisories/index.mdx b/advocacy_docs/security/advisories/index.mdx index 02ac823fd9e..637af7e7864 100644 --- a/advocacy_docs/security/advisories/index.mdx +++ b/advocacy_docs/security/advisories/index.mdx @@ -35,7 +35,7 @@ navigation:   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41120 - EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

+

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

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

@@ -54,7 +54,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41119 - EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

+

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

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

@@ -73,7 +73,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41118 - EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

+

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

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

@@ -92,7 +92,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41117 - EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

+

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

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

@@ -111,7 +111,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41116 - EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

+

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

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

@@ -130,7 +130,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41115 - EDB Postgres Advanced Server (EPAS) permission bypass for large objects

+

EDB Postgres Advanced Server (EPAS) permission bypass for large objects

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

@@ -149,7 +149,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41114 - EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

+

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

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

@@ -168,7 +168,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41113 - EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

+

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

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

@@ -187,7 +187,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/05/02 -

CVE-2023-31043 - EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

+

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

EDB Postgres Advanced Server 10.23.32 to 14.5.0

@@ -211,7 +211,7 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo   Read Advisory   Updated: 2022/01/01 -

CVE-2019-10128 - EDB supplied PostgreSQL inherits ACL for installation directory

+

EDB supplied PostgreSQL inherits ACL for installation directory

PostgreSQL

@@ -235,7 +235,7 @@ A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows   Read Advisory   Updated: 2018/10/15 -

CVE-2007-4639 - EDB Advanced Server 8.2 improperly handles debugging function calls

+

EDB Advanced Server 8.2 improperly handles debugging function calls

EDB Advanced Server 8.2

diff --git a/advocacy_docs/security/index.mdx b/advocacy_docs/security/index.mdx index 00537b22c9c..015f43f180c 100644 --- a/advocacy_docs/security/index.mdx +++ b/advocacy_docs/security/index.mdx @@ -31,7 +31,7 @@ This policy outlines how EnterpriseDB handles disclosures related to suspected v   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41120 - EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

+

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

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

@@ -47,7 +47,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41119 - EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

+

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

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

@@ -63,7 +63,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41118 - EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

+

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

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

@@ -79,7 +79,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41117 - EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

+

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

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

@@ -95,7 +95,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41116 - EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

+

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

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

@@ -111,7 +111,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41115 - EDB Postgres Advanced Server (EPAS) permission bypass for large objects

+

EDB Postgres Advanced Server (EPAS) permission bypass for large objects

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

@@ -127,7 +127,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41114 - EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

+

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

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

@@ -143,7 +143,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/08/30 -

CVE-2023-41113 - EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

+

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

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

@@ -159,7 +159,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1   Read Advisory   Updated: 2023/05/02 -

CVE-2023-31043 - EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

+

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

EDB Postgres Advanced Server 10.23.32 to 14.5.0

diff --git a/tools/automation/generators/advisoryindex/advisoryindex.js b/tools/automation/generators/advisoryindex/advisoryindex.js index c360f1af953..0f416ee08e3 100755 --- a/tools/automation/generators/advisoryindex/advisoryindex.js +++ b/tools/automation/generators/advisoryindex/advisoryindex.js @@ -135,7 +135,10 @@ let allDocMap = {}; cvelist.forEach(cve => { const docMap = parseMarkdownFile(join(advisoriesDir, cve + '.mdx')); + // make sure the cve id isn't a link docMap['vulnerability_details_cve_id'] = cleanCVE(docMap['vulnerability_details_cve_id']); + // trim the cve id off the front of the title + docMap['frontmatter_title']=docMap['frontmatter_title'].slice(docMap['frontmatter_title'].indexOf(" - ")+3); allDocMap[cve] = docMap; }); From cc4ba15b68518542bc82d38206d24815dc979ebe Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Wed, 13 Sep 2023 10:58:58 +0100 Subject: [PATCH 07/11] Fixes as per comments Signed-off-by: Dj Walker-Morgan --- .../security/advisories/cve20074639.mdx | 12 +- .../security/advisories/cve201910128.mdx | 12 +- .../security/advisories/cve202331043.mdx | 12 +- advocacy_docs/security/advisories/index.mdx | 25 ++-- advocacy_docs/security/index.mdx | 19 +-- .../security/templates/advisoriesindex.njs | 13 +- .../security/templates/securityindex.njs | 11 +- .../generators/advisoryindex/advisoryindex.js | 116 ++++++++---------- 8 files changed, 108 insertions(+), 112 deletions(-) diff --git a/advocacy_docs/security/advisories/cve20074639.mdx b/advocacy_docs/security/advisories/cve20074639.mdx index 591e5d8dc02..1c57efdc3c2 100644 --- a/advocacy_docs/security/advisories/cve20074639.mdx +++ b/advocacy_docs/security/advisories/cve20074639.mdx @@ -14,10 +14,14 @@ EDB Postgres Advanced Server 8.2 (EPAS) does not properly handle certain debuggi ## Vulnerability details -CVE-ID: [CVE-2007-4639](https://nvd.nist.gov/vuln/detail/CVE-2007-4639) -CVSS Base Score: Undefined -CVSS Temporal Score: Undefined -CVSS Environmental Score: Undefined +CVE-ID: [CVE-2007-4639](https://nvd.nist.gov/vuln/detail/CVE-2007-4639) + +CVSS Base Score: Undefined + +CVSS Temporal Score: Undefined + +CVSS Environmental Score: Undefined + CVSS Vector: Undefined ## Affected products and versions diff --git a/advocacy_docs/security/advisories/cve201910128.mdx b/advocacy_docs/security/advisories/cve201910128.mdx index ac0edcd989b..d87a9c9da71 100644 --- a/advocacy_docs/security/advisories/cve201910128.mdx +++ b/advocacy_docs/security/advisories/cve201910128.mdx @@ -14,10 +14,14 @@ A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows ## Vulnerability details -CVE-ID: [CVE-2019-10128](https://nvd.nist.gov/vuln/detail/CVE-2019-10128) -CVSS Base Score: 7.8 -CVSS Temporal Score: Undefined -CVSS Environmental Score: Undefined +CVE-ID: [CVE-2019-10128](https://nvd.nist.gov/vuln/detail/CVE-2019-10128) + +CVSS Base Score: 7.8 + +CVSS Temporal Score: Undefined + +CVSS Environmental Score: Undefined + CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H ## Affected products and versions diff --git a/advocacy_docs/security/advisories/cve202331043.mdx b/advocacy_docs/security/advisories/cve202331043.mdx index bf46090ac4b..1edaf3fd5c5 100644 --- a/advocacy_docs/security/advisories/cve202331043.mdx +++ b/advocacy_docs/security/advisories/cve202331043.mdx @@ -14,10 +14,14 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo ## Vulnerability details -CVE-ID: [CVE-2023-31043](https://nvd.nist.gov/vuln/detail/CVE-2023-31043) -CVSS Base Score: 7.5 -CVSS Temporal Score: Undefined -CVSS Environmental Score: Undefined +CVE-ID: [CVE-2023-31043](https://nvd.nist.gov/vuln/detail/CVE-2023-31043) + +CVSS Base Score: 7.5 + +CVSS Temporal Score: Undefined + +CVSS Environmental Score: Undefined + CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N ## Affected products and versions diff --git a/advocacy_docs/security/advisories/index.mdx b/advocacy_docs/security/advisories/index.mdx index 637af7e7864..0b7733b715f 100644 --- a/advocacy_docs/security/advisories/index.mdx +++ b/advocacy_docs/security/advisories/index.mdx @@ -1,4 +1,5 @@ --- +WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE - DO NOT MANUALLY EDIT - SEE tools/automation/generators/advisoryindex title: EDB Security Advisories navTitle: Advisories iconName: Security @@ -34,7 +35,7 @@ navigation:

CVE-2023-41120

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

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
@@ -53,7 +54,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41119

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

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
@@ -72,7 +73,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41118

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

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
@@ -91,7 +92,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41117

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

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
@@ -110,7 +111,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41116

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

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
@@ -129,7 +130,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41115

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permission bypass for large objects

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
@@ -148,7 +149,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41114

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

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
@@ -167,7 +168,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41113

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

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
@@ -186,7 +187,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-31043

  Read Advisory -  Updated: 2023/05/02 +  Updated: 2023/05/02

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

EDB Postgres Advanced Server 10.23.32 to 14.5.0
@@ -210,7 +211,7 @@ EDB Postgres Advanced Server (EPAS) versions before 14.6.0 log unredacted passwo

CVE-2019-10128

  Read Advisory -  Updated: 2022/01/01 +  Updated: 2022/01/01

EDB supplied PostgreSQL inherits ACL for installation directory

PostgreSQL
@@ -234,13 +235,13 @@ A vulnerability was found in PostgreSQL versions 11.x prior to 11.3. The Windows

CVE-2007-4639

  Read Advisory -  Updated: 2018/10/15 +  Updated: 2018/10/15

EDB Advanced Server 8.2 improperly handles debugging function calls

EDB Advanced Server 8.2

Summary:  -EDB Postgres Advanced Server 8.2 (EPAS) does not properly handle certain debugging function calls that occur before a call to `pldbg_create_listener`, which allows remote authenticated users to cause a denial of service (daemon crash) and possibly execute arbitrary code via a SELECT statement that invokes a `pldbg_` function, as demonstrated by (1) `pldbg_get_stack` and (2) `pldbg_abort_target`, which triggers use of an uninitialized pointer. +EDB Postgres Advanced Server 8.2 (EPAS) does not properly handle certain debugging function calls that occur before a call to pldbg_create_listener, which allows remote authenticated users to cause a denial of service (daemon crash) and possibly execute arbitrary code via a SELECT statement that invokes a pldbg_ function, as demonstrated by (1) pldbg_get_stack and (2) pldbg_abort_target, which triggers use of an uninitialized pointer.
Read More...
diff --git a/advocacy_docs/security/index.mdx b/advocacy_docs/security/index.mdx index 015f43f180c..10992ea9b62 100644 --- a/advocacy_docs/security/index.mdx +++ b/advocacy_docs/security/index.mdx @@ -1,4 +1,5 @@ --- +WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE - DO NOT MANUALLY EDIT - SEE tools/automation/generators/advisoryindex title: EDB Security navTitle: EDB Security directoryDefaults: @@ -30,7 +31,7 @@ This policy outlines how EnterpriseDB handles disclosures related to suspected v

CVE-2023-41120

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) DBMS_PROFILER data may be removed without permission

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
@@ -46,7 +47,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41119

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) dbms_aq helper function may run arbitrary SQL as a superuser

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
@@ -62,7 +63,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41118

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) UTL_FILE permission bypass

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
@@ -78,7 +79,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41117

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) SECURITY DEFINER functions and procedures may be hijacked via search_path

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
@@ -94,7 +95,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41116

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permission bypass for materialized views

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
@@ -110,7 +111,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41115

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permission bypass for large objects

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
@@ -126,7 +127,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41114

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) authenticated users may fetch any URL

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
@@ -142,7 +143,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-41113

  Read Advisory -  Updated: 2023/08/30 +  Updated: 2023/08/30

EDB Postgres Advanced Server (EPAS) permissions bypass via accesshistory()

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
@@ -158,7 +159,7 @@ An issue was discovered in EnterpriseDB Postgres Advanced Server (EPAS) before 1

CVE-2023-31043

  Read Advisory -  Updated: 2023/05/02 +  Updated: 2023/05/02

EDB Postgres Advanced Server (EPAS) logs unredacted passwords prior to 14.6.0

EDB Postgres Advanced Server 10.23.32 to 14.5.0
diff --git a/advocacy_docs/security/templates/advisoriesindex.njs b/advocacy_docs/security/templates/advisoriesindex.njs index 6597c3c0fe5..07449f319a6 100755 --- a/advocacy_docs/security/templates/advisoriesindex.njs +++ b/advocacy_docs/security/templates/advisoriesindex.njs @@ -1,4 +1,5 @@ --- +WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE - DO NOT MANUALLY EDIT - SEE tools/automation/generators/advisoryindex title: EDB Security Advisories navTitle: Advisories iconName: Security @@ -12,7 +13,7 @@ navigation:{% for cve in cvesorted %} {% for cve in cvesorted %} {% set thiscve = cves[cve] %} -{% set lastUpdatedYear = thiscve.open_last_updated.slice(0,4) %} +{% set lastUpdatedYear = thiscve.open.last_updated.slice(0,4) %} {% if lastUpdatedYear != updatedYear %} {% if updatedYear != -1 %}{% endif %}

Updated {{ lastUpdatedYear }}

@@ -21,16 +22,16 @@ navigation:{% for cve in cvesorted %} {% endif %} -

{{ thiscve.vulnerability_details_cve_id }}

+

{{ thiscve.vulnerability_details.cve_id }}

  Read Advisory -  Updated: {{ thiscve.open_last_updated }} -

{{ thiscve.frontmatter_title }}

-
{{ thiscve.frontmatter_affectedProducts }}
+  Updated: {{ thiscve.open.last_updated }} +

{{ thiscve.frontmatter.title }}

+
{{ thiscve.frontmatter.affectedProducts }}

Summary:  -{{ thiscve.summary_0 }} +{{ thiscve.summary[0].replaceAll(r/`([^`]*)`/g,"$1") }}
Read More...
diff --git a/advocacy_docs/security/templates/securityindex.njs b/advocacy_docs/security/templates/securityindex.njs index 041bbf2c906..adb91f287be 100755 --- a/advocacy_docs/security/templates/securityindex.njs +++ b/advocacy_docs/security/templates/securityindex.njs @@ -1,4 +1,5 @@ --- +WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE - DO NOT MANUALLY EDIT - SEE tools/automation/generators/advisoryindex title: EDB Security navTitle: EDB Security directoryDefaults: @@ -27,16 +28,16 @@ This policy outlines how EnterpriseDB handles disclosures related to suspected v {% for cve in shortcvelist %} {% set thiscve = cves[cve] %} -

{{ thiscve.vulnerability_details_cve_id }}

+

{{ thiscve.vulnerability_details.cve_id }}

  Read Advisory -  Updated: {{ thiscve.open_last_updated }} -

{{ thiscve.frontmatter_title }}

-
{{ thiscve.frontmatter_affectedProducts }}
+  Updated: {{ thiscve.open.last_updated }} +

{{ thiscve.frontmatter.title }}

+
{{ thiscve.frontmatter.affectedProducts }}

Summary:  -{{ thiscve.summary_0 }} +{{ thiscve.summary[0].replaceAll(r/`([^`]*)`/g,"$1") }}
Read More...
diff --git a/tools/automation/generators/advisoryindex/advisoryindex.js b/tools/automation/generators/advisoryindex/advisoryindex.js index 0f416ee08e3..34904088866 100755 --- a/tools/automation/generators/advisoryindex/advisoryindex.js +++ b/tools/automation/generators/advisoryindex/advisoryindex.js @@ -15,12 +15,13 @@ if (argv.root == undefined) { const securityRoot = argv.root; -let seccount=10; +let seccount = 10; if (argv.count != undefined) { - seccount=parseInt(argv.count); + seccount = parseInt(argv.count); } +const md = new MarkdownIt(); // We are going to process the advisories in const advisoriesDir = join(securityRoot, "advisories"); // To produce an index file named @@ -34,72 +35,50 @@ const templatesDir = join(securityRoot, "templates"); function parseMarkdownFile(filePath) { const fileContent = fs.readFileSync(filePath, 'utf8'); const parsedMatter = matter(fileContent); - - const sections = parsedMatter.content.split('\n#').slice(0); // split at headings - const sectionDicts = sections.map(section => { - const lines = section.split('\n'); - const heading = lines[0].replace('#', '').trim(); - const content = lines.slice(1); - var parsedContent = []; - content.forEach((line, index) => { - if (line !== '') { - if (line.startsWith('* [')) { - // This is a line with a link - // For now, we drop links completely - } else if (line.indexOf(':') > 0) { - const colon = line.indexOf(':'); - let key = line.slice(0, colon); - if (key.startsWith('* ')) { - key = key.slice(2); - } - const value = line.slice(colon + 1).trim(); - - parsedContent.push({ [slugify(key)]: value }); + const parsed = md.parse(parsedMatter.content, {}); + + let heading_capture = false; + let currentHeading = "open"; + let currentSectionMap = {} + let currentSectionArray = []; + + let docMap=parsed.reduce((currentValue, block) => { + if (block.type == "inline") { + if (heading_capture) { + currentHeading = slugify(block.content); + heading_capture=false; + } else { + let match = block.content.match("^([A-Za-z0-9- ]*): *(.*)$"); + if (match) { + let key = slugify(match[1]); + let value = match[2]; + currentSectionMap[key] = value; } else { - parsedContent.push(line); + currentSectionArray.push(block.content); } } - }); - - if (heading === '') { - return { ["open"]: parsedContent }; + } else if (block.type == "heading_open") { + if (currentSectionArray.length!=0) { + value=currentSectionArray; + currentSectionArray = []; + } else { + value=currentSectionMap; + currentSectionMap = {}; + } + heading_capture = true; + currentValue[currentHeading]=value; + } else if (block.type == "heading_close") { } - - return { [slugify(heading)]: parsedContent }; - }); - - let docMap = {} + return currentValue; + }, {}) // add the parsedMatter data to the docmap - Object.keys(parsedMatter.data).forEach(key => { - docMap["frontmatter_" + key] = parsedMatter.data[key]; - }); + docMap["frontmatter"]=parsedMatter.data; const path = basename(filePath, ".mdx"); docMap["filename"] = path; - // add the flattened sections to the docMap - sectionDicts.forEach(section => { - Object.keys(section).forEach(key => { - let value = section[key]; - if (Array.isArray(value)) { - for (let i = 0; i < value.length; i++) { - if (typeof value[i] === 'object') { - Object.keys(value[i]).forEach(subkey => { - docMap[key + '_' + subkey] = value[i][subkey]; - }) - } else { - docMap[key + '_' + i] = value[i]; - } - } - value = value.join('\n'); - } else { - docMap[key] = value; - } - }) - });; - return docMap; } @@ -113,11 +92,11 @@ function slugify(string) { ; } -function cleanCVE(string) { - if (string[0] == "[") { - return string.slice(1, string.indexOf("]", 1)); +function cleanCVE(cvestring) { + if (cvestring[0] == "[") { + return cvestring.slice(1, cvestring.indexOf("]", 1)); } - return string; + return cvestring; } // Iterate over all the files that start cve and end with mdx in the source directory, and parse them @@ -135,10 +114,10 @@ let allDocMap = {}; cvelist.forEach(cve => { const docMap = parseMarkdownFile(join(advisoriesDir, cve + '.mdx')); - // make sure the cve id isn't a link - docMap['vulnerability_details_cve_id'] = cleanCVE(docMap['vulnerability_details_cve_id']); + // make sure the cve id isn't a link + docMap['vulnerability_details']['cve_id'] = cleanCVE(docMap['vulnerability_details']['cve_id']); // trim the cve id off the front of the title - docMap['frontmatter_title']=docMap['frontmatter_title'].slice(docMap['frontmatter_title'].indexOf(" - ")+3); + docMap['frontmatter']['title'] = docMap['frontmatter']['title'].slice(docMap['frontmatter']['title'].indexOf(" - ") + 3); allDocMap[cve] = docMap; }); @@ -148,10 +127,10 @@ let lastyear = ""; let count = 0; cvelist.forEach(cve => { const year = cve.substring(3, 7); - if (lastyear=="") { + if (lastyear == "") { count = 0; lastyear = year; - } else if (lastyear!=year) { + } else if (lastyear != year) { return; } if (count < seccount) { @@ -160,17 +139,18 @@ cvelist.forEach(cve => { } }); -namespace["shortcvelist"]= shortcvelist; +namespace["shortcvelist"] = shortcvelist; namespace["cvesorted"] = cvelist; namespace["cves"] = allDocMap; //console.log(JSON.stringify(namespace, null, 2)); + const res = njk.render("advisoriesindex.njs", namespace); fs.writeFileSync(advisoriesIndex, res); const res2 = njk.render("securityindex.njs", namespace); -fs.writeFileSync(securityIndex,res2); +fs.writeFileSync(securityIndex, res2); From 5cb7557e6c47cfa0c8c7aa569018e65e0abc96b1 Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Wed, 13 Sep 2023 12:04:56 +0100 Subject: [PATCH 08/11] Switch to ESM, added default dir handling Signed-off-by: Dj Walker-Morgan --- .../generators/advisoryindex/advisoryindex.js | 43 +++++++++++-------- .../generators/advisoryindex/package.json | 1 + 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/tools/automation/generators/advisoryindex/advisoryindex.js b/tools/automation/generators/advisoryindex/advisoryindex.js index 34904088866..19ac1ff61b2 100755 --- a/tools/automation/generators/advisoryindex/advisoryindex.js +++ b/tools/automation/generators/advisoryindex/advisoryindex.js @@ -1,19 +1,23 @@ -const fs = require('fs'); -const matter = require('gray-matter'); -const MarkdownIt = require('markdown-it'); -const njk = require('nunjucks'); -const { basename, join } = require('path'); -const parseArgs = require('minimist'); -const { addAbortListener } = require('events'); +import fs from "fs"; +import matter from "gray-matter"; +import MarkdownIt from "markdown-it"; +import njk from "nunjucks"; +import path from 'path'; +import parseArgs from 'minimist'; +import { fileURLToPath } from 'url'; + +// Modules hack for dirname via https://flaviocopes.com/fix-dirname-not-defined-es-module-scope/ +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); var argv = parseArgs(process.argv.slice(2)); -if (argv.root == undefined) { - console.log("Need --root"); - process.exit(1); -} +let securityRoot = argv.root; -const securityRoot = argv.root; +if (securityRoot == undefined) { + securityRoot=path.normalize(path.join(__dirname,"..","..","..","..","advocacy_docs","security")); + console.log(`Using ${securityRoot} as working directory`); +} let seccount = 10; @@ -23,14 +27,14 @@ if (argv.count != undefined) { const md = new MarkdownIt(); // We are going to process the advisories in -const advisoriesDir = join(securityRoot, "advisories"); +const advisoriesDir = path.join(securityRoot, "advisories"); // To produce an index file named -const advisoriesIndex = join(advisoriesDir, "index.mdx"); +const advisoriesIndex = path.join(advisoriesDir, "index.mdx"); // And another similar but shorted one named -const securityIndex = join(securityRoot, "index.mdx"); +const securityIndex = path.join(securityRoot, "index.mdx"); // Using templates in a directory called -const templatesDir = join(securityRoot, "templates"); +const templatesDir = path.join(securityRoot, "templates"); function parseMarkdownFile(filePath) { const fileContent = fs.readFileSync(filePath, 'utf8'); @@ -58,6 +62,7 @@ function parseMarkdownFile(filePath) { } } } else if (block.type == "heading_open") { + let value=""; if (currentSectionArray.length!=0) { value=currentSectionArray; currentSectionArray = []; @@ -75,9 +80,9 @@ function parseMarkdownFile(filePath) { // add the parsedMatter data to the docmap docMap["frontmatter"]=parsedMatter.data; - const path = basename(filePath, ".mdx"); + const cvepath = path.basename(filePath, ".mdx"); - docMap["filename"] = path; + docMap["filename"] = cvepath; return docMap; } @@ -113,7 +118,7 @@ let namespace = {}; let allDocMap = {}; cvelist.forEach(cve => { - const docMap = parseMarkdownFile(join(advisoriesDir, cve + '.mdx')); + const docMap = parseMarkdownFile(path.join(advisoriesDir, cve + '.mdx')); // make sure the cve id isn't a link docMap['vulnerability_details']['cve_id'] = cleanCVE(docMap['vulnerability_details']['cve_id']); // trim the cve id off the front of the title diff --git a/tools/automation/generators/advisoryindex/package.json b/tools/automation/generators/advisoryindex/package.json index f979649a8cc..44055582bd7 100755 --- a/tools/automation/generators/advisoryindex/package.json +++ b/tools/automation/generators/advisoryindex/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "description": "", "main": "advisoryindex.js", + "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, From 7d690ee2e8a567a13549d7fdf00ab136e4c655d4 Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan Date: Thu, 21 Sep 2023 09:00:19 +0100 Subject: [PATCH 09/11] Imported and rearranged sidebar Signed-off-by: Dj Walker-Morgan --- .../tpa/23/{reference => }/INSTALL-repo.mdx | 81 +++---- product_docs/docs/tpa/23/INSTALL.mdx | 2 +- .../docs/tpa/23/firstclusterdeployment.mdx | 222 ++++++++++++++++++ product_docs/docs/tpa/23/index.mdx | 3 + product_docs/docs/tpa/23/opensourcetpa.mdx | 32 +++ .../docs/tpa/23/reference/INSTALL-docker.mdx | 2 +- .../docs/tpa/23/reference/tpaexec-support.mdx | 4 +- .../docs/tpa/23/tpaexec-configure.mdx | 2 +- 8 files changed, 295 insertions(+), 53 deletions(-) rename product_docs/docs/tpa/23/{reference => }/INSTALL-repo.mdx (52%) create mode 100644 product_docs/docs/tpa/23/firstclusterdeployment.mdx create mode 100644 product_docs/docs/tpa/23/opensourcetpa.mdx diff --git a/product_docs/docs/tpa/23/reference/INSTALL-repo.mdx b/product_docs/docs/tpa/23/INSTALL-repo.mdx similarity index 52% rename from product_docs/docs/tpa/23/reference/INSTALL-repo.mdx rename to product_docs/docs/tpa/23/INSTALL-repo.mdx index 63d1b3f5010..28f1ac0ce2a 100644 --- a/product_docs/docs/tpa/23/reference/INSTALL-repo.mdx +++ b/product_docs/docs/tpa/23/INSTALL-repo.mdx @@ -1,4 +1,5 @@ --- +navTitle: Install from Source title: Installing TPA from source originalFilePath: INSTALL-repo.md @@ -9,78 +10,62 @@ repository. !!! Note - EDB customers must [install TPA from packages](../INSTALL/) in + EDB customers must [install TPA from packages](INSTALL/) in order to receive EDB support for the software. To run TPA from source, you must install all of the dependencies (e.g., Python 3.6+) that the packages would handle for you, or download -the source and [run TPA in a Docker container](INSTALL-docker/). +the source and [run TPA in a Docker container](reference/INSTALL-docker/). (Either way will work fine on Linux and macOS.) ## Quickstart -First, you must install the various dependencies that would have been -installed automatically along with the TPA packages. (You can use -something other than `sudo` to run these commands as root, if you -prefer.) +First, you must install the various dependencies Python 3, Python +venv, git, openvpn and patch. Installing from EDB repositories would +would install these automatically along with the TPA +packages. -```bash -# Debian or Ubuntu -$ sudo apt-get install python3 python3-pip python3-venv \ - git openvpn patch +Before you install TPA, you must install the required packages: -# RedHat, Rocky or AlmaLinux (python3 for RHEL7, python36 for RHEL8) -$ sudo yum install python36 python3-pip \ - epel-release git openvpn patch +- **Debian/Ubuntu**
`sudo apt-get install python3 python3-pip python3-venv git openvpn patch` +- **Redhat, Rocky or AlmaLinux (RHEL7)**
`sudo yum install python3 python3-pip epel-release git openvpn patch` +- **Redhat, Rocky or AlmaLinux (RHEL8)**
`sudo yum install python36 python3-pip epel-release git openvpn patch` -# MacOS X -$ brew tap discoteq/discoteq -$ brew install python@3 openvpn flock coreutils gpatch git -``` +## Clone and setup -Next, install TPA itself: +With prerequisites installed, you can now clone the repository. -```bash -$ git clone ssh://git@github.com/EnterpriseDB/tpa.git -$ ./tpa/bin/tpaexec setup -$ ./tpa/bin/tpaexec selftest ``` +git clone https://github.com/enterprisedb/tpa.git ~/tpa +``` + +This creates a `tpa` directory in your home directory. + +If you prefer to checkout with ssh use:
-## Step-by-step +``` +git clone ssh://git@github.com/EnterpriseDB/tpa.git ~/tpa +``` -Install the various dependencies as described above. +Add the bin directory, found within in your newly created clone, to your path with: -If your system does not have Python 3.6+ packages, you can use `pyenv` -to install a more recent Python in your home directory (see below), or -you can [run TPA in a Docker container](INSTALL-docker/). +`export PATH=$PATH:$HOME/tpa/bin` -Next, clone the TPA repository into, say, `~/tpa`. (It doesn't -matter where you put it, but don't use `/opt/EDB/TPA` or -`/opt/2ndQuadrant/TPA`, to avoid conflicts if you install the TPA -packages in future.) +Add this line to your `.bashrc` file (or other profile file for your preferred shell). -```bash -$ git clone ssh://git@github.com/EnterpriseDB/tpa.git ~/tpa -``` +You can now create a working tpa environment by running: -(If you're installing from source, please clone the repository instead -of downloading an archive of the source.) +`tpaexec setup` -The remaining steps are the same as if you had installed the package. +This will create the Python virtual environment that TPA will use in future. All needed packages are installed in this environment. To test this configured correctly, run the following: -```bash -# Add tpaexec to your PATH for convenience -# (Put this in your ~/.bashrc too) -$ export PATH=$PATH:$HOME/tpa/bin +`tpaexec selftest` -$ tpaexec setup -$ tpaexec selftest -``` +You now have tpaexec installed. -If the self-test completes without any errors, your TPA installation -is ready for use. +## Dependencies -## Python 3.6+ +### Python 3.6+ TPA requires Python 3.6 or later, available on most modern distributions. If you don't have it, you can use @@ -112,7 +97,7 @@ If you were not already using pyenv, please remember to add `pyenv` to your PATH in .bashrc and call `eval "$(pyenv init -)"` as described in the [pyenv documentation](https://github.com/pyenv/pyenv#installation). -## Virtual environment options +### Virtual environment options By default, `tpaexec setup` will use the builtin Python 3 `-m venv` to create a venv under `$TPA_DIR/tpa-venv`, and activate it diff --git a/product_docs/docs/tpa/23/INSTALL.mdx b/product_docs/docs/tpa/23/INSTALL.mdx index 6398a34f496..f7967e3f294 100644 --- a/product_docs/docs/tpa/23/INSTALL.mdx +++ b/product_docs/docs/tpa/23/INSTALL.mdx @@ -10,7 +10,7 @@ To use TPA, you need to install from packages or source and run the packages. If you have an EDB subscription plan, and therefore have access to the EDB repositories, you should follow these instructions. To install TPA from source, please refer to -[Installing TPA from Source](reference/INSTALL-repo/). +[Installing TPA from Source](INSTALL-repo/). See [Distribution support](reference/distributions/) for information on what platforms are supported. diff --git a/product_docs/docs/tpa/23/firstclusterdeployment.mdx b/product_docs/docs/tpa/23/firstclusterdeployment.mdx new file mode 100644 index 00000000000..3656599e79a --- /dev/null +++ b/product_docs/docs/tpa/23/firstclusterdeployment.mdx @@ -0,0 +1,222 @@ +--- +navTitle: Tutorial +title: A First Cluster Deployment +originalFilePath: firstclusterdeployment.md + +--- + +In this short tutorial, we are going to work through deploying a simple [M1 architecture](architecture-M1/) deployment onto a local Docker installation. By the end you will have four containers, one primary database, two replicas and a backup node, configured and ready for you to explore. + +For this example, we will run TPA on an Ubuntu system, but the considerations are similar for most Linux systems. + +### Installing TPA + +If you're an EDB customer, you'll want to follow the [EDB Repo instructions](INSTALL/) which will install the TPA packages straight from EDB's repositories. + +If you are an open source user of TPA, there's [instructions on how to build from the source](INSTALL-repo/) which you can download from Github.com. + +Follow those guides and then return here. + +### Installing Docker + +As we said, We are going to deploy the example deployment onto Docker and unless you already have Docker installed we'll need to set that up. + +On Debian or Ubuntu, install Docker by running: + +``` +sudo apt update +sudo apt install docker.io +``` + +For other Linux distributions, consult the [Docker Engine Install page](https://docs.docker.com/engine/install/). + +You will want to add your user to the docker group with: + +``` +sudo usermod -aG docker +newgrp docker +``` + +### CgroupVersion + +Currently, TPA requires Cgroups Version 1 be configured on your system, + +Run: + +``` +mount | grep cgroup | head -1 +``` + +and if you do not see a reference to `tmpfs` in the output, you'll need to disable cgroups v2. + +Run: + +``` +echo 'GRUB_CMDLINE_LINUX=systemd.unified_cgroup_hierarchy=false' | sudo tee /etc/default/grub.d/cgroup.cfg +``` + +To make the appropriate changes, then update Grub and reboot your system with: + +``` +sudo update-grub +sudo reboot +``` + +!!! Warning + + Giving a user the ability to speak to the Docker daemon + lets them trivially gain root on the Docker host. Only trusted users + should have access to the Docker daemon. + +### Creating a configuration with TPA + +The next step in this process is to create a configuration. TPA does most of the work for you through its `configure` command. All you have to do is supply command line flags and options to select, in broad terms, what you want to deploy. Here's our `tpaexec configure` command: + +``` +tpaexec configure demo --architecture M1 --platform docker --postgresql 15 --enable-repmgr --no-git +``` + +This creates a configuration called `demo` which has the [M1 architecture](architecture-M1/). It will therefore have a primary, replica and backup node. + +The `--platform docker` tells TPA that this configuration should be created on a local Docker instance; it will provision all the containers and OS requirements. Other platforms include [AWS](platform-aws), which does the same with Amazon Web Services and [Bare](platform-bare), which skips to operating system provisioning and goes straight to installing software on already configured Linux hosts. + +With `--postgresql 15`, we instruct TPA to use Community Postgres, version 15. There are several options here in terms of selecting software, but this is the most straightforward default for open-source users. + +Adding `--enable-repmgr` tells TPA to use configure the deployment to use [Replication Manager](https://www.repmgr.org/) to hand replication and failover. + +Finally, `--no-git` turns off the feature in TPA which allows you to revision control your configuration through git. + +Run this command, and apparently, nothing will happen on the command line. But you will find a directory called `demo` has been created containing some files including a `config.yml` file which is a blueprint for our new deployment. + +## Provisioning the deployment + +Now we are ready to create the containers (or virtual machines) on which we will run our new deployment. This can be achieved with the `provision` command. Run: + +``` +tpaexec provision demo +``` + +You will see TPA work through the various operations needed to prepare for deployment of your configuration. + +## Deploying + +Once provisioned, you can move on to deployment. This installs, if needed, operating systems and system packages. It then installs the requested Postgres architecture and performs all the needed configuration. + +``` +tpaexec deploy demo +``` + +You will see TPA work through the various operations needed to deploy your configuration. + +## Testing + +You can quickly test your newly deployed configuration using the tpaexec `test` command which will run pgbench on your new database. + +``` +tpaexec test demo +``` + +## Connecting + +To get to a psql prompt, the simplest route is to log into one of the containers (or VMs or host depending on configuration) using docker or SSH. Run + +``` +tpaexec ping demo +``` + +to ping all the connectable hosts in the deployment: You will get output that looks something like: + +``` +$ tpaexec ping demo +unfair | SUCCESS => { + "changed": false, + "ping": "pong" +} +uptake | SUCCESS => { + "changed": false, + "ping": "pong" +} +quondam | SUCCESS => { + "changed": false, + "ping": "pong" +} +uptight | SUCCESS => { + "changed": false, + "ping": "pong" +} +``` + +Select one of the nodes which responded with `SUCCESS`. We shall use `uptake` for this example. + +If you are only planning on using docker, use the command `docker exec -it uptake /bin/bash`, substituting in the appropriate hostname. + +Another option, that works with all types of TPA deployment is to use SSH. To do that, first change current directory to the created configuration directory. + +For example, our configuration is called demo, so we go to that directory. In there, we run `ssh -F ssh_config ourhostname` to connect. + +``` +cd demo +ssh -F ssh_config uptake +Last login: Wed Sep 6 10:08:01 2023 from 172.17.0.1 +[root@uptake ~]# +``` + +In both cases, you will be logged in as a root user on the container. + +We can now change user to the `postgres` user using `sudo -iu postgres`. As `postgres` we can run `psql`. TPA has already configured that user with a `.pgpass` file so there's no need to present a password. + +``` +[root@uptake ~]# +postgres@uptake:~ $ psql +psql (15.4) +Type "help" for help. + +postgres=# +``` + +And we are connected to our database. + +You can connect from the host system without SSHing into one of the containers. Obtain the IP address of the host you want to connect to from the `ssh_config` file. + +``` +$ grep "^ *Host" demo/ssh_config +Host * +Host uptight + HostName 172.17.0.9 +Host unfair + HostName 172.17.0.4 +Host quondam + HostName 172.17.0.10 +Host uptake + HostName 172.17.0.11 +``` + +We are going to connect to uptake, so the IP address is 172.17.0.11. + +You will also need to retrieve the password for the postgres user too. Run `tpaexec show-password demo postgres` to get the stored password from the system. + +``` +tpaexec show-password demo postgres +a9LmI1X^uMOpPoEnLuRdL%L$oRQak3om +``` + +Assuming you have a Postgresql client installed, you can then run: + +``` +psql --host 172.17.0.11 -U postgres +Password for user postgres: +``` + +Enter the password you previously retrieved. + +``` +psql (14.9 (Ubuntu 14.9-0ubuntu0.22.04.1), server 15.4) +WARNING: psql major version 14, server major version 15. + Some psql features might not work. +SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) +Type "help" for help. + +postgres=# +``` + +You are now connected from the Docker host to Postgres running in one of the TPA deployed Docker containers. diff --git a/product_docs/docs/tpa/23/index.mdx b/product_docs/docs/tpa/23/index.mdx index f7dfb75ecfb..06019dc8b2b 100644 --- a/product_docs/docs/tpa/23/index.mdx +++ b/product_docs/docs/tpa/23/index.mdx @@ -3,7 +3,10 @@ navigation: - index - rel_notes - INSTALL + - opensourcetpa + - INSTALL-repo - '#Creating a cluster' + - firstclusterdeployment - tpaexec-configure - tpaexec-provision - tpaexec-deploy diff --git a/product_docs/docs/tpa/23/opensourcetpa.mdx b/product_docs/docs/tpa/23/opensourcetpa.mdx new file mode 100644 index 00000000000..831ed557ee5 --- /dev/null +++ b/product_docs/docs/tpa/23/opensourcetpa.mdx @@ -0,0 +1,32 @@ +--- +navTitle: Open Source +title: Open source TPA +originalFilePath: opensourcetpa.md + +--- + +## What is Trusted Postgres Architect (TPA)? + +TPA is an orchestration tool developed by [EnterpriseDB (EDB)](https://www.enterprisedb.com/) that uses Ansible to deploy Postgres clusters according to EDB's recommendations. + +TPA embodies the best practices followed by EDB, informed by many years of hard-earned experience with deploying and supporting Postgres. These recommendations are as applicable to quick testbed setups as to production environments. + +## Next Steps + +- [Installing TPA from Source](INSTALL-repo/) +- [Deploying your first cluster](firstclusterdeployment/) +- [TPA's full documentation online](https://www.enterprisedb.com/docs/tpa/latest/) + +## TPA Open Source FAQs + +### Can I use this if I'm not an EDB customer? + +Yes, TPA is an open source project under the GPLv3 license. It supports deploying clusters comprised of open source software, or EDB's proprietary products, or combinations. + +### Can I report an issue? + +Yes, if you're an EDB customer then please contact support. Otherwise please open a GitHub Issue. + +### Can I contribute? + +Sure, we'd love to hear from you but please open an issue before you start coding. We are quite selective with what TPA can/should do so bug fixes are more likely to get accepted than new features. diff --git a/product_docs/docs/tpa/23/reference/INSTALL-docker.mdx b/product_docs/docs/tpa/23/reference/INSTALL-docker.mdx index 34b1b2be4cd..c96498b79ba 100644 --- a/product_docs/docs/tpa/23/reference/INSTALL-docker.mdx +++ b/product_docs/docs/tpa/23/reference/INSTALL-docker.mdx @@ -6,7 +6,7 @@ originalFilePath: INSTALL-docker.md If you are using a system for which there are no [TPA packages](../INSTALL/) available, and it's difficult to run TPA after -[installing from source](INSTALL-repo/) (for example, because it's not +[installing from source](../INSTALL-repo/) (for example, because it's not easy to obtain a working Python 3.6+ interpreter), your last resort may be to build a Docker image and run TPA inside a Docker container. diff --git a/product_docs/docs/tpa/23/reference/tpaexec-support.mdx b/product_docs/docs/tpa/23/reference/tpaexec-support.mdx index 383ead3df73..196c050140f 100644 --- a/product_docs/docs/tpa/23/reference/tpaexec-support.mdx +++ b/product_docs/docs/tpa/23/reference/tpaexec-support.mdx @@ -11,9 +11,9 @@ originalFilePath: tpaexec-support.md TPA can install and configure the following major components. -- Postgres 15, 14, 13, 12, 11 +- Postgres 16, 15, 14, 13, 12, 11 -- EPAS (EDB Postgres Advanced Server) 15, 14, 13, 12 +- EPAS (EDB Postgres Advanced Server) 16, 15, 14, 13, 12 - PGD 5, 4, 3.7 diff --git a/product_docs/docs/tpa/23/tpaexec-configure.mdx b/product_docs/docs/tpa/23/tpaexec-configure.mdx index d1e72dd042d..df8b0027ba5 100644 --- a/product_docs/docs/tpa/23/tpaexec-configure.mdx +++ b/product_docs/docs/tpa/23/tpaexec-configure.mdx @@ -251,7 +251,7 @@ details. #### Postgres flavour and version TPA supports PostgreSQL, EDB Postgres Extended, and EDB Postgres -Advanced Server (EPAS) versions 11 through 15. +Advanced Server (EPAS) versions 11 through 16. You must specify both the flavour (or distribution) and major version of Postgres to install, for example: From a72c3ba842572d033823b6ec84f77886bea28987 Mon Sep 17 00:00:00 2001 From: Simon Notley <43099400+sonotley@users.noreply.github.com> Date: Thu, 21 Sep 2023 15:12:23 +0100 Subject: [PATCH 10/11] TPA 23.23 rel notes --- product_docs/docs/tpa/23/rel_notes/index.mdx | 2 ++ .../tpa/23/rel_notes/tpa_23.23_rel_notes.mdx | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 product_docs/docs/tpa/23/rel_notes/tpa_23.23_rel_notes.mdx diff --git a/product_docs/docs/tpa/23/rel_notes/index.mdx b/product_docs/docs/tpa/23/rel_notes/index.mdx index a0aad80b43e..3ac7cfb5b11 100644 --- a/product_docs/docs/tpa/23/rel_notes/index.mdx +++ b/product_docs/docs/tpa/23/rel_notes/index.mdx @@ -2,6 +2,7 @@ title: Trusted Postgres Architect release notes navTitle: "Release notes" navigation: + - tpa_23.23_rel_notes - tpa_23.22_rel_notes - tpa_23.21_rel_notes - tpa_23.20_rel_notes @@ -20,6 +21,7 @@ The Trusted Postgres Architect documentation describes the latest version of Tru | Version | Release date | | ---------------------------- | ------------ | +| [23.23](tpa_23.22_rel_notes) | 21 Sep 2023 | | [23.22](tpa_23.22_rel_notes) | 06 Sep 2023 | | [23.21](tpa_23.21_rel_notes) | 05 Sep 2023 | | [23.20](tpa_23.20_rel_notes) | 01 Aug 2023 | diff --git a/product_docs/docs/tpa/23/rel_notes/tpa_23.23_rel_notes.mdx b/product_docs/docs/tpa/23/rel_notes/tpa_23.23_rel_notes.mdx new file mode 100644 index 00000000000..14ea25356b6 --- /dev/null +++ b/product_docs/docs/tpa/23/rel_notes/tpa_23.23_rel_notes.mdx @@ -0,0 +1,23 @@ +--- +title: Trusted Postgres Architect 23.23 release notes +navTitle: "Version 23.23" +--- + +Released: 21 Sep 2023 + + +New features, enhancements, bug fixes, and other changes in Trusted Postgres Architect 23.23 include the following: + +| Type | Description | +| ---- |------------ | +| Enhancement | TPA now supports PostgreSQL 16. Please note, PostgreSQL 16 packages are not yet available in all supported repos, so not all configurations will work until this is the case. | +| Change | When Postgres 16 or above is selected, TPA will not add any 2ndQuadrant repos by default. TPA will explicitly set `tpa_2q_repositories: []` in this case. | +| Change | EFM is now configured to use JDK 11 by default on platforms where it is available. | +| Change | Where no EDB Repositories are use, TPA will not exclude any packages from PGDG (previously Barman and psycopg2 were excluded). | +| Change | Added package names for etcd and Patroni to support installation on SLES. | +| Bug Fix | Fixed an issue whereby Apache HTTPD service for PEM Server would not start on boot. | +| Bug Fix | Fixed an issue whereby pg_backup_api tests were run with incorrect permissions causing them to fail. | +| Bug Fix | Fixed an issue whereby Apache HTTPD service for pg_backup_api would not start on boot. | +| Bug Fix | Fixed an issue whereby `bdr.standby_slot_names` and `bdr.standby_slots_min_confirmed` checks used the incorrect schema on bdr3 clusters. | +| Bug Fix | Fixed an issue whereby configuration keys for extensions were passed to Patroni in the incorrect format, resulting in 'WARNING: Removing unexpected parameter'. | +| Bug Fix | Fixed an issue when using the intermediate base image option for `docker_images` whereby the resulting image name was incorrect. | \ No newline at end of file From aaa60ff969678aefd7ab457c35c4165299e2140b Mon Sep 17 00:00:00 2001 From: Dj Walker-Morgan <126472455+djw-m@users.noreply.github.com> Date: Thu, 21 Sep 2023 15:20:07 +0100 Subject: [PATCH 11/11] Update product_docs/docs/tpa/23/rel_notes/index.mdx --- product_docs/docs/tpa/23/rel_notes/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_docs/docs/tpa/23/rel_notes/index.mdx b/product_docs/docs/tpa/23/rel_notes/index.mdx index 3ac7cfb5b11..c35d67d7f63 100644 --- a/product_docs/docs/tpa/23/rel_notes/index.mdx +++ b/product_docs/docs/tpa/23/rel_notes/index.mdx @@ -21,7 +21,7 @@ The Trusted Postgres Architect documentation describes the latest version of Tru | Version | Release date | | ---------------------------- | ------------ | -| [23.23](tpa_23.22_rel_notes) | 21 Sep 2023 | +| [23.23](tpa_23.23_rel_notes) | 21 Sep 2023 | | [23.22](tpa_23.22_rel_notes) | 06 Sep 2023 | | [23.21](tpa_23.21_rel_notes) | 05 Sep 2023 | | [23.20](tpa_23.20_rel_notes) | 01 Aug 2023 |