[openssl/openssl] 7b84de: Add test for CVE-2026-63076

"'Sashan' via openssl-commits" <[email protected]>
Newsgroups gmane.comp.encryption.openssl.cvs
Message-ID <openssl/openssl/push/refs/heads/master/[email protected]>
  Branch: refs/heads/master
  Home:   https://github.com/openssl/openssl
  Commit: 7b84dec93fc02b8e97a7b620c6195cbaee9e62d9
      https://github.com/openssl/openssl/commit/7b84dec93fc02b8e97a7b620c6195cbaee9e62d9
  Author: Daniel Kubec <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M test/cmp_protect_test.c

  Log Message:
  -----------
  Add test for CVE-2026-63076

Assisted-by: Claude:claude-fable-5
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
Merge-date: Sat Aug 22 06:10:00 2026


  Commit: 022a99e2b50cccb94b7d3efb7080077c28276272
      https://github.com/openssl/openssl/commit/022a99e2b50cccb94b7d3efb7080077c28276272
  Author: Daniel Kubec <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M crypto/cmp/cmp_protect.c

  Log Message:
  -----------
  Fix Remote NULL deref in ossl_cmp_calc_protection() via crafted protectionAlg

ossl_cmp_calc_protection() only checked whether the protectionAlg parameter
(ppval) was NULL before treating it as a PBMParameter ASN1_STRING.

X509_ALGOR_get0() does not validate the ASN.1 type of the parameter against what
the caller expects. For id-PasswordBasedMAC, a crafted message can encode the
parameter as a BOOLEAN instead of the expected PBMParameter SEQUENCE. Because
the ASN1_TYPE value union overlays the boolean int on the pointer field, ppval
comes back as a bogus non-NULL pointer (e.g. 0xff).

Fixes CVE-2026-63076

Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
Merge-date: Sat Aug 22 06:10:03 2026


  Commit: b758149ceacb622300430afa1e8cd5fa9a0f3a90
      https://github.com/openssl/openssl/commit/b758149ceacb622300430afa1e8cd5fa9a0f3a90
  Author: Neil Horman <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M include/internal/quic_ackm.h
    M ssl/quic/quic_ackm.c
    M ssl/quic/quic_txp.c

  Log Message:
  -----------
  Don't store ACK-only frames in TX history for QUIC.

When QUIC sends an ACK-only frame, there is no expectation that the
peer will ack that ack (i.e. it is itself not ack-eliciting).  However,
our implementation stores these frames in the TX history regardless.  In and
of itself thats ok, but if a malicious client establishes a connection,
and then drives the connection such that ack-only frames are forced from
the peer (i.e. by sending numerous ping frames), and then withholding
any subseqent acks for ack-eliciting data, like legitimate data, said
malicious client can force inappropriate memory growth on the server,
leading to potential DOS attacks.

Don't store any ACK-only frames in the TX history to address this.  Record it in
our TX history so that the send window moves forward appropriately, but for
ack-only frames, immediately remove it, since we don't expect to get an ack for
them anyway.

Initially authored by Opal Wright <[email protected]>

The initial proposal had some shortcommings in which the highest pn
acked value was not accounted for which I have fixed with the assistance
of Claude

Assisted-by: Anthopic Sonnet 5

Fixes CVE-2026-63075

Reviewed-by: Saša Nedvědický <[email protected]>
Reviewed-by: Bob Beck <[email protected]>
Merge-date: Mon Aug 24 12:07:51 2026


  Commit: 6a06a6edbfe3ac97b72b2c630e25fcd0e1540251
      https://github.com/openssl/openssl/commit/6a06a6edbfe3ac97b72b2c630e25fcd0e1540251
  Author: Neil Horman <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M test/build.info
    A test/cmp_extracerts_dos_test.c
    M test/recipes/65-test_cmp_msg.t

  Log Message:
  -----------
  Add a test for restricting growth in cmp cert cache

Test to ensure that if certs are rejected we don't add them unboundedly
to the cmp contexts cert cache.

Assisted-by: Claude sonnet 4.6
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Mon Aug 24 12:41:40 2026


  Commit: a6c1091a8feadf0a16851cdda38a85aafe41cb11
      https://github.com/openssl/openssl/commit/a6c1091a8feadf0a16851cdda38a85aafe41cb11
  Author: Neil Horman <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M crypto/cmp/cmp_vfy.c

  Log Message:
  -----------
  Fix unbounded cert cache growth in cmp

If a remote user sends cmp messages to a server with a list of
extraCerts and the message is rejected, the extraCerts from the message
remain in the server contexts untrusted certificate stack.  This exposes
servers with long lived ctx objects to denial of service attacks in
which an attacker sends messages intending to be rejected with a large
list of additional cerificated repeatedly, forcing the server to store
them indefinately.

Fix it by rolling back the added extra certs if the message is rejected,
using the same method we do when the context is configured to not do
caching at all.

Fixes openssl/srt#224

Fixes CVE-2026-63074

Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Mon Aug 24 12:41:41 2026


  Commit: b8e5bb958ee4501a95b424c6f9f457dd013b4d83
      https://github.com/openssl/openssl/commit/b8e5bb958ee4501a95b424c6f9f457dd013b4d83
  Author: Viktor Dukhovni <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M ssl/t1_lib.c
    M test/rpktest.c

  Log Message:
  -----------
  Handle signature_algorithms_cert extension in key-only context

Servers or clients that configure only a private key in
expectation of always negotiating use of RFC7250 raw public keys
failed to handle the "signature_algorithms_cert" extension.

The issue is now resolved and the RPK tests now check that
key-only configurations are robust also when the extension
is sent by the peer.

Key-only configurations are quite uncommon.  As a best practice,
RPK-capable servers and clients pair their private key with a
(possibly self-signed) certificate, enabling fallback to X.509
handshakes with non-RPK peers.

Fixes CVE-2026-14457

Reviewed-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
Merge-date: Mon Aug 24 12:48:45 2026


  Commit: 958f6f6040385a88a322673dbb465f7259ebf0f2
      https://github.com/openssl/openssl/commit/958f6f6040385a88a322673dbb465f7259ebf0f2
  Author: Norbert Pocs <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M crypto/cmp/cmp_vfy.c

  Log Message:
  -----------
  CMP unexpected sender DN used as format string in ERR_raise_data()

ossl_cmp_msg_check_update() converts an unexpected CMP response sender DN with
X509_NAME_oneline() and passes that peer-controlled string directly as the
format argument to ERR_raise_data(). Printable percent characters survive the
DN conversion, so a sender such as CN=%s%n reaches vsnprintf() as active format
syntax without matching varargs.

Fixes: CVE-2026-63073

Original patch by: Filipe Casal of Trail of Bits in collaboration with OpenAI

Signed-off-by: Norbert Pocs <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Reviewed-by: Igor Ustinov <[email protected]>
Merge-date: Mon Aug 24 12:53:37 2026


  Commit: a6286cd01801a50aec5fc5b10e7ac73399d160f0
      https://github.com/openssl/openssl/commit/a6286cd01801a50aec5fc5b10e7ac73399d160f0
  Author: Norbert Pocs <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M test/cmp_vfy_test.c

  Log Message:
  -----------
  Add test for CVE-2026-63073

Signed-off-by: Norbert Pocs <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Reviewed-by: Igor Ustinov <[email protected]>
Merge-date: Mon Aug 24 12:53:37 2026


  Commit: 13bcff0ab2f5c55696c92cc6b3480d94f80e8e3b
      https://github.com/openssl/openssl/commit/13bcff0ab2f5c55696c92cc6b3480d94f80e8e3b
  Author: Daniel Kubec <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M crypto/cms/cms_kari.c
    M crypto/cms/cms_kemri.c

  Log Message:
  -----------
  Fix heap buffer overflow (8-byte OOB write) in AES-WRAP-PAD unwrap

On its integrity-failure paths that primitive writes and cleanses up to inlen
bytes of the output buffer. Size the buffer for that worst case so a failed
unwrap cannot write past the allocation.

Fixes CVE-2026-63072

Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
Merge-date: Mon Aug 24 14:37:11 2026


  Commit: 9e55749c83f6b801ef17b069ac6ee74e6487005a
      https://github.com/openssl/openssl/commit/9e55749c83f6b801ef17b069ac6ee74e6487005a
  Author: Daniel Kubec <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M test/cmsapitest.c
    M test/recipes/80-test_cmsapi.t

  Log Message:
  -----------
  Add test for CVE-2026-63072

Assisted-by: Claude:claude-fable-5
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
Merge-date: Mon Aug 24 14:37:11 2026


  Commit: 809b52282a3ea6d56fc2e1c427f2d9bd83b06eaa
      https://github.com/openssl/openssl/commit/809b52282a3ea6d56fc2e1c427f2d9bd83b06eaa
  Author: Matt Caswell <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M ssl/record/methods/dtls_meth.c

  Log Message:
  -----------
  Avoid full read buffer allocation when buffering DTLS next-epoch records

dtls_rlayer_buffer_record() buffers records that arrive early for the
next epoch while a handshake is in progress. It did this by taking
ownership of the entire live read buffer (sized for the largest
possible record, ~16.7KB) and allocating a brand new one to carry on
reading, regardless of how small the buffered record actually was.
With the queue capped at 100 entries, a peer could send around 100
tiny bogus next-epoch records (~14 bytes each on the wire) and force
around 1.7MB of heap allocation per connection.

Instead, copy only the record's own on-wire bytes (header and
ciphertext) into the queue entry, and leave the live read buffer
untouched. Memory use is now proportional to what the peer actually
sends.

Fixes CVE-2026-54874

Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Merge-date: Mon Aug 24 15:37:50 2026


  Commit: 24a394e0b9c0afded88f57343fd491d26ca5bd5f
      https://github.com/openssl/openssl/commit/24a394e0b9c0afded88f57343fd491d26ca5bd5f
  Author: Matt Caswell <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M ssl/record/methods/dtls_meth.c

  Log Message:
  -----------
  ssl/record/methods/dtls_meth.c: lower the unprocessed_rcds queue limit

100 buffered next-epoch records is far more than a normal handshake
ever needs. A peer that has already completed its side of the epoch
transition may send more than one record under the new epoch before
we catch up and bump our own receive epoch - for example, application
data sent immediately once the peer considers the handshake done -
but real-world bursts like that are still small. Now that each entry
only costs as much memory as the record actually received, the limit
mainly serves as a ceiling on worst-case per-connection memory use, so
lower it to 16 to keep that ceiling smaller while still leaving ample
headroom over legitimate usage.

Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Merge-date: Mon Aug 24 15:37:51 2026


  Commit: 2fbe637d98b77252e65ff4c367f56210c9a026e6
      https://github.com/openssl/openssl/commit/2fbe637d98b77252e65ff4c367f56210c9a026e6
  Author: Matt Caswell <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M ssl/record/methods/dtls_meth.c
    M ssl/record/methods/recmethod_local.h

  Log Message:
  -----------
  ssl/record: remove dead DTLS processed_rcds record queue

rl->processed_rcds and the functions that serviced it
(dtls_copy_rlayer_record(), dtls_retrieve_rlayer_buffered_record())
were unreachable: nothing in the codebase ever inserted a record into
that queue, so the only consumer of it - the check at the top of
dtls_get_more_records() - always saw an empty queue. The real
mechanism for handing buffered next-epoch records to the next epoch's
record layer is the unrelated forwarding code in dtls_free(), which
pushes the raw bytes from rl->unprocessed_rcds onto rl->next.

Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Milan Broz <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Merge-date: Mon Aug 24 15:37:52 2026


  Commit: b6011a9ee87ab25f47d999a716a1567da00e1878
      https://github.com/openssl/openssl/commit/b6011a9ee87ab25f47d999a716a1567da00e1878
  Author: Alexandr Nedvedicky <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M include/internal/quic_record_rx.h
    M ssl/quic/quic_port.c
    M ssl/quic/quic_record_rx.c

  Log Message:
  -----------
  Avoid double free of qrx in port_default_packet_handler()

port_default_packet_handler() may perform double free of qrx
when channel creation fails. The port_default_packet_handler()
transfers ownership of qrx to channel/connection via call to
port_bind_channel(). The port_bind_channel() however may
release the qrx when channel can not be bound. The error is
then detected in port_default_packet_handler() which then agains
releases qrx for the second time.

The fix is to add a reference counter to QRX object so transfer
of ownership between port_default_packet_handler() and QUIC_CHANNEL
can be handled safely.

Fixes CVE-2026-18798

Reviewed-by: Igor Ustinov <[email protected]>
Reviewed-by: Andrew Dinh <[email protected]>
Merge-date: Mon Aug 24 15:46:13 2026


Compare: https://github.com/openssl/openssl/compare/d44817c5cb03...b6011a9ee87a

To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications

-- 
You received this message because you are subscribed to the Google Groups "openssl-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-commits/openssl/openssl/push/refs/heads/master/d44817-b6011a%40github.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.