| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
This fixes issue found by fuzz test in updated corpora for
echconfiglist_parser.
Reviewed-by: Norbert Pocs <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon Jul 27 16:36:15 2026
(Merged from https://github.com/openssl/openssl/pull/32070)
|
| |
|
|
|
|
|
|
| |
Reviewed-by: Neil Horman <[email protected]>
Reviewed-by: Richard Levitte <[email protected]>
Reviewed-by: Milan Broz <[email protected]>
MergeDate: Mon Jun 15 19:24:43 2026
(Merged from https://github.com/openssl/openssl/pull/31454)
|
| |
|
|
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Nikola Pajkovsky <[email protected]>
Reviewed-by: Norbert Pocs <[email protected]>
MergeDate: Wed May 6 11:35:50 2026
(Merged from https://github.com/openssl/openssl/pull/31001)
|
| |
|
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Sat Apr 11 18:29:37 2026
(Merged from https://github.com/openssl/openssl/pull/30727)
|
| |
|
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Apr 8 08:59:20 2026
(Merged from https://github.com/openssl/openssl/pull/30419)
|
| |
|
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Apr 8 08:59:19 2026
(Merged from https://github.com/openssl/openssl/pull/30419)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bounds check before reading the two-byte extensions length field uses
extsoffset + 1 instead of extsoffset + 2:
if ((extsoffset + 1) > clearlen) { goto paderr; }
extslen = clear[extsoffset] * 256 + clear[extsoffset + 1];
When extsoffset == clearlen - 1 the check passes, but the second read
clear[extsoffset + 1] is clear[clearlen], which is one byte beyond
the decrypted plaintext. The allocation is OPENSSL_malloc(cipherlen)
where cipherlen = clearlen + AEAD_overhead, so the address is valid,
but the byte is uninitialised after OSSL_HPKE_open returns.
Using Valgrind confirmed an uninitialised-value read at this location
via the full server handshake path:
hpke_decrypt_encch (ech_internal.c)
ossl_ech_early_decrypt
tls_process_client_hello
state_machine
SSL_do_handshake
The subsequent ch_len > clearlen check (line 1875) acts as a safety net
and prevents the stale byte from being used further, so the practical
impact is a forced decode error rather than memory disclosure.
Nevertheless, the read itself is incorrect and should be fixed.
Fix: change the guard to extsoffset + 2 so that both bytes
of the extensions length field are confirmed to be within the decrypted
buffer before either is read.
This issue was identified through AI-assisted structural analysis
(RAPTOR) using CodeQL database tooling (AST analysis, control flow
verification, dominator tree analysis) against the OpenSSL master
branch. The off-by-one was confirmed via AST inspection showing
GT(Add(extsoffset, 1), clearlen) instead of the expected
GT(Add(extsoffset, 2), clearlen).
Found by myself @danielcuthbert and validated
by Benjamin Rodes - Microsoft @bdrodes.
CLA: trivial
Fixes: 6c3edd4f3a8a "Add server-side handling of Encrypted Client Hello"
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Eugene Syromiatnikov <[email protected]>
MergeDate: Fri Mar 20 18:07:01 2026
(Merged from https://github.com/openssl/openssl/pull/30472)
|
| |
|
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Thu Mar 19 10:35:56 2026
(Merged from https://github.com/openssl/openssl/pull/30417)
|
| |
|
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Eugene Syromiatnikov <[email protected]>
MergeDate: Tue Mar 10 14:37:54 2026
Release: yes
|
| |
|
|
|
|
|
| |
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Mar 2 09:55:44 2026
(Merged from https://github.com/openssl/openssl/pull/30175)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Use OPENSSL_malloc_array() for ee->suites array allocation, as it is more
semantically sound and performs a size overflow check.
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:20:15 2026
(Merged from https://github.com/openssl/openssl/pull/30146)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The default CRYPTO_malloc() implementation (with OPENSSL_malloc()
and OPENSSL_zalloc() being wrappers for it) raises an error
on allocation, and both OPENSSL_strdup() and OPENSSL_memdup() use
CRYPTO_malloc() internally for memory allocation, so there is no need
to explicitly raise an error on an allocation failure; remove these.
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:20:14 2026
(Merged from https://github.com/openssl/openssl/pull/30146)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not jump to the err label on rent NULL check failure (where
it is dereferenced) and rather return immediately.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681462
Fixes: 4af71a77387c "ECH CLI implementation"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:52 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not call WPACKET_cleanup() in case of WPACKET_init() failure
and earlier errors.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681459
Fixes: 4af71a77387c "ECH CLI implementation"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:51 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Free the newly allocated OSSL_ECHSTORE in case of propq duplication
failure before return.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681457
Fixes: 7debe0ddeff7 "ECH external APIs"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:50 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Free allocated tmpenc in case of subsequent PACKET_copy_bytes() failure.
Reolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681456
Fixes: 6c3edd4f3a8a "Add server-side handling of Encrypted Client Hello"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:49 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Do not call SSLfatal with s that can potentially be NULL.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681455
Fixes: 6c3edd4f3a8a "Add server-side handling of Encrypted Client Hello"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:47 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid casting time_t (that is almost universally 64-bit nowadays)
to (32-bit) int and cast it to long long instead.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681453
Fixes: ade10c5dbf20 "ECH client side"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:46 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check the return value of check WPACKET_get_total_written() call
in OSSL_ECHSTORE_new_config() and OSSL_ECHSTORE_write_pem(),
and error out on failure.
References: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681451
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:45 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Free the temporarily allocated memory before returning on failed size
overflow check.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681458
Fixes: 0bdae603e82f "ossl_ech_get_retry_configs(): Check for integer overflow"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:43 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check the result of WPACKET_get_total_written() calls
in ossl_ech_send_grease(), as is done elsewhere.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681451
Fixes: ade10c5dbf20 "ECH client side"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:42 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove superfluous extval NULL check on success path, as it cannot
be NULL, and is already dereferenced earlier.
Resolves: https://scan5.scan.coverity.com/#/project-view/65248/10222?selectedIssue=1681447
Fixes: 6c3edd4f3a8a "Add server-side handling of Encrypted Client Hello"
Signed-off-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Feb 25 11:10:41 2026
(Merged from https://github.com/openssl/openssl/pull/30139)
|
| |
|
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Feb 19 09:22:37 2026
(Merged from https://github.com/openssl/openssl/pull/30048)
|
| |
|
|
|
|
|
|
|
|
|
| |
strspn() is called on likely non-NUL-terminated BIO buffer.
Copy it and add NUL-termination before calling the function.
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Feb 19 09:17:54 2026
(Merged from https://github.com/openssl/openssl/pull/30050)
|
| |
|
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Feb 16 15:41:15 2026
(Merged from https://github.com/openssl/openssl/pull/29200)
|
| |
|
|
|
|
|
|
|
| |
Fixes DEF-02-010
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Wed Feb 11 17:19:16 2026
(Merged from https://github.com/openssl/openssl/pull/29593)
|
| |
|
|
|
|
|
|
|
| |
Fixes DEF-02-001
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Wed Feb 11 17:19:08 2026
(Merged from https://github.com/openssl/openssl/pull/29593)
|
| |
|
|
|
|
|
|
|
| |
And further minor refactoring.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Dmitry Belyavskiy <[email protected]>
MergeDate: Thu Jan 8 09:59:56 2026
(Merged from https://github.com/openssl/openssl/pull/29439)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28270)
|
| |
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28555)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28611)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28611)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28611)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/27561)
|
| |
|
|
|
|
| |
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/27540)
|
| |
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26011)
|
| |
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26011)
|
| |
|
|
|
|
| |
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25663)
|
|
|
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25420)
|