summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortb <>2026-08-29 08:41:17 +0000
committertb <>2026-08-29 08:41:17 +0000
commit6b13eef79d2dc54c1b0203f967b3fc8b8971df78 (patch)
tree72a0856a3655e334a7c23a1030ff6db6afc9cbe5 /src
parent1cbc9ec6252c472fb52de4c1256d43c9248dce36 (diff)
downloadopenbsd-6b13eef79d2dc54c1b0203f967b3fc8b8971df78.tar.gz
openbsd-6b13eef79d2dc54c1b0203f967b3fc8b8971df78.tar.bz2
openbsd-6b13eef79d2dc54c1b0203f967b3fc8b8971df78.zip
libssl: fix API misuse in legacy finished handling
This looks like a potential out of bounds read or allowing trailing garbage in peer_finished. It's harmless because CBS_len() is compared against the s->s3->hs.peer_finished_len a few lines up, thus it is only cosmetic. discussed with jsing ok kenjiro
Diffstat (limited to 'src')
-rw-r--r--src/lib/libssl/ssl_clnt.c5
-rw-r--r--src/lib/libssl/ssl_srvr.c5
2 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c
index 69221332f5..37684aba91 100644
--- a/src/lib/libssl/ssl_clnt.c
+++ b/src/lib/libssl/ssl_clnt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_clnt.c,v 1.176 2026/08/21 17:15:22 tb Exp $ */ 1/* $OpenBSD: ssl_clnt.c,v 1.177 2026/08/29 08:41:17 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2348,7 +2348,8 @@ ssl3_get_server_finished(SSL *s)
2348 goto fatal_err; 2348 goto fatal_err;
2349 } 2349 }
2350 2350
2351 if (!CBS_mem_equal(&cbs, s->s3->hs.peer_finished, CBS_len(&cbs))) { 2351 if (!CBS_mem_equal(&cbs,
2352 s->s3->hs.peer_finished, s->s3->hs.peer_finished_len)) {
2352 al = SSL_AD_DECRYPT_ERROR; 2353 al = SSL_AD_DECRYPT_ERROR;
2353 SSLerror(s, SSL_R_DIGEST_CHECK_FAILED); 2354 SSLerror(s, SSL_R_DIGEST_CHECK_FAILED);
2354 goto fatal_err; 2355 goto fatal_err;
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c
index 43260d8065..a12f552bea 100644
--- a/src/lib/libssl/ssl_srvr.c
+++ b/src/lib/libssl/ssl_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_srvr.c,v 1.171 2026/08/21 17:15:22 tb Exp $ */ 1/* $OpenBSD: ssl_srvr.c,v 1.172 2026/08/29 08:41:17 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2373,7 +2373,8 @@ ssl3_get_client_finished(SSL *s)
2373 goto fatal_err; 2373 goto fatal_err;
2374 } 2374 }
2375 2375
2376 if (!CBS_mem_equal(&cbs, s->s3->hs.peer_finished, CBS_len(&cbs))) { 2376 if (!CBS_mem_equal(&cbs,
2377 s->s3->hs.peer_finished, s->s3->hs.peer_finished_len)) {
2377 al = SSL_AD_DECRYPT_ERROR; 2378 al = SSL_AD_DECRYPT_ERROR;
2378 SSLerror(s, SSL_R_DIGEST_CHECK_FAILED); 2379 SSLerror(s, SSL_R_DIGEST_CHECK_FAILED);
2379 goto fatal_err; 2380 goto fatal_err;