fix CVE-2021-22897 CVE-2021-22898
This commit is contained in:
parent
f042091b03
commit
dd002d235f
65
backport-CVE-2021-22897.patch
Normal file
65
backport-CVE-2021-22897.patch
Normal file
@ -0,0 +1,65 @@
|
||||
From bbb71507b7bab52002f9b1e0880bed6a32834511 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stenberg <daniel@haxx.se>
|
||||
Date: Fri, 23 Apr 2021 10:54:10 +0200
|
||||
Subject: [PATCH] schannel: don't use static to store selected ciphers
|
||||
|
||||
CVE-2021-22897
|
||||
|
||||
Bug: https://curl.se/docs/CVE-2021-22897.html
|
||||
---
|
||||
lib/vtls/schannel.c | 9 +++++----
|
||||
lib/vtls/schannel.h | 3 +++
|
||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c
|
||||
index 8c25ac5dd5a5..dba7072273a9 100644
|
||||
--- a/lib/vtls/schannel.c
|
||||
+++ b/lib/vtls/schannel.c
|
||||
@@ -328,12 +328,12 @@ get_alg_id_by_name(char *name)
|
||||
}
|
||||
|
||||
static CURLcode
|
||||
-set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers)
|
||||
+set_ssl_ciphers(SCHANNEL_CRED *schannel_cred, char *ciphers,
|
||||
+ int *algIds)
|
||||
{
|
||||
char *startCur = ciphers;
|
||||
int algCount = 0;
|
||||
- static ALG_ID algIds[45]; /*There are 45 listed in the MS headers*/
|
||||
- while(startCur && (0 != *startCur) && (algCount < 45)) {
|
||||
+ while(startCur && (0 != *startCur) && (algCount < NUMOF_CIPHERS)) {
|
||||
long alg = strtol(startCur, 0, 0);
|
||||
if(!alg)
|
||||
alg = get_alg_id_by_name(startCur);
|
||||
@@ -593,7 +593,8 @@ schannel_connect_step1(struct Curl_easy *data, struct connectdata *conn,
|
||||
}
|
||||
|
||||
if(SSL_CONN_CONFIG(cipher_list)) {
|
||||
- result = set_ssl_ciphers(&schannel_cred, SSL_CONN_CONFIG(cipher_list));
|
||||
+ result = set_ssl_ciphers(&schannel_cred, SSL_CONN_CONFIG(cipher_list),
|
||||
+ BACKEND->algIds);
|
||||
if(CURLE_OK != result) {
|
||||
failf(data, "Unable to set ciphers to passed via SSL_CONN_CONFIG");
|
||||
return result;
|
||||
diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h
|
||||
index 2952caa1a5a1..77853aa30f96 100644
|
||||
--- a/lib/vtls/schannel.h
|
||||
+++ b/lib/vtls/schannel.h
|
||||
@@ -71,6 +71,8 @@ CURLcode Curl_verify_certificate(struct Curl_easy *data,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#define NUMOF_CIPHERS 45 /* There are 45 listed in the MS headers */
|
||||
+
|
||||
struct curl_schannel_cred {
|
||||
CredHandle cred_handle;
|
||||
TimeStamp time_stamp;
|
||||
@@ -102,6 +104,7 @@ struct ssl_backend_data {
|
||||
#ifdef HAS_MANUAL_VERIFY_API
|
||||
bool use_manual_cred_validation; /* true if manual cred validation is used */
|
||||
#endif
|
||||
+ ALG_ID algIds[NUMOF_CIPHERS];
|
||||
};
|
||||
#endif /* EXPOSE_SCHANNEL_INTERNAL_STRUCTS */
|
||||
|
||||
|
||||
26
backport-CVE-2021-22898.patch
Normal file
26
backport-CVE-2021-22898.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 39ce47f219b09c380b81f89fe54ac586c8db6bde Mon Sep 17 00:00:00 2001
|
||||
From: Harry Sintonen <sintonen@iki.fi>
|
||||
Date: Fri, 7 May 2021 13:09:57 +0200
|
||||
Subject: [PATCH] telnet: check sscanf() for correct number of matches
|
||||
|
||||
CVE-2021-22898
|
||||
|
||||
Bug: https://curl.se/docs/CVE-2021-22898.html
|
||||
---
|
||||
lib/telnet.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/telnet.c b/lib/telnet.c
|
||||
index 26e0658ba9cc..fdd137fb0c04 100644
|
||||
--- a/lib/telnet.c
|
||||
+++ b/lib/telnet.c
|
||||
@@ -922,7 +922,7 @@ static void suboption(struct Curl_easy *data)
|
||||
size_t tmplen = (strlen(v->data) + 1);
|
||||
/* Add the variable only if it fits */
|
||||
if(len + tmplen < (int)sizeof(temp)-6) {
|
||||
- if(sscanf(v->data, "%127[^,],%127s", varname, varval)) {
|
||||
+ if(sscanf(v->data, "%127[^,],%127s", varname, varval) == 2) {
|
||||
msnprintf((char *)&temp[len], sizeof(temp) - len,
|
||||
"%c%s%c%s", CURL_NEW_ENV_VAR, varname,
|
||||
CURL_NEW_ENV_VALUE, varval);
|
||||
|
||||
10
curl.spec
10
curl.spec
@ -6,7 +6,7 @@
|
||||
|
||||
Name: curl
|
||||
Version: 7.71.1
|
||||
Release: 8
|
||||
Release: 9
|
||||
Summary: Curl is used in command lines or scripts to transfer data
|
||||
License: MIT
|
||||
URL: https://curl.haxx.se/
|
||||
@ -24,6 +24,8 @@ Patch110: backport-CVE-2020-8285.patch
|
||||
Patch111: backport-CVE-2020-8286.patch
|
||||
Patch112: backport-CVE-2021-22876.patch
|
||||
Patch113: backport-CVE-2021-22890.patch
|
||||
Patch114: backport-CVE-2021-22897.patch
|
||||
Patch115: backport-CVE-2021-22898.patch
|
||||
|
||||
BuildRequires: automake brotli-devel coreutils gcc groff krb5-devel
|
||||
BuildRequires: libidn2-devel libmetalink-devel libnghttp2-devel libpsl-devel
|
||||
@ -165,6 +167,12 @@ rm -rf ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Tue Jun 8 2021 gaihuiying <gaihuiying1@huawei.com> - 7.71.1-9
|
||||
- Type:CVE
|
||||
- CVE:CVE-2021-22897 CVE-2021-22898
|
||||
- SUG:NA
|
||||
- DESC:fix CVE-2021-22897 CVE-2021-22898
|
||||
|
||||
* Tue Apr 20 2021 gaihuiying <gaihuiying1@huawei.com> - 7.71.1-8
|
||||
- Type:CVE
|
||||
- CVE:CVE-2021-22890
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user