]> git.ipfire.org Git - thirdparty/openssl.git/log
thirdparty/openssl.git
7 weeks agocomp/zstd: make bio_zstd_read return -1 on hard errors
Joshua Rogers [Sun, 12 Oct 2025 13:39:42 +0000 (21:39 +0800)] 
comp/zstd: make bio_zstd_read return -1 on hard errors

Split NULL out param from zero outl. Return -1 on malloc failure and
NULL parameter. Keep 0 only for outl <= 0 and clean EOF. This lets
callers distinguish errors from empty reads without inspecting the
error queue.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Todd Short <todd.short@me.com>
(Merged from https://github.com/openssl/openssl/pull/28908)

(cherry picked from commit 5871953822fb02bb651abf60dfc4a0785a5a3caa)

8 weeks agostore: check for NULL uri argument
Pauli [Wed, 22 Oct 2025 22:09:56 +0000 (09:09 +1100)] 
store: check for NULL uri argument

Fixes #28978

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28980)

(cherry picked from commit e9e643bc580e4ba0c6f8f9b4dd2ce59397b1b786)

8 weeks agoFIPS: Fix RSA X.931 padding check
Simo Sorce [Fri, 3 Oct 2025 15:49:24 +0000 (11:49 -0400)] 
FIPS: Fix RSA X.931 padding check

The padding check was not complete and would miss the Message
Signature API case, which also needs to be rejected.

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28741)

(cherry picked from commit b632daa5255614db0a305cd2f4eaf84d1816b540)

8 weeks agothreads: Replace CRYPTO_THREAD_clean_local_for_fips() with CRYPTO_THREAD_clean_local()
Ondřej Surý [Mon, 20 Oct 2025 19:11:00 +0000 (21:11 +0200)] 
threads: Replace CRYPTO_THREAD_clean_local_for_fips() with CRYPTO_THREAD_clean_local()

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28781)

(cherry picked from commit 9f87698878c25b53f5ddb662ae8eb9bcf80d7959)

8 weeks agothreads: Cleanup master key sparse array in OPENSSL_thread_stop()
Ondřej Surý [Wed, 8 Oct 2025 09:06:00 +0000 (11:06 +0200)] 
threads: Cleanup master key sparse array in OPENSSL_thread_stop()

Fixes #28770

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28781)

(cherry picked from commit 0655eaf4f6e428d3c2e7c1c1937a852c52fcaa5c)

8 weeks agoFix memory leak in x509_pubkey_ex_d2i_ex()
Andrey Tsygunka [Thu, 10 Apr 2025 06:57:41 +0000 (09:57 +0300)] 
Fix memory leak in x509_pubkey_ex_d2i_ex()

If the call to ASN1_item_ex_d2i() from x509_pubkey_ex_d2i_ex() fails
*pval is freed by asn1_item_ex_d2i_intern()->ASN1_item_ex_free()->ossl_asn1_item_embed_free()
inside the ASN1_item_ex_d2i() function without freeing the
string buffer X509_PUBKEY::propq that was previously allocated
in x509_pubkey_ex_new_ex() and we lose the pointer to this buffer.

The function we are fixing here is one of the functions used
to define X509_PUBKEY - so any operations that work directly
on X509_PUBKEY_INTERNAL should be prevented from freeing
the structure because they don't know how to handle it.

Signed-off-by: Andrey Tsygunka <aitsygunka@yandex.ru>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27333)

(cherry picked from commit 11e1ea9d4d0c9a5e84b944535332aebf673e82f0)

8 weeks agoCopy impls stack when calling ossl_method_store_do_all
Neil Horman [Wed, 8 Oct 2025 12:20:36 +0000 (08:20 -0400)] 
Copy impls stack when calling ossl_method_store_do_all

PR https://github.com/openssl/openssl/pull/24782 introduced a copying of
the algs stack in ossl_method_store_do all, so that the subsequent
iteration of elements through alg_do_one could be done without a lock,
and without triggering a tsan error as reported in:
https://github.com/openssl/openssl/issues/24672

However, the problem wasn't completely fixed.  Issue:
https://github.com/openssl/openssl/issues/27726

Noted that, sometimes we still get a crash when iterating over each algs
impls stack.  This occurs because, even though we've cloned the algs to
a private data area, the impls stack for each alg still points to shared
data, which we are accessing without the benefit of a lock.  Because of
that, if some other thread calls a function that mutates the impl stack
(say ossl_method_store_remove()), we may encounter a NULL or garbage
value in one of the impl stack values, leading to an unexpected NULL
pointer or simmilar, which in turn leads to a crash.

Unfortunately we can't use a lock to create exclusive access here, as
there are several paths that lead to a recursive mutation of the stack,
which would deadlock.

So the only way that I see to prevent this (which is admittedly ugly),
is to not only clone the alg stack, but to duplicate each algs impl
stack with the read lock held, prior to doing the iteration.

Further, we've been unable to test this, as the problem is rare, and we
don't have a solid reproducer for the issue, but visual inspection
suggests this should fix that.  Hopefully:

Fixes #27726

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28783)

(cherry picked from commit 9ef4f426157e8a100b816c962fea1a168010bde2)

2 months agoclang deprecates sprintf on macos
Nikola Pajkovsky [Wed, 15 Oct 2025 10:48:06 +0000 (12:48 +0200)] 
clang deprecates sprintf on macos

test/threadstest.c:1376:9: error: 'sprintf' is deprecated.

The same issues is in the ossl-nghttp3-demo.

Signed-off-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28903)

(cherry picked from commit 60e699a4549779f72b8621415b7565d422127285)

2 months agoScope aes_cfb128_vaes_encdec_wrapper to x64
Kai Pastor [Wed, 8 Oct 2025 16:50:33 +0000 (18:50 +0200)] 
Scope aes_cfb128_vaes_encdec_wrapper to x64

This function is only used on x64 and relies on other functions which
are only implemented for x64.
Fixes #28745.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28792)

(cherry picked from commit c20d4704e9e99a89d29f5ee848f9498694388905)

2 months agoCMP client: fix three memory leaks in error handling of the polling mechanism added...
Joshua Rogers [Fri, 10 Oct 2025 22:57:01 +0000 (06:57 +0800)] 
CMP client: fix three memory leaks in error handling of the polling mechanism added in 3.3

These are in poll_for_response(), OSSL_CMP_try_certreq(), and OSSL_CMP_exec_certreq().

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
(Merged from https://github.com/openssl/openssl/pull/28840)

(cherry picked from commit c2e845914a4f999183ceb950e915c5525ccdf643)

2 months agoci.yml: Update macos runners as macos-13 is discontinued
Tomas Mraz [Tue, 14 Oct 2025 15:41:42 +0000 (17:41 +0200)] 
ci.yml: Update macos runners as macos-13 is discontinued

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28900)

(cherry picked from commit 40b22874b12b8c1aade772912258c120a49b9212)

2 months agoFixes for NonStop builds on 3.5 to handle OS platform header file changes.
Randall S. Becker [Mon, 6 Oct 2025 23:02:42 +0000 (00:02 +0100)] 
Fixes for NonStop builds on 3.5 to handle OS platform header file changes.

This changes handles the introduction of _POSIX_VERSION into the NonStop x86
header files that tricks OpenSSL into thinking that ucontext.h is available.

Fixes #28498

Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28769)

(cherry picked from commit fb2f239ca1bd05f609e9e1e06b4b84f7f628d21b)

2 months agoSerial submission policy
Jon Ericson [Tue, 14 Oct 2025 02:18:11 +0000 (19:18 -0700)] 
Serial submission policy

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28897)

(cherry picked from commit ac35ce393184736156460f2cb28c4253ece2e9d3)

2 months agobss_dgram.c: Fix potential buffer overread and remove asserts
Tomas Mraz [Tue, 14 Oct 2025 11:28:30 +0000 (13:28 +0200)] 
bss_dgram.c: Fix potential buffer overread and remove asserts

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28896)

(cherry picked from commit b9d19562c0e88e31f43c10126dc91cad9e720953)

2 months agobio_sock: fix inverted BIO_lookup return value check
Joshua Rogers [Sat, 11 Oct 2025 06:43:39 +0000 (14:43 +0800)] 
bio_sock: fix inverted BIO_lookup return value check

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28862)

(cherry picked from commit 1c1dcfc269c35e3f8fdbc72b78378aac90a61a81)

2 months agofreebsd ktls: avoid unaligned 16 bit length store in ktls_read_record
Joshua Rogers [Sat, 11 Oct 2025 06:11:07 +0000 (14:11 +0800)] 
freebsd ktls: avoid unaligned 16 bit length store in ktls_read_record

This prevents SIGBUS on strict alignment architectures when p+3 is not aligned
for 16 bit access. Behavior is unchanged on x86 and matches the Linux path.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28860)

(cherry picked from commit c33120d0e403b4079e5104fd20040a51930e8d8e)

2 months agoDo not allow zstd 0.9
Joshua Rogers [Fri, 10 Oct 2025 23:07:52 +0000 (07:07 +0800)] 
Do not allow zstd 0.9

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28843)

(cherry picked from commit 86780465afb8680f5697c3047b7f0027dd6a04cc)

2 months agoCorrect error code in raise in bio_zstd/brotli_flush()
Joshua Rogers [Fri, 10 Oct 2025 16:58:22 +0000 (00:58 +0800)] 
Correct error code in raise in bio_zstd/brotli_flush()

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28839)

(cherry picked from commit 604d926abb875a88bef80eda4268390a3c7982d0)

2 months agoNEWS.md: add missing SP 800-208 link
Eugene Syromiatnikov [Thu, 2 Oct 2025 14:42:31 +0000 (16:42 +0200)] 
NEWS.md: add missing SP 800-208 link

It was referenced, but the relevant link hasn't been added to the Links
session.  Fix that omission.

Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28732)

2 months agoFix wrong buffer and version in outgoing msg callback
Joshua Rogers [Fri, 10 Oct 2025 12:33:29 +0000 (20:33 +0800)] 
Fix wrong buffer and version in outgoing msg callback

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28816)

(cherry picked from commit f7c0fcf0282435687010a34184d4248566008c35)

2 months agoapps/s_socket: fix double close of listening socket when naccept==0
Joshua Rogers [Mon, 13 Oct 2025 14:35:43 +0000 (22:35 +0800)] 
apps/s_socket: fix double close of listening socket when naccept==0

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28813)

(cherry picked from commit 76b4fa346c364cccc9123efdeac95e5dc85f0a75)

2 months agoFix off-by-one overflow in the AST resubmit
Joshua Rogers [Fri, 10 Oct 2025 11:55:31 +0000 (19:55 +0800)] 
Fix off-by-one overflow in the AST resubmit

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28811)

(cherry picked from commit 3aa2f3a4566f34e99050efdb074fc1375b1572ad)

2 months agos_server: print program not, not port
Joshua Rogers [Fri, 10 Oct 2025 09:38:50 +0000 (17:38 +0800)] 
s_server: print program not, not port

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28807)

(cherry picked from commit 0d3efc875483d212b4cc2082247bf6abb2b56aca)

2 months agoDisallow Message sequence number 2 in DTLSv1_listen
Joshua Rogers [Wed, 8 Oct 2025 07:31:18 +0000 (15:31 +0800)] 
Disallow Message sequence number 2 in DTLSv1_listen

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Frederik Wedel-Heinen <fwh.openssl@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28788)

(cherry picked from commit dc242b16954552c7589a6c2ea829c2a888878f27)

2 months agossl: fix OOB write in SSL_get_shared_ciphers when no shared ciphers
Joshua Rogers [Wed, 8 Oct 2025 22:14:15 +0000 (06:14 +0800)] 
ssl: fix OOB write in SSL_get_shared_ciphers when no shared ciphers

When no cipher names are appended, p remains at buf and the unconditional
p[-1] = '\0' underflows. Only NUL-terminate if at least one cipher was written;
otherwise return an empty string safely.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28785)

(cherry picked from commit 680491a2a7403fc6e5e1759e0eabeceeacaf37f9)

2 months agoCMS: Produce error when AEAD algorithms are used in enveloped data
Jakub Zelenka [Thu, 22 May 2025 16:40:30 +0000 (18:40 +0200)] 
CMS: Produce error when AEAD algorithms are used in enveloped data

Fixes GH-21414

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27772)

(cherry picked from commit 2dda0c50eafc1de8a2c008fbf60340ba5e60bfb3)

2 months agoapps/cmp.c: must not try acting as server if -reqout_only option is given
Dr. David von Oheimb [Fri, 10 Oct 2025 17:42:23 +0000 (19:42 +0200)] 
apps/cmp.c: must not try acting as server if -reqout_only option is given

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28891)

(cherry picked from commit 82fb46debc1b059fb876d0ba3f5594e8135f6ccb)

2 months agoapps/cmp.c and doc/man3: add clarifying comments and doc line on CMP context used...
Dr. David von Oheimb [Fri, 10 Oct 2025 18:36:49 +0000 (20:36 +0200)] 
apps/cmp.c and doc/man3: add clarifying comments and doc line on CMP context used in two function calls; move one of these calls

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28891)

(cherry picked from commit 3e77acbff1991ebaae0dcaa41e24a26e408cc159)

2 months agoCorrect assembler version checking in perlasm scripts
Igor Ustinov [Tue, 14 Oct 2025 18:30:49 +0000 (20:30 +0200)] 
Correct assembler version checking in perlasm scripts

Fixes #20520

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28901)

(cherry picked from commit 9820582da330151a1238a33e5c6e23ed31324164)

2 months agohttp_client.c: make sure to raise error 404 (also in case of further errors like...
Dr. David von Oheimb [Tue, 14 Oct 2025 08:07:04 +0000 (10:07 +0200)] 
http_client.c: make sure to raise error 404 (also in case of further errors like content type mismatch)

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28895)

(cherry picked from commit 5aaf9746f649d15b3ad006acdc6a958819acc536)

2 months agoquic: pass is_write to quic_classify_stream in quic_get_stream_error_code
Joshua Rogers [Fri, 10 Oct 2025 12:45:50 +0000 (20:45 +0800)] 
quic: pass is_write to quic_classify_stream in quic_get_stream_error_code

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28820)

(cherry picked from commit 2466b57b893503f602622ad4f7cba1f3a2585ec0)

2 months agoUpdate size check condition for probable primes to align with FIPS 186-5.
leesugil [Sun, 14 Sep 2025 16:10:33 +0000 (12:10 -0400)] 
Update size check condition for probable primes to align with FIPS 186-5.

Fixes #28540

In FIPS 186-4 (Table B.1), the upper bounds for probable primes p and q were
defined using strict inequalities. In FIPS 186-5, Table A.1 replaces the
previous Table B.1 (dropping the nlen=1024 case) and revises the upper bound
condition to use weak inequalities.

CLA: trivial

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28540)

(cherry picked from commit 1d0a29d557fa70dfe0e7286e61f552c1b99d1921)

2 months agossl: call SSLfatal on realloc failures in extract_keyshares
Joshua Rogers [Sat, 11 Oct 2025 11:53:07 +0000 (19:53 +0800)] 
ssl: call SSLfatal on realloc failures in extract_keyshares

Initial malloc path already does this. Realloc path went to failure
without recording a fatal alert.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28873)

(cherry picked from commit 43cddc534eebf33c301bf2fabed8fa52fb92526c)

2 months agobio/dgram: use IPV6_PMTUDISC_* with IPV6_MTU_DISCOVER
Joshua Rogers [Fri, 10 Oct 2025 09:59:19 +0000 (17:59 +0800)] 
bio/dgram: use IPV6_PMTUDISC_* with IPV6_MTU_DISCOVER

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28809)

(cherry picked from commit e4b3f5fee947ae5915437ca5ba6a248c6720223b)

2 months agobio/dgram: fix local addr clear for i-th message
Joshua Rogers [Fri, 10 Oct 2025 09:57:16 +0000 (17:57 +0800)] 
bio/dgram: fix local addr clear for i-th message

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Fixes #28871

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28808)

(cherry picked from commit ad26aee904413119c21ae1dafb10a156d0474e72)

2 months agoFix an error check for EVP_PBE_CipherInit_ex()
Theo Buehler [Wed, 1 Oct 2025 22:56:41 +0000 (00:56 +0200)] 
Fix an error check for EVP_PBE_CipherInit_ex()

As pointed out during the review for the recent security issue in this
file, this error check is incorrect: as documented, this function has
the usual Boolean return values.

Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28727)

(cherry picked from commit f0efd026f7d69da97ec8f3b05f05a322e98fb21f)

2 months agoktls: move ktls_enable() within ktls_start()
Ulrich Weber [Thu, 26 Jun 2025 14:16:06 +0000 (16:16 +0200)] 
ktls: move ktls_enable() within ktls_start()

On linux ktls can only be enabled on established TCP sockets.
When SSL_set_fd() is called before the connection is established
ktls_enable() fails and ktls is not setup.

This moves ktls_enable() call within then ktls_start() function.
Multiple calls to ktls_start() will trigger additional ktls_enable()
calls which fail with EEXIST, but do not affect the ktls socket.

CLA: trivial

Signed-off-by: Ulrich Weber <ulrich.weber@gmail.com>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27908)

(cherry picked from commit f23f706a26f2e7cd5dd5221d57e2d0db28530f4e)

2 months ago- remove CYGWWIN (requested by Brandt)
sashan [Mon, 6 Oct 2025 19:58:08 +0000 (21:58 +0200)] 
- remove CYGWWIN (requested by Brandt)

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28759)

(cherry picked from commit f2917ee0e0b9e5dd34a6a6be8aaca0fe7a64c8a6)

2 months ago- fix suggested by Bernd
sashan [Mon, 6 Oct 2025 13:27:18 +0000 (15:27 +0200)] 
- fix suggested by Bernd

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28759)

(cherry picked from commit 1ec5811d0f9d049d4ffa169d79e63deeb70a251b)

2 months agoOPENSSL_SYS_WINDOWS is also enabled for mingw build
Alexandr Nedvedicky [Mon, 6 Oct 2025 07:33:09 +0000 (09:33 +0200)] 
OPENSSL_SYS_WINDOWS is also enabled for mingw build

the test_n() in bioprinttest.c must differentiate between
MSVC runtime libc and ming runtime libc. The function
_set_printf_count_output() must be called when openssl
is linked with MSVC libc only.

Fixes #28679

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28759)

(cherry picked from commit af3a3f8205968f9e652efa7adf2a359f4eb9d9cc)

2 months agoCheck return code of BIO_ADDR_rawaddress
Norbert Pocs [Sun, 5 Oct 2025 07:39:22 +0000 (09:39 +0200)] 
Check return code of BIO_ADDR_rawaddress

Fixes coverity issue: https://scan5.scan.coverity.com/#/project-view/64471/10222?selectedIssue=1666584
Thank you for the report!

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from https://github.com/openssl/openssl/pull/28751)

(cherry picked from commit 7fb9163586234ed9eecf95ae2fd7185a9dcb556e)

2 months agoReduce Max number of commands handled per fuzzer pass in quic-lcidm.
Neil Horman [Wed, 1 Oct 2025 21:34:38 +0000 (17:34 -0400)] 
Reduce Max number of commands handled per fuzzer pass in quic-lcidm.

We've gotten a few recent reports of a hang in the quic-lcidm fuzzer:

https://issues.oss-fuzz.com/issues/448510502

It looks pretty straightforward (I think).  The fuzzer input buffer is
used in this particular case to randomly issue commands to the lcidm
hash table (add/delete/query/flush/etc).

The loop for the command processing (based on the input buffer), is
limited to 10k commands.  However the fuzzer will on occasion provide
very large buffers (500k) which easily saturate that limit.  If the
input buffer happens to do something like get biased toward mostly
additions, we wind up with a huge hashtable that has to constantly grow
and rehash, which we've seen leads to timeouts in the past.

Most direct fix I think here, given that this is something of an
artificial failure in the fuzzer, is to simply clamp the command limit
more.

Fixes openssl/project#1664

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28724)

(cherry picked from commit 01c7958f2359e951a95350affb6b178fb50fed03)

2 months agotests: temporarily skip MLDSA pkcs11-provider test
Ondrej Moris [Wed, 1 Oct 2025 05:03:27 +0000 (07:03 +0200)] 
tests: temporarily skip MLDSA pkcs11-provider test

External pkcs11-provider test requires at least kryoptic 1.2 for
MLDSA tests. But the current fedora:latest (42) still contains
kryoptic 1.1 and hence we need to temporarily disable MLDSA tests
until Fedora 43 is released.

Signed-off-by: Ondrej Moris <omoris@redhat.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28716)

(cherry picked from commit 2b97f4d300f18b209983046f49e12f3028ba79f5)

2 months agoUpdate pkcs11-provider submodule (663dea3)
Ondrej Moris [Wed, 1 Oct 2025 03:29:41 +0000 (05:29 +0200)] 
Update pkcs11-provider submodule (663dea3)

Signed-off-by: Ondrej Moris <omoris@redhat.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28716)

(cherry picked from commit 786cb9680f1ea700262120333e52b20bdc61ceb5)

2 months agots_conf: fix memory leak in TS_CONF_set_policies
DONGGEUN YOO [Mon, 29 Sep 2025 00:45:11 +0000 (00:45 +0000)] 
ts_conf: fix memory leak in TS_CONF_set_policies

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28686)

(cherry picked from commit 1f3a6602a13b382c0f09d6659e0d49ec2e41646d)

2 months agoFix riscv64 chacha crash due to unaligned data
Bernd Edlinger [Sat, 27 Sep 2025 20:14:04 +0000 (22:14 +0200)] 
Fix riscv64 chacha crash due to unaligned data

The linux-riscv64 test machine crashes due to unaligned data,
when the V extension is enabled, while QEMU seems to have no
problems with unaligned data.

So check for aligned data and fall back to C code in case the
input or output values are unaligned.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28684)

(cherry picked from commit 22417bc14d6bde173425ba4f87c68be0cf394fa4)

2 months agoEnable the V extension in the OS-Zoo CI job
Bernd Edlinger [Sun, 28 Sep 2025 06:32:34 +0000 (08:32 +0200)] 
Enable the V extension in the OS-Zoo CI job

and also fix the unintentional omission of the ZBA extension,
since the first word in the OPENSSL_riscvcap environment variable
is ignored, because it is assumed to be the processor base
architecture, e.g. something like RV64GC.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28684)

(cherry picked from commit 0e5e84c48690ecab4eda7cbee948b791623b137a)

2 months agoFix Memory leak in CMS_EncryptedData_set1_key
Ryan Hooper [Thu, 25 Sep 2025 16:42:24 +0000 (12:42 -0400)] 
Fix Memory leak in CMS_EncryptedData_set1_key

When CMS_EncryptedData_set1_key is called repeatedly it will
leak data on the second call. This was because
cms->d.encryptedData was already set and needed to be cleared
before the call to M_ASN1_new_of.

Fixes: #28606
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28668)

(cherry picked from commit 7de825efa26d136c7bb118156190437bdcf130b7)

2 months agoPrepare for 3.6.1 28714/head
openssl-machine [Wed, 1 Oct 2025 12:11:58 +0000 (12:11 +0000)] 
Prepare for 3.6.1

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Release: yes

2 months agoPrepare for release of 3.6.0 openssl-3.6.0
openssl-machine [Wed, 1 Oct 2025 12:11:48 +0000 (12:11 +0000)] 
Prepare for release of 3.6.0

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Release: yes

2 months agomake update
openssl-machine [Wed, 1 Oct 2025 12:11:47 +0000 (12:11 +0000)] 
make update

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Release: yes

2 months agoCopyright year updates
openssl-machine [Wed, 1 Oct 2025 12:09:53 +0000 (12:09 +0000)] 
Copyright year updates

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Release: yes

2 months agoCHANGES.md, NEWS.md: update for 3.6.0
Eugene Syromiatnikov [Wed, 1 Oct 2025 02:43:55 +0000 (04:43 +0200)] 
CHANGES.md, NEWS.md: update for 3.6.0

 * Add the release date for 3.5.4
 * Various touch-ups aimed at improving consistency of the news
 * ffixes, wfixes

Release: Yes
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28712)

2 months agoCHANGES.md, NEWS.md: update for 3.5.4
Eugene Syromiatnikov [Tue, 30 Sep 2025 09:06:25 +0000 (11:06 +0200)] 
CHANGES.md, NEWS.md: update for 3.5.4

3.5.4 CHANGES.md includes the following:
 * https://github.com/openssl/openssl/pull/28415
 * https://github.com/openssl/openssl/pull/28573
 * https://github.com/openssl/openssl/pull/28603

3.5.4 NEWS.md includes the following:
 * https://github.com/openssl/openssl/pull/28603

Release: Yes
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28712)

2 months agoAdd CHANGES.md and NEWS.md updates
Tomas Mraz [Mon, 29 Sep 2025 12:23:12 +0000 (14:23 +0200)] 
Add CHANGES.md and NEWS.md updates

Including a few corrections of the previous entries.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
2 months agouse_proxy(): Add missing terminating NUL byte
Tomas Mraz [Thu, 11 Sep 2025 16:43:55 +0000 (18:43 +0200)] 
use_proxy(): Add missing terminating NUL byte

Fixes CVE-2025-9232

There is a missing terminating NUL byte after strncpy() call.
Issue and a proposed fix reported by Stanislav Fort (Aisle Research).

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit 6bca15039e99d37ce3a3564eb862a3b1ff40e63d)

2 months agoecp_sm2p256.c: Remove unused code
Tomas Mraz [Tue, 16 Sep 2025 12:48:31 +0000 (14:48 +0200)] 
ecp_sm2p256.c: Remove unused code

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit 56c89cd2de75055ecf4b705824fb354631d5d810)

2 months agoSM2: Use constant time modular inversion
Tomas Mraz [Thu, 11 Sep 2025 16:40:34 +0000 (18:40 +0200)] 
SM2: Use constant time modular inversion

Fixes CVE-2025-9231

Issue and a proposed fix reported by Stanislav Fort (Aisle Research).

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit dff94dba75490d03926e77be9f2da3bcf4485820)

2 months agokek_unwrap_key(): Fix incorrect check of unwrapped key size
Viktor Dukhovni [Thu, 11 Sep 2025 16:10:12 +0000 (18:10 +0200)] 
kek_unwrap_key(): Fix incorrect check of unwrapped key size

Fixes CVE-2025-9230

The check is off by 8 bytes so it is possible to overread by
up to 8 bytes and overwrite up to 4 bytes.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(cherry picked from commit 9c462be2cea54ebfc62953224220b56f8ba22a0c)

2 months agoRevert "fips: remove redundant RSA encrypt/decrypt KAT"
Neil Horman [Thu, 25 Sep 2025 20:08:37 +0000 (16:08 -0400)] 
Revert "fips: remove redundant RSA encrypt/decrypt KAT"

This reverts commit 635bf4946a7e948f26a348ddc3b5a8d282354f64.

During code review for FIPS-140-3 certification, our lab noticed that
the known answer test for RSA was removed.  This was done in the above
commit, as part of
https://github.com/openssl/openssl/pull/25988

Under the assertion that FIPS 140-3 Implementation Guidance section D.G
had relaxed the requirements for testing, obviating the need for this
test.

However, for the 3.5 FIPS-140-3 certification we are adding assertions
for support of KAS-IFC-SSC, which follows FIPS-140-3 I.G section D.F,
which does not contain the same relaxed constraints.  As such we need to
reintroduce the test.

While the specifics of the I.G requirements are slightly different in
D.F (allowing for other, potentially less time-consuming tests), the
most expedient path forward here is to simply re-introduce the test as
it existed previously, hence the reversion of the above commit.

Fixes openssl/private#832

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28676)

(cherry picked from commit 3206bb708246a97b281133009a419fb7421971d9)

2 months agokrb5kdf.c.in: Check the key size before applying the key
Tomas Mraz [Thu, 25 Sep 2025 12:19:22 +0000 (14:19 +0200)] 
krb5kdf.c.in: Check the key size before applying the key

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28663)

(cherry picked from commit 3addc8bb3a8e62e701d44ae849437f97940632cd)

2 months agoAdd test for using KRB5KDF with erroneous key size
Tomas Mraz [Thu, 25 Sep 2025 10:21:21 +0000 (12:21 +0200)] 
Add test for using KRB5KDF with erroneous key size

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28663)

(cherry picked from commit c18b6968cc1824bd3280cffa914093bba85dff3f)

2 months agotest/radix/terp.c: avoid accessing uninitialised terp on error
Eugene Syromiatnikov [Mon, 15 Sep 2025 03:27:58 +0000 (05:27 +0200)] 
test/radix/terp.c: avoid accessing uninitialised terp on error

Stats printing in TERP_run() assumes that terp has been initialised,
which is not the case when a jump to the err label has been performed
before successful TERP_init() call;  avoid it by enframing the offending
call within a have_terp guard check.

Fixes: 4a2d5fe812f8 "QUIC RADIX: Add RADIX test framework implementation"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665430
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agoapps/storeutl.c: avoid signed integer overflow in indent_printf()
Eugene Syromiatnikov [Mon, 15 Sep 2025 03:14:09 +0000 (05:14 +0200)] 
apps/storeutl.c: avoid signed integer overflow in indent_printf()

As two arbitrarily large printf return values can trigger signed integer
overflow, rewrite the return value handling to avoid it.

Fixes: fb43ddceda79 "Add a recursive option to 'openssl storeutl'"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665428
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agocrypto/evp/ctrl_params_translate.c: fix a typo in the error message
Eugene Syromiatnikov [Mon, 15 Sep 2025 03:05:01 +0000 (05:05 +0200)] 
crypto/evp/ctrl_params_translate.c: fix a typo in the error message

The ERR_raise_data() call on failure to find ctx->p2 in str_value_map
erroneously refers to ctx->p1 instead;  fix that but supplying the
correct field and casting it to the supposed const char * type.

Fixes: 9a1c4e41e8d3 "EVP: Implement data-driven translation between known ctrl and OSSL_PARAMs"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665427
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agocrypto/bio/bss_file.c: add missing cast in format arg in ERR_raise_data()
Eugene Syromiatnikov [Mon, 15 Sep 2025 02:44:36 +0000 (04:44 +0200)] 
crypto/bio/bss_file.c: add missing cast in format arg in ERR_raise_data()

"%s" conversion specifier requires a "char *" argument, so ptr needs
to be cast to it there, as Coverity has noted.

Fixes: ff988500c2f39 "Replace FUNCerr with ERR_raise_data"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665423
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agotest/wpackettest.c: remove bogus cleanup() in test_WPACKET_quic_vlint_random()
Eugene Syromiatnikov [Mon, 15 Sep 2025 02:05:04 +0000 (04:05 +0200)] 
test/wpackettest.c: remove bogus cleanup() in test_WPACKET_quic_vlint_random()

In the beginning of the iteration, pkt is not initialised yet, so there
is no need to clean it up on RAND_bytes() failure.  Replace
"return cleanup(&pkt)" with plain "return 0".

Fixes: 416d0a638c16 "QUIC wire format support"
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665422
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agocrypto/x509/t_x509.c: check i2d_X509_NAME() return value in X509_ocspid_print()
Eugene Syromiatnikov [Mon, 15 Sep 2025 01:31:31 +0000 (03:31 +0200)] 
crypto/x509/t_x509.c: check i2d_X509_NAME() return value in X509_ocspid_print()

There is little reason for this call to fail, but there is also little
reason for not to check for it, and, since Coverity noticed
that the check is missing, just add it.

Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1665420
References: https://github.com/openssl/project/issues/1432
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28647)

2 months agoFix EVP_PKEY_can_sign() handling of NULL from query_operation_name()
Daniel Kubec [Fri, 19 Sep 2025 13:48:41 +0000 (15:48 +0200)] 
Fix EVP_PKEY_can_sign() handling of NULL from query_operation_name()

EVP_PKEY_can_sign() assumed query_operation_name(OSSL_OP_SIGNATURE)
always returns a non-NULL string. According to the documentation,
query_operation_name() may return NULL, in which case
EVP_KEYMGMT_get0_name() should be used as a fallback.

Fixes #27790

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28620)

(cherry picked from commit 051108ee53d5b0ff5a125d32acfbc7e20899b022)

2 months agoCheck for OBJ_create() conflicts after write lock.
Viktor Dukhovni [Wed, 17 Sep 2025 09:07:07 +0000 (19:07 +1000)] 
Check for OBJ_create() conflicts after write lock.

For now subsequent calls to OBJ_create() with identical inputs return
NID_undef.  It may be better to return the previous NID in the future.

The real work actually happens in OBJ_add_object().  Duplicate compares
*all* the input object's fields with any of the objects found by lookup.

If these are identical, then necessarily all the lookups found the same
data, and we can return the existing nid in low-level calls via
OBJ_add_object() that specify the nid also.  If any of the fields are
different the new object is not installed and NID_undef is returned.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28582)

(cherry picked from commit 556ba81601a37530c3620016bdeaf13094b4fb91)

2 months agoAdd a test for multi-threaded OBJ_create
Bernd Edlinger [Sun, 31 Aug 2025 19:41:50 +0000 (21:41 +0200)] 
Add a test for multi-threaded OBJ_create

After a successful OBJ_create the returned NID should
be the same NID that is returned from OBJ_ln2nid and
should not change any more, but after an unsuccessful
OBJ_create, another thread must have created the object,
therefore OBJ_ln2nid should not return NID_undef in that
case.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28582)

(cherry picked from commit 5909d0d3fc9b99b7b9f0577d29515a72fa94bfa0)

2 months agoFix length of digestinfo_sm3_der
xiaoloudongfeng [Tue, 2 Sep 2025 03:25:19 +0000 (11:25 +0800)] 
Fix length of digestinfo_sm3_der

This fixes the RSA-SM3 signatures to conform to the standard.

CLA: trivial

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28415)

(cherry picked from commit de0944c9b3a77b6f3c7ed07a90f7d463301851a8)

2 months agoFix doublefree after failure in ossl_siv128_init()
Tomas Mraz [Tue, 23 Sep 2025 15:00:00 +0000 (17:00 +0200)] 
Fix doublefree after failure in ossl_siv128_init()

The issue was reported by Ronald Crane from Zippenhop LLC.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28644)

(cherry picked from commit 3185e2762402dffba569d9a7377d51d5bb0e4382)

2 months agoPrint PowerPC CPUINFO
Bernd Edlinger [Sat, 13 Sep 2025 10:45:00 +0000 (12:45 +0200)] 
Print PowerPC CPUINFO

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28535)

(cherry picked from commit 03a9584499589f14363de758fdfb887cbef84790)

2 months agoCorrect the documentation for OPENSSL_sk_find
Bob Beck [Tue, 16 Sep 2025 21:30:31 +0000 (15:30 -0600)] 
Correct the documentation for OPENSSL_sk_find

Since April of 2023 with commit eb0935f, these functions have not
sorted the stack if it was not sorted. The documentation was noti
changed at the time to reflect this changed behaviour.

This corrects the documentation to reflect the current behaviour
of these functions

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28578)

2 months agoClose small race condition on error raising in QUIC
Neil Horman [Tue, 23 Sep 2025 09:40:06 +0000 (05:40 -0400)] 
Close small race condition on error raising in QUIC

Github issue #28501 reported an odd condition in which a double free was
occuring when a given thread was popping entries of its error stack.

It was hypothesized that, because a few places in the quic stack save
error state to a shared structure (ch->err_state, port->error_state,
qtls->error_state), that multiple threads may attempt to mutate the
shared structure during error save/restore in parallel.

Investigation showed that all paths which led to such mutations were
done under lock, so that shouldn't occur.

Except for one case, which this PR addresses.

In ossl_quic_conn_stream_conclude, we unlock our protecting mutex, prior
to calling QUIC_RAISE_NON_NORMAL_ERROR.  If that function is called with
an reason code of SHUTDOWN, it attempts to restore the channel error
state.  Given that the lock was released first, this creates a small
race condition in which two threads may manipulate the shared error
state in the channel struct in parallel.

According to the reporter, applying this patch prevents the reported
error from occuring again.

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28642)

(cherry picked from commit 1e70e8080a5b8766cb5f8b81127f90db9081e856)

2 months agoCHANGES.md, NEWS.md: various ffixes
Eugene Syromiatnikov [Wed, 17 Sep 2025 15:46:07 +0000 (17:46 +0200)] 
CHANGES.md, NEWS.md: various ffixes

 * Adding missing periods.
 * Consistently using "OpenSSL" as the project's name.
 * Fixing the "`EVP_SKEY`" formatting reverted by a merge resolution
   in f815ee19e066 "Harden RSA public encrypt".
 * Fitting the lines in 80 characters, do a bit more semantic line breaks.

Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28586)

2 months agoNEWS.md: remove PCT on key import for SLH-DSA mention
Eugene Syromiatnikov [Wed, 17 Sep 2025 15:43:47 +0000 (17:43 +0200)] 
NEWS.md: remove PCT on key import for SLH-DSA mention

This news-worthy change has been removed in [1].

[1] https://github.com/openssl/openssl/pull/28447

Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28586)

2 months agoCHANGES.md, NEWS.md: sync 3.5 changes/news with 3.5.3
Eugene Syromiatnikov [Mon, 15 Sep 2025 23:40:35 +0000 (01:40 +0200)] 
CHANGES.md, NEWS.md: sync 3.5 changes/news with 3.5.3

There were minor discrepancies in 3.5 NEWS which are now corrected.

Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28586)

2 months agoSkip LMS tests if fetch for the LMS algorithm fails
Andrew Dinh [Wed, 17 Sep 2025 01:49:59 +0000 (11:49 +1000)] 
Skip LMS tests if fetch for the LMS algorithm fails

Check for specific LMS error

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28580)

(cherry picked from commit 3b00a132291ef83cc349b8f1f27d7daec3b43388)

2 months agoDo not use RW mutexes on RISC-V arch
Bernd Edlinger [Fri, 19 Sep 2025 06:52:24 +0000 (08:52 +0200)] 
Do not use RW mutexes on RISC-V arch

For unknown reasons using RW mutexes on RISC-V arch
seems to be broken, at least with glibc.

Fixes #28550

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28634)

(cherry picked from commit bea53924ce729353df41129c58bd3349df7d7a82)

2 months agox509: fix mem leak on error path
Nikola Pajkovsky [Mon, 22 Sep 2025 10:17:16 +0000 (12:17 +0200)] 
x509: fix mem leak on error path

The x509_store_add() creates X509_OBJECT wrapping either X509 or
X509_CRL. However, if you set the type to X509_LU_NONE before
X509_OBJECT_free then it skips the free on the wrapped type and just
calls OPENSSL_free on the object itself. Hence, leaking wrapped
object.

Signed-off-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28631)

(cherry picked from commit 8a4ef31f3ab9c8e512d29600ccc833cf03533b9e)

2 months agoRe-enable the ssl_trace_test()
Tomas Mraz [Sat, 20 Sep 2025 14:53:46 +0000 (16:53 +0200)] 
Re-enable the ssl_trace_test()

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28627)

(cherry picked from commit 0a6b53ac87b54de2f467165c3d25e1af6400280a)

2 months agosslapitest.c: Skip test_ssl_trace() with FIPS providers older than 3.5
Tomas Mraz [Sat, 20 Sep 2025 14:52:07 +0000 (16:52 +0200)] 
sslapitest.c: Skip test_ssl_trace() with FIPS providers older than 3.5

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28627)

(cherry picked from commit bb8bbdcfaa89741321a00dc9a97e9d513eb037ff)

2 months agotls_common.c: Handle inner content type properly on Big Endian
Tomas Mraz [Sat, 20 Sep 2025 14:45:50 +0000 (16:45 +0200)] 
tls_common.c: Handle inner content type properly on Big Endian

When passing the inner content type to msg_callback,
the lowest byte of rec->type needs to be passed instead
of directly passing the rec->type otherwise the value is
incorrect on Big Endian platforms.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28627)

(cherry picked from commit 2edf021463518d9af905b1b03f952ea643b3fb9b)

2 months agoFix the abnormal branch memory leak in ssl_set_cert_and_key function
lan1120 [Fri, 19 Sep 2025 10:45:30 +0000 (18:45 +0800)] 
Fix the abnormal branch memory leak in ssl_set_cert_and_key function

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28619)

(cherry picked from commit e7f88391867dd71dc0ef37646f497411bea5350c)

2 months agobio_ok.c: Integer Overflow in BIO_f_reliable record parser leads to Out-of-Bounds...
Luigino Camastra [Wed, 10 Sep 2025 10:13:11 +0000 (12:13 +0200)] 
bio_ok.c: Integer Overflow in BIO_f_reliable record parser leads to Out-of-Bounds Read

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28504)

(cherry picked from commit 312904b216f917646ad1909ce8bca8bf8a52e5d7)

2 months agoAdded test suggested by Shane Lontis
Viktor Dukhovni [Mon, 22 Sep 2025 05:02:28 +0000 (15:02 +1000)] 
Added test suggested by Shane Lontis

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28624)

(cherry picked from commit 38e8981004308ed6d7cdbd3178c826989a30e31a)

2 months agoHarden property put_str() helper corner case
Viktor Dukhovni [Sat, 20 Sep 2025 04:02:52 +0000 (14:02 +1000)] 
Harden property put_str() helper corner case

The put_str() helper of the internal ossl_property_list_to_string()
function failed to correctly check the remaining buffer length in a
corner case in which a property name or string value needs quoting,
and exactly one byte of unused space remained in the output buffer.

The only potentially affected calling code is conditionally compiled
(disabled by default) provider "QUERY" tracing that is executed only
when also requested at runtime.  An initial fragment of the property
list encoding would need to use up exactly 511 bytes, leaving just 1
byte for the next string which requires quoting.  Bug reported by

    Aniruddhan Murali (@ashamedbit)
    Noble Saji Mathews (@NobleMathews)

both from the University of Waterloo.

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28624)

(cherry picked from commit c6e44fa347aabfc279ec2e50a02fd764c2e8e241)

2 months agoAdd unsupported features in NOTES-C99.md: complex.h and variable length array
Richard Levitte [Thu, 18 Sep 2025 11:22:47 +0000 (13:22 +0200)] 
Add unsupported features in NOTES-C99.md: complex.h and variable length array

Resolves: https://github.com/openssl/openssl/issues/28598

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
(Merged from https://github.com/openssl/openssl/pull/28602)

(cherry picked from commit 4a0d4a5c3a5970591b2c9ac645125c1ec448d8e9)

3 months agoFix OPENSSL_VERSION_NUMBER to always have zero status bits
Richard Levitte [Thu, 18 Sep 2025 05:14:13 +0000 (07:14 +0200)] 
Fix OPENSSL_VERSION_NUMBER to always have zero status bits

The documentation suggested that they were always zero, while the
implementation in <openssl/opensslv.h> suggested that it could be
0xf in OpenSSL releases...  which (almost) never happened because
of a bug in said implementation.

Therefore, we solidify that the status bits are indeed always zero,
at least in all OpenSSL 3 versions.

Resolves: https://github.com/openssl/project/issues/1621

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28603)

(cherry picked from commit 60c4feacce6faf0e98167dc2ab2a1c2e85882049)

3 months agoFix CI Pipeline by Disabling SSL_TRACE_TEST
Ryan Hooper [Fri, 19 Sep 2025 15:33:09 +0000 (11:33 -0400)] 
Fix CI Pipeline by Disabling SSL_TRACE_TEST

Disabling the SSL_TRACE_TEST since it caused an issue on
some cross compiles. A follow-on commit will change
the test.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28621)

(cherry picked from commit bd362f346cb1e763c060eab959ffc49fe6ccc611)

3 months agoFix another memory order issue
Bernd Edlinger [Mon, 15 Sep 2025 19:12:37 +0000 (21:12 +0200)] 
Fix another memory order issue

this adds another release/acquire link between update_qp and
get_hold_current_qp via the reader_idx because the current
one which is based on the qp users count is only preventing
a race condition, but does not help when the reader acquires
the next qp.

Fixes #27267

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28585)

(cherry picked from commit d296f9653345d79ee316c053f63a489f001565a5)

3 months agoFix ML-KEM key equality check when either unset
Viktor Dukhovni [Tue, 16 Sep 2025 12:40:32 +0000 (22:40 +1000)] 
Fix ML-KEM key equality check when either unset

Fixes #28563

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28569)

(cherry picked from commit d20cbc90e48cdd2a56444fc5d6f244d36362cb49)

3 months agoRevert "rsa: expose pairwise consistency test API"
Eugene Syromiatnikov [Mon, 15 Sep 2025 20:55:59 +0000 (22:55 +0200)] 
Revert "rsa: expose pairwise consistency test API"

This reverts commit dc5cd6f70a0e "rsa: expose pairwise consistency test API",
that has introduced ossl_rsa_key_pairwise_test() function, as the only user
has been removed in 7f7f75816f26 "import pct: remove import PCTs for most
algorithms".

Complements: 7f7f75816f26 "import pct: remove import PCTs for most algorithms"
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28557)

(cherry picked from commit 5a299cb0d4c4fa0d7ac25855ceba288278efda7f)

3 months agoFix cipher protocol ID type in docs
Grzesiek11 [Thu, 11 Sep 2025 15:13:48 +0000 (17:13 +0200)] 
Fix cipher protocol ID type in docs

The cipher protocol ID, the return type of SSL_CIPHER_get_protocol_id,
is uint16_t and correctly described in docs to be 2 bytes, however the
function signature on the same page incorrectly pointed to it being
uint32_t, which is 4 bytes.

CLA: trivial

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28523)

(cherry picked from commit 9bdf93776d741726895e6a42ffebd63366296e94)

3 months agoUpdated SSL Trace to display the name for all MLKEM-based groups
Ryan Hooper [Tue, 9 Sep 2025 14:43:51 +0000 (10:43 -0400)] 
Updated SSL Trace to display the name for all MLKEM-based groups

Make SSL Trace to display the name of the MLKEM512, MLKEM768,
MLKEM1024 and SecP384r1MLKEM1024 groups.

Fixes #28476

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28499)

(cherry picked from commit f2a41c74aeed0f0c1cfb04f4f07bd476c39f39c1)

3 months agodoc: clarify SSL_SESSION_get0_hostname() DESCRIPTION
Ritesh Kudkelwar [Thu, 11 Sep 2025 04:38:34 +0000 (10:08 +0530)] 
doc: clarify SSL_SESSION_get0_hostname() DESCRIPTION

Also refine RETURN VALUES.

Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28393)

(cherry picked from commit 32ec97521397597764f72d4e7c279c4e815352ee)

3 months agoproviders/implementations/keymgmt/ecx_kmgmt.c.in: remove PCT on ECX import
Eugene Syromiatnikov [Tue, 16 Sep 2025 14:25:33 +0000 (16:25 +0200)] 
providers/implementations/keymgmt/ecx_kmgmt.c.in: remove PCT on ECX import

While PCT on import has been removed for DH, EC, RSA, and SLH-DSA,
ECX seems to be overlooked.  Correct that omission.

Complements: 7f7f75816f26 "import pct: remove import PCTs for most algorithms"
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28573)

(cherry picked from commit 05d12fdd955d4cb3efc769becc3d5ceb9a322fdc)

3 months agocrypto/ml_dsa: fix public_from_private() error path to return failure
rodeka [Tue, 16 Sep 2025 17:38:17 +0000 (20:38 +0300)] 
crypto/ml_dsa: fix public_from_private() error path to return failure

The error label returned success (1) even on failure. Make it return failure (0) instead.
Fixes #28562

CLA: trivial

Reviewed-by: Todd Short <todd.short@me.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28576)

(cherry picked from commit 925e4fba1098036e8f8d22652cff6f64c5c7d571)