public inbox for [email protected]
help / color / mirror / Atom feedFrom: Daniel Gustafsson <[email protected]>
To: Tom Lane <[email protected]>
Cc: Thomas Munro <[email protected]>
Cc: Andrew Dunstan <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Cc: Jacob Champion <[email protected]>
Subject: Re: disabled SSL log_like tests
Date: Wed, 7 May 2025 08:54:48 +0200
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<[email protected]>
<CA+hUKG+fLqyweHqFSBcErueUVT0vDuSNWui-ySz3+d_APmq7dw@mail.gmail.com>
<[email protected]>
<[email protected]>
<CA+hUKGJkUJAwckjBr-=B9oUdDgjSEH+3njd__OnPoPuAtze3Qg@mail.gmail.com>
<[email protected]>
> On 7 May 2025, at 06:34, Tom Lane <[email protected]> wrote:
>
> Thomas Munro <[email protected]> writes:
>> On Wed, May 7, 2025 at 1:18 PM Tom Lane <[email protected]> wrote:
>>> Anyone know anything about where to submit LibreSSL bugs?
>
>> I think it's done with sendbug on an OpenBSD box, or perhaps you can
>> just write a normal email to the [email protected] or
>> [email protected] list, based on:
>> https://www.openbsd.org/mail.html
Bugs are frequently reported, and dealt with, on the libressl mailing list.
> Thanks, I'll look into reporting it tomorrow. In the meantime,
> I couldn't help noticing that the backtraces went through
> lib/libssl/tls13_legacy.c, which doesn't give a warm feeling
> about how supported they think our usage is (and perhaps also
> explains why they didn't detect this bug themselves). This is
> evidently because we set up the SSL context with SSLv23_method(),
> per this comment in be_tls_init():
>
> * We use SSLv23_method() because it can negotiate use of the highest
> * mutually supported protocol version, while alternatives like
> * TLSv1_2_method() permit only one specific version. Note that we don't
> * actually allow SSL v2 or v3, only TLS protocols (see below).
>
> This choice seems to be more than 20 years old, though the above
> comment defending it dates only to 2014. I wonder if it's time to
> revisit that idea.
The use of SSLv23_method() comes from us supporting 1.0.2, the replacement
TLS_method() was introduced in 1.1.0 and SSLv23_method() was turned into an
alias of TLS_method() in OpenSSL commit 32ec41539b5.
Since we no longer support 1.0.2 we can apply something like the (lightly
tested) attached which should be a no-op as we already use TLS_method() but via
an alias.
There's likely more OpenSSL code we can modernize, hopefully we can make some
progress on that during the v19 cycle.
--
Daniel Gustafsson
Attachments:
[application/octet-stream] tls_method.diff (1.5K, ../[email protected]/2-tls_method.diff)
download | inline diff:
diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c
index 64ff3ce3d6a..d65704f6110 100644
--- a/src/backend/libpq/be-secure-openssl.c
+++ b/src/backend/libpq/be-secure-openssl.c
@@ -106,12 +106,11 @@ be_tls_init(bool isServerStart)
* settings. If we fail partway through, we can avoid memory leakage by
* freeing this context; we don't install it as active until the end.
*
- * We use SSLv23_method() because it can negotiate use of the highest
+ * We use TLS_method() because it can negotiate use of the highest
* mutually supported protocol version, while alternatives like
- * TLSv1_2_method() permit only one specific version. Note that we don't
- * actually allow SSL v2 or v3, only TLS protocols (see below).
+ * TLSv1_2_method() permit only one specific version.
*/
- context = SSL_CTX_new(SSLv23_method());
+ context = SSL_CTX_new(TLS_method());
if (!context)
{
ereport(isServerStart ? FATAL : LOG,
diff --git a/src/interfaces/libpq/fe-secure-openssl.c b/src/interfaces/libpq/fe-secure-openssl.c
index 78f9e84eb35..89669173412 100644
--- a/src/interfaces/libpq/fe-secure-openssl.c
+++ b/src/interfaces/libpq/fe-secure-openssl.c
@@ -767,7 +767,7 @@ initialize_SSL(PGconn *conn)
* complicated if connections used different certificates. So now we
* create a separate context for each connection, and accept the overhead.
*/
- SSL_context = SSL_CTX_new(SSLv23_method());
+ SSL_context = SSL_CTX_new(TLS_method());
if (!SSL_context)
{
char *err = SSLerrmessage(ERR_get_error());
view thread (30+ messages) latest in thread
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: [email protected]
Cc: [email protected], [email protected], [email protected], [email protected], [email protected]
Subject: Re: disabled SSL log_like tests
In-Reply-To: <[email protected]>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox