A defect was discovered in the Python “ssl” module where there is a memory race condition with the ssl.SSLContext methods “certstorestats()” and “getcacerts()”. The race condition can be triggered if the methods are called at the same time as certificates are loaded into the SSLContext, such as during the TLS handshake with a certificate directory configured. This issue is fixed in CPython 3.10.14, 3.11.9, 3.12.3, and 3.13.0a5.
{ "vanir_signatures": [ { "deprecated": false, "id": "CVE-2024-0397-0c8cf5b1", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-11b2b330", "digest": { "function_hash": "267831615190247464740372781677498586151", "length": 803.0 }, "source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-1ab374ce", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-2e8506ae", "digest": { "function_hash": "267831615190247464740372781677498586151", "length": 803.0 }, "source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-346dad17", "digest": { "threshold": 0.9, "line_hashes": [ "123530213572272044241009411496197871817", "200201299181124484660293268760519148168", "259695878569452326377606599870398938295", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-6d4a3c26", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-705ce908", "digest": { "threshold": 0.9, "line_hashes": [ "123530213572272044241009411496197871817", "200201299181124484660293268760519148168", "259695878569452326377606599870398938295", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-9e1c12dc", "digest": { "function_hash": "267831615190247464740372781677498586151", "length": 803.0 }, "source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-a0742f4a", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-a2884de3", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-a5db7515", "digest": { "function_hash": "265746097305689266357477981060500385376", "length": 761.0 }, "source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-ab2bc15d", "digest": { "function_hash": "265746097305689266357477981060500385376", "length": 761.0 }, "source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-c0da2a29", "digest": { "threshold": 0.9, "line_hashes": [ "123530213572272044241009411496197871817", "200201299181124484660293268760519148168", "259695878569452326377606599870398938295", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-c6136ce2", "digest": { "threshold": 0.9, "line_hashes": [ "112806490382328744708534595222546407591", "262909644382450144142022125631604669440", "162910182408913576601584186189158925433", "220301602552249839060295597081088862747", "153707601271904422264833791749340611801", "153788529729825661102237166308658750590", "235420969032820362900137908848947161452", "293582388255842405357790219424858342210", "259695878569452326377606599870398938295", "207823027382081882606687849712017215685", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "260743894228843058800140261526602937485", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-cac527a5", "digest": { "threshold": 0.9, "line_hashes": [ "123530213572272044241009411496197871817", "200201299181124484660293268760519148168", "259695878569452326377606599870398938295", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-de77ab70", "digest": { "function_hash": "267831615190247464740372781677498586151", "length": 803.0 }, "source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_get_ca_certs_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-dfaa0359", "digest": { "function_hash": "214924729268783521281066775001235137272", "length": 543.0 }, "source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286", "target": { "file": "Modules/_ssl.c", "function": "_ssl__SSLContext_cert_store_stats_impl" }, "signature_type": "Function", "signature_version": "v1" }, { "deprecated": false, "id": "CVE-2024-0397-e4d6f5de", "digest": { "threshold": 0.9, "line_hashes": [ "112806490382328744708534595222546407591", "262909644382450144142022125631604669440", "162910182408913576601584186189158925433", "220301602552249839060295597081088862747", "153707601271904422264833791749340611801", "153788529729825661102237166308658750590", "235420969032820362900137908848947161452", "293582388255842405357790219424858342210", "259695878569452326377606599870398938295", "207823027382081882606687849712017215685", "233960810333570605655484121024638076304", "226970706793784016314893614203664183907", "84413303792988807738388360934890567725", "61618566130899658539256274858072069038", "257935939472092423356717595012241358413", "273044645211350846033584871890401335473", "163365333947463192760216260292028193514", "81477913632691801171744826625067917144", "30158334562189795078273720525780082792", "206178550708965781737504027480992523578", "260743894228843058800140261526602937485", "28986385988719369160723320181902825911", "176618413189878984630475223888358291421", "301143843603784104916942442533451237526", "95497145508302319014478414429507557267", "304454812945834557149447389223461706170", "25875761612873731263687065831873739463", "190334277521573426903605423155396613838", "170106451010986521382851563875727465792", "253792490082630518316939501398020113891", "288983681670899251818987542178005187293" ] }, "source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524", "target": { "file": "Modules/_ssl.c" }, "signature_type": "Line", "signature_version": "v1" } ] }