Date
1 - 4 of 4
[meta-oe][dunfell][PATCH] postgresql: CVE-2022-41862 Client memory disclosure when connecting with Kerberos to modified server
Hitendra Prajapati
Upstream-Status: Backport from https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=3f7342671341a7a137f2d8b06ab3461cdb0e1d88
Signed-off-by: Hitendra Prajapati <hprajapati@...>
---
.../postgresql/files/CVE-2022-41862.patch | 48 +++++++++++++++++++
.../recipes-dbs/postgresql/postgresql_12.9.bb | 1 +
2 files changed, 49 insertions(+)
create mode 100644 meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
diff --git a/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch b/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
new file mode 100644
index 0000000000..f4093f4ba7
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
@@ -0,0 +1,48 @@
+From 3f7342671341a7a137f2d8b06ab3461cdb0e1d88 Mon Sep 17 00:00:00 2001
+From: Michael Paquier <michael@...>
+Date: Mon, 6 Feb 2023 11:20:31 +0900
+Subject: [PATCH] Properly NULL-terminate GSS receive buffer on error packet
+ reception
+
+pqsecure_open_gss() includes a code path handling error messages with
+v2-style protocol messages coming from the server. The client-side
+buffer holding the error message does not force a NULL-termination, with
+the data of the server getting copied to the errorMessage of the
+connection. Hence, it would be possible for a server to send an
+unterminated string and copy arbitrary bytes in the buffer receiving the
+error message in the client, opening the door to a crash or even data
+exposure.
+
+As at this stage of the authentication process the exchange has not been
+completed yet, this could be abused by an attacker without Kerberos
+credentials. Clients that have a valid kerberos cache are vulnerable as
+libpq opportunistically requests for it except if gssencmode is
+disabled.
+
+Author: Jacob Champion
+Backpatch-through: 12
+Security: CVE-2022-41862
+
+CVE: CVE-2022-41862
+Upstream-Status: Backport [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=3f7342671341a7a137f2d8b06ab3461cdb0e1d88]
+Signed-off-by: Hitendra Prajapati <hprajapati@...>
+---
+ src/interfaces/libpq/fe-secure-gssapi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/interfaces/libpq/fe-secure-gssapi.c b/src/interfaces/libpq/fe-secure-gssapi.c
+index 7b5e383..aef201b 100644
+--- a/src/interfaces/libpq/fe-secure-gssapi.c
++++ b/src/interfaces/libpq/fe-secure-gssapi.c
+@@ -578,6 +578,8 @@ pqsecure_open_gss(PGconn *conn)
+
+ PqGSSRecvLength += ret;
+
++ Assert(PqGSSRecvLength < PQ_GSS_RECV_BUFFER_SIZE);
++ PqGSSRecvBuffer[PqGSSRecvLength] = '\0';
+ printfPQExpBuffer(&conn->errorMessage, "%s\n", PqGSSRecvBuffer + 1);
+
+ return PGRES_POLLING_FAILED;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb b/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
index 860e821b20..808c5d6e77 100644
--- a/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
+++ b/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
@@ -9,6 +9,7 @@ SRC_URI += "\
file://remove_duplicate.patch \
file://CVE-2022-1552.patch \
file://CVE-2022-2625.patch \
+ file://CVE-2022-41862.patch \
"
SRC_URI[sha256sum] = "89fda2de33ed04a98548e43f3ee5f15b882be17505d631fe0dd1a540a2b56dce"
--
2.25.1
Signed-off-by: Hitendra Prajapati <hprajapati@...>
---
.../postgresql/files/CVE-2022-41862.patch | 48 +++++++++++++++++++
.../recipes-dbs/postgresql/postgresql_12.9.bb | 1 +
2 files changed, 49 insertions(+)
create mode 100644 meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
diff --git a/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch b/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
new file mode 100644
index 0000000000..f4093f4ba7
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/CVE-2022-41862.patch
@@ -0,0 +1,48 @@
+From 3f7342671341a7a137f2d8b06ab3461cdb0e1d88 Mon Sep 17 00:00:00 2001
+From: Michael Paquier <michael@...>
+Date: Mon, 6 Feb 2023 11:20:31 +0900
+Subject: [PATCH] Properly NULL-terminate GSS receive buffer on error packet
+ reception
+
+pqsecure_open_gss() includes a code path handling error messages with
+v2-style protocol messages coming from the server. The client-side
+buffer holding the error message does not force a NULL-termination, with
+the data of the server getting copied to the errorMessage of the
+connection. Hence, it would be possible for a server to send an
+unterminated string and copy arbitrary bytes in the buffer receiving the
+error message in the client, opening the door to a crash or even data
+exposure.
+
+As at this stage of the authentication process the exchange has not been
+completed yet, this could be abused by an attacker without Kerberos
+credentials. Clients that have a valid kerberos cache are vulnerable as
+libpq opportunistically requests for it except if gssencmode is
+disabled.
+
+Author: Jacob Champion
+Backpatch-through: 12
+Security: CVE-2022-41862
+
+CVE: CVE-2022-41862
+Upstream-Status: Backport [https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=3f7342671341a7a137f2d8b06ab3461cdb0e1d88]
+Signed-off-by: Hitendra Prajapati <hprajapati@...>
+---
+ src/interfaces/libpq/fe-secure-gssapi.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/interfaces/libpq/fe-secure-gssapi.c b/src/interfaces/libpq/fe-secure-gssapi.c
+index 7b5e383..aef201b 100644
+--- a/src/interfaces/libpq/fe-secure-gssapi.c
++++ b/src/interfaces/libpq/fe-secure-gssapi.c
+@@ -578,6 +578,8 @@ pqsecure_open_gss(PGconn *conn)
+
+ PqGSSRecvLength += ret;
+
++ Assert(PqGSSRecvLength < PQ_GSS_RECV_BUFFER_SIZE);
++ PqGSSRecvBuffer[PqGSSRecvLength] = '\0';
+ printfPQExpBuffer(&conn->errorMessage, "%s\n", PqGSSRecvBuffer + 1);
+
+ return PGRES_POLLING_FAILED;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb b/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
index 860e821b20..808c5d6e77 100644
--- a/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
+++ b/meta-oe/recipes-dbs/postgresql/postgresql_12.9.bb
@@ -9,6 +9,7 @@ SRC_URI += "\
file://remove_duplicate.patch \
file://CVE-2022-1552.patch \
file://CVE-2022-2625.patch \
+ file://CVE-2022-41862.patch \
"
SRC_URI[sha256sum] = "89fda2de33ed04a98548e43f3ee5f15b882be17505d631fe0dd1a540a2b56dce"
--
2.25.1
Hitendra Prajapati
Hi Armin,
No problem.
Thank you for the update.
Regards,
Hitendra
On Mon, 3 Apr 2023, 8:59 pm Armin Kuster, <akuster808@...> wrote:
On 4/3/23 7:15 AM, Hitendra Prajapati wrote:
> Hi Team,
>
> Any update on this issue ?
Don't know yet. I have only on build system and these things take time
to work though the branch rotations.
-armin
>
> Regards,
> Hitendra
>
>
>