mirror of
https://abf.rosa.ru/djam/libressl.git
synced 2025-02-23 08:02:54 +00:00
Fix CVE-2021-3712
This commit is contained in:
parent
188f6bf461
commit
817fd2e062
2 changed files with 78 additions and 1 deletions
67
0089-CVE-2021-3712.patch
Normal file
67
0089-CVE-2021-3712.patch
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
From 89d74f9b9c8c0b042e81aecb6c286253a51659d8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: benno <>
|
||||||
|
Date: Fri, 20 Aug 2021 19:54:16 +0000
|
||||||
|
Subject: [PATCH] In LibreSSL, printing a certificate can result in a crash in
|
||||||
|
X509_CERT_AUX_print().
|
||||||
|
|
||||||
|
Commit in -current:
|
||||||
|
|
||||||
|
CVSROOT: /cvs
|
||||||
|
Module name: src
|
||||||
|
Changes by: schwarze@cvs.openbsd.org 2021/07/10 11:45:16
|
||||||
|
|
||||||
|
Modified files:
|
||||||
|
lib/libcrypto/asn1: t_x509a.c
|
||||||
|
|
||||||
|
Log message:
|
||||||
|
Fix a read buffer overrun in X509_CERT_AUX_print(3),
|
||||||
|
which by implication also affects X509_print(3).
|
||||||
|
|
||||||
|
The ASN1_STRING_get0_data(3) manual explitely cautions the reader
|
||||||
|
that the data is not necessarily NUL-terminated, and the function
|
||||||
|
X509_alias_set1(3) does not sanitize the data passed into it in
|
||||||
|
any way either, so we must assume the alias->data field is merely
|
||||||
|
a byte array and not necessarily a string in the sense of the C
|
||||||
|
language.
|
||||||
|
|
||||||
|
I found this bug while writing manual pages for these functions.
|
||||||
|
|
||||||
|
OK tb@
|
||||||
|
|
||||||
|
As an aside, note that the function still produces incomplete and
|
||||||
|
misleading results when the data contains a NUL byte in the middle
|
||||||
|
and that error handling is consistently absent throughout, even
|
||||||
|
though the function provides an "int" return value obviously intended
|
||||||
|
to be 1 for success and 0 for failure, and even though this function
|
||||||
|
is called by another function that also wants to return 1 for success
|
||||||
|
and 0 for failure and even does so in many of its code paths, though
|
||||||
|
not in others. But let's stay focussed. Many things would be nice
|
||||||
|
to have in the wide wild world, but a buffer overflow must not be
|
||||||
|
allowed to remain in our backyard.
|
||||||
|
|
||||||
|
This is patches/6.8/common/029_x509.patch.sig
|
||||||
|
---
|
||||||
|
src/lib/libcrypto/asn1/t_x509a.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/lib/libcrypto/asn1/t_x509a.c b/src/lib/libcrypto/asn1/t_x509a.c
|
||||||
|
index fd68211b84..173465b295 100644
|
||||||
|
--- a/src/lib/libcrypto/asn1/t_x509a.c
|
||||||
|
+++ b/src/lib/libcrypto/asn1/t_x509a.c
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-/* $OpenBSD: t_x509a.c,v 1.8 2014/07/11 08:44:47 jsing Exp $ */
|
||||||
|
+/* $OpenBSD: t_x509a.c,v 1.8.18.1 2021/08/20 19:54:16 benno Exp $ */
|
||||||
|
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
|
||||||
|
* project 1999.
|
||||||
|
*/
|
||||||
|
@@ -105,8 +105,8 @@ X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
|
||||||
|
} else
|
||||||
|
BIO_printf(out, "%*sNo Rejected Uses.\n", indent, "");
|
||||||
|
if (aux->alias)
|
||||||
|
- BIO_printf(out, "%*sAlias: %s\n", indent, "",
|
||||||
|
- aux->alias->data);
|
||||||
|
+ BIO_printf(out, "%*sAlias: %.*s\n", indent, "",
|
||||||
|
+ aux->alias->length, aux->alias->data);
|
||||||
|
if (aux->keyid) {
|
||||||
|
BIO_printf(out, "%*sKey Id: ", indent, "");
|
||||||
|
for (i = 0; i < aux->keyid->length; i++)
|
|
@ -76,7 +76,7 @@
|
||||||
Summary: LibreSSL utils and libs coexisting with OpenSSL
|
Summary: LibreSSL utils and libs coexisting with OpenSSL
|
||||||
Name: libressl
|
Name: libressl
|
||||||
Version: 3.2.0
|
Version: 3.2.0
|
||||||
Release: 7
|
Release: 8
|
||||||
# The code is distributed under ISC license except of original OpenSSL code
|
# The code is distributed under ISC license except of original OpenSSL code
|
||||||
License: ISC and BSD-like
|
License: ISC and BSD-like
|
||||||
Group: System/Base
|
Group: System/Base
|
||||||
|
@ -201,7 +201,17 @@ Patch0086: 0086-kdftree-add-support-for-TLSTREE-rekeying-algorithm.patch
|
||||||
Patch0087: 0087-ssl-add-support-for-TLSTREE-rekeying.patch
|
Patch0087: 0087-ssl-add-support-for-TLSTREE-rekeying.patch
|
||||||
# https://www.opennet.ru/opennews/art.shtml?num=54233
|
# https://www.opennet.ru/opennews/art.shtml?num=54233
|
||||||
# https://github.com/libressl-portable/openbsd/commit/f22d7684aed13a9ae9ea6554b7a3e52fdfa4f193
|
# https://github.com/libressl-portable/openbsd/commit/f22d7684aed13a9ae9ea6554b7a3e52fdfa4f193
|
||||||
|
# From LibreSSL 3.2.3
|
||||||
Patch0088: 0088-CVE-2020-1971.patch
|
Patch0088: 0088-CVE-2020-1971.patch
|
||||||
|
# https://www.opennet.ru/opennews/art.shtml?num=55683
|
||||||
|
# https://github.com/libressl-portable/openbsd/commit/89d74f9b9c8c0b042e81aecb6c286253a51659d8
|
||||||
|
# From LibreSSL 3.2.6
|
||||||
|
Patch0089: 0089-CVE-2021-3712.patch
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
# https://www.opennet.ru/opennews/art.shtml?num=54774
|
||||||
|
# https://github.com/libressl-portable/openbsd/commit/5f00b800749f246861e892a17d9012bd25fc06ba (LibreSSL 3.2.5)
|
||||||
|
# Code is different in our version, investigation if backport is required is required.
|
||||||
|
|
||||||
# Patches for portable, from lumag@
|
# Patches for portable, from lumag@
|
||||||
# ( for i in *PORTABLE*.patch ; do echo Patch$(echo $i | awk -F '-' '{print $2}'): $i ; done ) | sed -e 's,^Patch0,Patch2,g' | sort -h
|
# ( for i in *PORTABLE*.patch ; do echo Patch$(echo $i | awk -F '-' '{print $2}'): $i ; done ) | sed -e 's,^Patch0,Patch2,g' | sort -h
|
||||||
|
|
Loading…
Add table
Reference in a new issue