This is an automated email from the ASF dual-hosted git repository.

reshke pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/main by this push:
     new 68e52482729 Backport: Properly NULL-terminate GSS receive buffer on 
error packet reception (#1498)
68e52482729 is described below

commit 68e52482729eada3172b546cb73312627d9fe740
Author: reshke <[email protected]>
AuthorDate: Tue Dec 23 18:58:46 2025 +0500

    Backport: Properly NULL-terminate GSS receive buffer on error packet 
reception (#1498)
    
    This pr fixes https://www.postgresql.org/support/security/CVE-2022-41862/ 
in cloudberry
    
    
    
https://git.postgresql.org/cgit/postgresql.git/commit/?id=71c37797d7bd78266146a5829ab62b3687c47295
    
    
    Original commit message:
    
    ===
    
    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
---
 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 7006ed58a12..aeb6e35dbdd 100644
--- a/src/interfaces/libpq/fe-secure-gssapi.c
+++ b/src/interfaces/libpq/fe-secure-gssapi.c
@@ -585,6 +585,8 @@ pqsecure_open_gss(PGconn *conn)
 
                        PqGSSRecvLength += ret;
 
+                       Assert(PqGSSRecvLength < PQ_GSS_RECV_BUFFER_SIZE);
+                       PqGSSRecvBuffer[PqGSSRecvLength] = '\0';
                        appendPQExpBuffer(&conn->errorMessage, "%s\n", 
PqGSSRecvBuffer + 1);
 
                        return PGRES_POLLING_FAILED;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to