curl 7.61.0 through 7.76.1 suffers from exposure of data element to wrong session due to a mistake in the code for CURLOPTSSLCIPHER_LIST when libcurl is built to use the Schannel TLS library. The selected cipher set was stored in a single "static" variable in the library, which has the surprising side-effect that if an application sets up multiple concurrent transfers, the last one that sets the ciphers will accidentally control the set used by all transfers. In a worst-case scenario, this weakens transport security significantly.
[
{
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "lib/vtls/schannel.c"
},
"digest": {
"line_hashes": [
"169306282263403152476778100550579197303",
"297501274346842746936104394958035664195",
"115226342142473284132899468397361420315",
"234734752945961461342272917723384093426",
"295386562829775930098639946838584527244",
"219517661826067509758353138597803787494",
"244949559378790381198359763585636363260",
"332559676467627573058079295969579883439",
"172944519042723511467055631002959388061",
"49891809641561640485570718961026384269",
"303945483550590176791034946765591014847",
"160380589874126636249932610610053765267",
"202261837233141056431919104544500820999"
],
"threshold": 0.9
},
"source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511",
"signature_type": "Line",
"id": "CVE-2021-22897-462e72f1"
},
{
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "lib/vtls/schannel.h"
},
"digest": {
"line_hashes": [
"144288989636727895116566759813531481869",
"310223903940348029157260322620209786472",
"305687057856332765216788005169622682063",
"325657448106323421990448296138158547936",
"292286319081006362423274139499724779986",
"39604824998280807468150180221600407666",
"57176848086045237311152580885468675039"
],
"threshold": 0.9
},
"source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511",
"signature_type": "Line",
"id": "CVE-2021-22897-66d13eee"
},
{
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "schannel_connect_step1",
"file": "lib/vtls/schannel.c"
},
"digest": {
"function_hash": "211186878913764398743821657885986770610",
"length": 14322.0
},
"source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511",
"signature_type": "Function",
"id": "CVE-2021-22897-8c49663e"
},
{
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "set_ssl_ciphers",
"file": "lib/vtls/schannel.c"
},
"digest": {
"function_hash": "36431407875438539121636832984401189544",
"length": 676.0
},
"source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511",
"signature_type": "Function",
"id": "CVE-2021-22897-ff708dce"
}
]