Skip to content

Multiple DTLS and TLS focused fixes.#10117

Merged
douzzer merged 2 commits intowolfSSL:masterfrom
gasbytes:2025-03-31-dtls-and-tls-focused-fixes
Apr 2, 2026
Merged

Multiple DTLS and TLS focused fixes.#10117
douzzer merged 2 commits intowolfSSL:masterfrom
gasbytes:2025-03-31-dtls-and-tls-focused-fixes

Conversation

@gasbytes
Copy link
Copy Markdown
Contributor

@gasbytes gasbytes commented Apr 1, 2026

dtls13.c:

  • Fix wrong return value in Dtls13SendFragmentedInternal error path (return outputSz instead of recordLength)
  • Fix incomplete bounds check in Dtls13SendFragmented to account for DTLS_HANDSHAKE_HEADER_SZ
  • Fix wrong WOLFSSL_ENTER trace string in Dtls13EpochCopyKeys

tls13.c:

  • Remove wrong (byte) cast on cookie->len passed to TlsCheckCookie
  • Add missing bounds check on PSK identityLen in SetupPskKey before copying to client_identity
  • Fix data race on static header array in ExpectedResumptionSecret
  • Add defensive underflow check in EncryptTls13 for consistency with DecryptTls13
  • Fix wrong return variable in DTLS 1.3 Finished send error path (return dtlsRet instead of ret)
  • Add missing SM3 case and default in Tls13_Exporter hash switch to prevent NULL dereference
  • Initialize *outSz to 0 in wolfSSL_write_early_data to match wolfSSL_read_early_data
  • Add bounds check for bindersLen against helloSz in CheckPreSharedKeys
  • Fix resource leak and hash state corruption in ExpectedResumptionSecret error paths
  • Fix memory leak of rsaSigBuf in dual-alg RSA+RSA CertificateVerify
  • Guard against word32 underflow in inputLength - HANDSHAKE_HEADER_SZ in DoTls13HandShakeMsg
  • Fix swapped side parameter in DeriveFinishedSecret for server-side Finished processing
  • Fix no_mac fall-through in ssl_handshake_md to return NULL instead of wrong digest
  • Fix strict aliasing violation in FindPsk PSK key size check
  • Remove duplicate !ssl->options.dtls check in TLS 1.3 middlebox compat condition

tests:

  • Add regression tests for wolfSSL_write_early_data outSz initialization and DTLS 1.3 Finished send error propagation

@gasbytes gasbytes self-assigned this Apr 1, 2026
dtls13.c:
- Fix wrong return value in Dtls13SendFragmentedInternal error path (return outputSz instead of recordLength)
- Fix incomplete bounds check in Dtls13SendFragmented to account for DTLS_HANDSHAKE_HEADER_SZ
- Fix wrong WOLFSSL_ENTER trace string in Dtls13EpochCopyKeys

tls13.c:
- Remove wrong (byte) cast on cookie->len passed to TlsCheckCookie
- Add missing bounds check on PSK identityLen in SetupPskKey before copying to client_identity
- Fix data race on static header array in ExpectedResumptionSecret
- Add defensive underflow check in EncryptTls13 for consistency with DecryptTls13
- Fix wrong return variable in DTLS 1.3 Finished send error path (return dtlsRet instead of ret)
- Add missing SM3 case and default in Tls13_Exporter hash switch to prevent NULL dereference
- Initialize *outSz to 0 in wolfSSL_write_early_data to match wolfSSL_read_early_data
- Add bounds check for bindersLen against helloSz in CheckPreSharedKeys
- Fix resource leak and hash state corruption in ExpectedResumptionSecret error paths
- Fix memory leak of rsaSigBuf in dual-alg RSA+RSA CertificateVerify
- Guard against word32 underflow in inputLength - HANDSHAKE_HEADER_SZ in DoTls13HandShakeMsg
- Fix swapped side parameter in DeriveFinishedSecret for server-side Finished processing
- Fix no_mac fall-through in ssl_handshake_md to return NULL instead of wrong digest
- Fix strict aliasing violation in FindPsk PSK key size check
- Remove duplicate !ssl->options.dtls check in TLS 1.3 middlebox compat condition

tests:
- Add regression tests for wolfSSL_write_early_data outSz initialization and DTLS 1.3 Finished send error propagation
@gasbytes gasbytes force-pushed the 2025-03-31-dtls-and-tls-focused-fixes branch from 4cbba7e to d3ce5b8 Compare April 1, 2026 16:37
@gasbytes gasbytes requested a review from julek-wolfssl April 1, 2026 18:56
@gasbytes gasbytes assigned wolfSSL-Bot and julek-wolfssl and unassigned gasbytes Apr 1, 2026
@gasbytes gasbytes added the For This Release Release version 5.9.1 label Apr 1, 2026
@JacobBarthelmeh
Copy link
Copy Markdown
Contributor

JacobBarthelmeh commented Apr 1, 2026

Retest this please Jenkins -- multi-test failure, can no longer access the results.

@douzzer douzzer added the Staged Staged for merge pending final test results and review label Apr 1, 2026
@douzzer douzzer merged commit 661eb46 into wolfSSL:master Apr 2, 2026
493 of 494 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

For This Release Release version 5.9.1 Staged Staged for merge pending final test results and review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants