diff options
| author | jsing <> | 2018-05-12 17:27:22 +0000 |
|---|---|---|
| committer | jsing <> | 2018-05-12 17:27:22 +0000 |
| commit | ea606e131938c87e1473e774562a0533965e785c (patch) | |
| tree | bfbf05494fc9558692f4c44344631fcde648df29 | |
| parent | 3332fc082b146f5fea6f68dc1f2ba5f934cc0d69 (diff) | |
| download | openbsd-ea606e131938c87e1473e774562a0533965e785c.tar.gz openbsd-ea606e131938c87e1473e774562a0533965e785c.tar.bz2 openbsd-ea606e131938c87e1473e774562a0533965e785c.zip | |
If we fail to decode an EC point format extension, send a decode_error
alert rather than an internal_error alert.
Issue found by Simon Friedberger, Robert Merget and Juraj Somorovsky.
ok beck@ inoguchi@
| -rw-r--r-- | src/lib/libssl/ssl_tlsext.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c index 3735b719db..b70be87f3a 100644 --- a/src/lib/libssl/ssl_tlsext.c +++ b/src/lib/libssl/ssl_tlsext.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_tlsext.c,v 1.21 2018/02/08 11:30:30 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.c,v 1.22 2018/05/12 17:27:22 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> | 4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> |
| @@ -333,14 +333,16 @@ tlsext_ecpf_parse(SSL *s, CBS *cbs, int *alert) | |||
| 333 | 333 | ||
| 334 | if (!s->internal->hit) { | 334 | if (!s->internal->hit) { |
| 335 | if (!CBS_stow(&ecpf, &(SSI(s)->tlsext_ecpointformatlist), | 335 | if (!CBS_stow(&ecpf, &(SSI(s)->tlsext_ecpointformatlist), |
| 336 | &(SSI(s)->tlsext_ecpointformatlist_length))) | 336 | &(SSI(s)->tlsext_ecpointformatlist_length))) { |
| 337 | goto err; | 337 | *alert = TLS1_AD_INTERNAL_ERROR; |
| 338 | return 0; | ||
| 339 | } | ||
| 338 | } | 340 | } |
| 339 | 341 | ||
| 340 | return 1; | 342 | return 1; |
| 341 | 343 | ||
| 342 | err: | 344 | err: |
| 343 | *alert = TLS1_AD_INTERNAL_ERROR; | 345 | *alert = SSL_AD_DECODE_ERROR; |
| 344 | return 0; | 346 | return 0; |
| 345 | } | 347 | } |
| 346 | 348 | ||
