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.
[
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-0c8cf5b1",
"source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 803.0,
"function_hash": "267831615190247464740372781677498586151"
},
"id": "CVE-2024-0397-11b2b330",
"source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-1ab374ce",
"source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 803.0,
"function_hash": "267831615190247464740372781677498586151"
},
"id": "CVE-2024-0397-2e8506ae",
"source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-346dad17",
"source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-6d4a3c26",
"source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-705ce908",
"source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 803.0,
"function_hash": "267831615190247464740372781677498586151"
},
"id": "CVE-2024-0397-9e1c12dc",
"source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-a0742f4a",
"source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-a2884de3",
"source": "https://github.com/python/cpython/commit/37324b421b72b7bc9934e27aba85d48d4773002e",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 761.0,
"function_hash": "265746097305689266357477981060500385376"
},
"id": "CVE-2024-0397-a5db7515",
"source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 761.0,
"function_hash": "265746097305689266357477981060500385376"
},
"id": "CVE-2024-0397-ab2bc15d",
"source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-c0da2a29",
"source": "https://github.com/python/cpython/commit/01c37f1d0714f5822d34063ca7180b595abf589d",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-c6136ce2",
"source": "https://github.com/python/cpython/commit/b228655c227b2ca298a8ffac44d14ce3d22f6faa",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-cac527a5",
"source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_get_ca_certs_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 803.0,
"function_hash": "267831615190247464740372781677498586151"
},
"id": "CVE-2024-0397-de77ab70",
"source": "https://github.com/python/cpython/commit/bce693111bff906ccf9281c22371331aaff766ab",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Function",
"target": {
"function": "_ssl__SSLContext_cert_store_stats_impl",
"file": "Modules/_ssl.c"
},
"digest": {
"length": 543.0,
"function_hash": "214924729268783521281066775001235137272"
},
"id": "CVE-2024-0397-dfaa0359",
"source": "https://github.com/python/cpython/commit/542f3272f56f31ed04e74c40635a913fbc12d286",
"signature_version": "v1",
"deprecated": false
},
{
"signature_type": "Line",
"target": {
"file": "Modules/_ssl.c"
},
"digest": {
"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"
],
"threshold": 0.9
},
"id": "CVE-2024-0397-e4d6f5de",
"source": "https://github.com/python/cpython/commit/29c97287d205bf2f410f4895ebce3f43b5160524",
"signature_version": "v1",
"deprecated": false
}
]