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.
[ { "source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511", "signature_version": "v1", "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 }, "deprecated": false, "signature_type": "Line", "id": "CVE-2021-22897-462e72f1" }, { "source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511", "signature_version": "v1", "target": { "file": "lib/vtls/schannel.h" }, "digest": { "line_hashes": [ "144288989636727895116566759813531481869", "310223903940348029157260322620209786472", "305687057856332765216788005169622682063", "325657448106323421990448296138158547936", "292286319081006362423274139499724779986", "39604824998280807468150180221600407666", "57176848086045237311152580885468675039" ], "threshold": 0.9 }, "deprecated": false, "signature_type": "Line", "id": "CVE-2021-22897-66d13eee" }, { "source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511", "signature_version": "v1", "target": { "file": "lib/vtls/schannel.c", "function": "schannel_connect_step1" }, "digest": { "length": 14322.0, "function_hash": "211186878913764398743821657885986770610" }, "deprecated": false, "signature_type": "Function", "id": "CVE-2021-22897-8c49663e" }, { "source": "https://github.com/curl/curl/commit/bbb71507b7bab52002f9b1e0880bed6a32834511", "signature_version": "v1", "target": { "file": "lib/vtls/schannel.c", "function": "set_ssl_ciphers" }, "digest": { "length": 676.0, "function_hash": "36431407875438539121636832984401189544" }, "deprecated": false, "signature_type": "Function", "id": "CVE-2021-22897-ff708dce" } ]