pg.ddx.io  pgsql-committers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
pgsql: libpq: Bail out during SSL/GSS negotiation errors
7+ messages / 1 participants
[nested] [flat]

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_16_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/67d28bd02ec06f5056754bc295f57d2dd2bbd749

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 14 +++++---------
2 files changed, 16 insertions(+), 19 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/7b49707b72612ef068ce9275b9b6da104f1960f3

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 15 ++++++---------
2 files changed, 17 insertions(+), 19 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/2a951ef0aace58026c31b9a88aeeda19c9af4205

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 15 ++++++---------
2 files changed, 17 insertions(+), 19 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/e6c9454764d880ee30735aa8c1e05d3674722ff9

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 15 ++++++---------
2 files changed, 17 insertions(+), 19 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_15_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/d2c3e31c13a6820980c2c6019f0b8f9f0b63ae6e

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 15 ++++++---------
2 files changed, 17 insertions(+), 19 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/bf8835ea9717df50230c12133cff1b486dcc57be

Modified Files
--------------
doc/src/sgml/protocol.sgml                         | 21 ++++++-------
src/interfaces/libpq/fe-connect.c                  | 34 +++++++---------------
src/interfaces/libpq/t/005_negotiate_encryption.pl |  2 +-
3 files changed, 22 insertions(+), 35 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread

* pgsql: libpq: Bail out during SSL/GSS negotiation errors
@ 2024-11-11 01:20  Michael Paquier <michael@paquier.xyz>
  0 siblings, 0 replies; 7+ messages in thread

From: Michael Paquier @ 2024-11-11 01:20 UTC (permalink / raw)
  To: pgsql-committers@lists.postgresql.org

libpq: Bail out during SSL/GSS negotiation errors

This commit changes libpq so that errors reported by the backend during
the protocol negotiation for SSL and GSS are discarded by the client, as
these may include bytes that could be consumed by the client and write
arbitrary bytes to a client's terminal.

A failure with the SSL negotiation now leads to an error immediately
reported, without a retry on any other methods allowed, like a fallback
to a plaintext connection.

A failure with GSS discards the error message received, and we allow a
fallback as it may be possible that the error is caused by a connection
attempt with a pre-11 server, GSS encryption having been introduced in
v12.  This was a problem only with v17 and newer versions; older
versions discard the error message already in this case, assuming a
failure caused by a lack of support for GSS encryption.

Author: Jacob Champion
Reviewed-by: Peter Eisentraut, Heikki Linnakangas, Michael Paquier
Security: CVE-2024-10977
Backpatch-through: 12

Branch
------
REL_17_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a5cc4c66719be2ae1eebe92ad97727dc905bbc6d

Modified Files
--------------
doc/src/sgml/protocol.sgml        | 21 +++++++++++----------
src/interfaces/libpq/fe-connect.c | 34 ++++++++++------------------------
2 files changed, 21 insertions(+), 34 deletions(-)



^ permalink  raw  reply  [nested|flat] 7+ messages in thread


end of thread, other threads:[~2024-11-11 01:20 UTC | newest]

Thread overview: 7+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>
2024-11-11 01:20 pgsql: libpq: Bail out during SSL/GSS negotiation errors Michael Paquier <michael@paquier.xyz>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox