cve-2024-49856
Vulnerability from cvelistv5
Published
2024-10-21 12:18
Modified
2024-12-19 09:27
Severity ?
EPSS score ?
0.02% (0.02929)
Summary
In the Linux kernel, the following vulnerability has been resolved: x86/sgx: Fix deadlock in SGX NUMA node search When the current node doesn't have an EPC section configured by firmware and all other EPC sections are used up, CPU can get stuck inside the while loop that looks for an available EPC page from remote nodes indefinitely, leading to a soft lockup. Note how nid_of_current will never be equal to nid in that while loop because nid_of_current is not set in sgx_numa_mask. Also worth mentioning is that it's perfectly fine for the firmware not to setup an EPC section on a node. While setting up an EPC section on each node can enhance performance, it is not a requirement for functionality. Rework the loop to start and end on *a* node that has SGX memory. This avoids the deadlock looking for the current SGX-lacking node to show up in the loop when it never will.
Impacted products
Vendor Product Version
Linux Linux Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Version: 901ddbb9ecf5425183ea0c09d10c2fd7868dce54
Create a notification for this product.
   Linux Linux Version: 5.13
Create a notification for this product.
Show details on NVD website


{
   containers: {
      adp: [
         {
            metrics: [
               {
                  other: {
                     content: {
                        id: "CVE-2024-49856",
                        options: [
                           {
                              Exploitation: "none",
                           },
                           {
                              Automatable: "no",
                           },
                           {
                              "Technical Impact": "partial",
                           },
                        ],
                        role: "CISA Coordinator",
                        timestamp: "2024-10-21T12:56:17.015207Z",
                        version: "2.0.3",
                     },
                     type: "ssvc",
                  },
               },
            ],
            providerMetadata: {
               dateUpdated: "2024-10-21T13:04:11.066Z",
               orgId: "134c704f-9b21-4f2e-91b3-4a467353bcc0",
               shortName: "CISA-ADP",
            },
            title: "CISA ADP Vulnrichment",
         },
      ],
      cna: {
         affected: [
            {
               defaultStatus: "unaffected",
               product: "Linux",
               programFiles: [
                  "arch/x86/kernel/cpu/sgx/main.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     lessThan: "40fb64257dab507d86b5f1f2a62f3669ef0c91a8",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
                  {
                     lessThan: "20c96d0aaabfe361fc2a11c173968dc67feadbbf",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
                  {
                     lessThan: "fb2d057539eda67ec7cfc369bf587e6518a9b99d",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
                  {
                     lessThan: "0f89fb4042c08fd143bfc28af08bf6c8a0197eea",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
                  {
                     lessThan: "8132510c915815e6b537ab937d94ed66893bc7b8",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
                  {
                     lessThan: "9c936844010466535bd46ea4ce4656ef17653644",
                     status: "affected",
                     version: "901ddbb9ecf5425183ea0c09d10c2fd7868dce54",
                     versionType: "git",
                  },
               ],
            },
            {
               defaultStatus: "affected",
               product: "Linux",
               programFiles: [
                  "arch/x86/kernel/cpu/sgx/main.c",
               ],
               repo: "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
               vendor: "Linux",
               versions: [
                  {
                     status: "affected",
                     version: "5.13",
                  },
                  {
                     lessThan: "5.13",
                     status: "unaffected",
                     version: "0",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "5.15.*",
                     status: "unaffected",
                     version: "5.15.168",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.1.*",
                     status: "unaffected",
                     version: "6.1.113",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.6.*",
                     status: "unaffected",
                     version: "6.6.54",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.10.*",
                     status: "unaffected",
                     version: "6.10.13",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "6.11.*",
                     status: "unaffected",
                     version: "6.11.2",
                     versionType: "semver",
                  },
                  {
                     lessThanOrEqual: "*",
                     status: "unaffected",
                     version: "6.12",
                     versionType: "original_commit_for_fix",
                  },
               ],
            },
         ],
         descriptions: [
            {
               lang: "en",
               value: "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/sgx: Fix deadlock in SGX NUMA node search\n\nWhen the current node doesn't have an EPC section configured by firmware\nand all other EPC sections are used up, CPU can get stuck inside the\nwhile loop that looks for an available EPC page from remote nodes\nindefinitely, leading to a soft lockup. Note how nid_of_current will\nnever be equal to nid in that while loop because nid_of_current is not\nset in sgx_numa_mask.\n\nAlso worth mentioning is that it's perfectly fine for the firmware not\nto setup an EPC section on a node. While setting up an EPC section on\neach node can enhance performance, it is not a requirement for\nfunctionality.\n\nRework the loop to start and end on *a* node that has SGX memory. This\navoids the deadlock looking for the current SGX-lacking node to show up\nin the loop when it never will.",
            },
         ],
         providerMetadata: {
            dateUpdated: "2024-12-19T09:27:39.313Z",
            orgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            shortName: "Linux",
         },
         references: [
            {
               url: "https://git.kernel.org/stable/c/40fb64257dab507d86b5f1f2a62f3669ef0c91a8",
            },
            {
               url: "https://git.kernel.org/stable/c/20c96d0aaabfe361fc2a11c173968dc67feadbbf",
            },
            {
               url: "https://git.kernel.org/stable/c/fb2d057539eda67ec7cfc369bf587e6518a9b99d",
            },
            {
               url: "https://git.kernel.org/stable/c/0f89fb4042c08fd143bfc28af08bf6c8a0197eea",
            },
            {
               url: "https://git.kernel.org/stable/c/8132510c915815e6b537ab937d94ed66893bc7b8",
            },
            {
               url: "https://git.kernel.org/stable/c/9c936844010466535bd46ea4ce4656ef17653644",
            },
         ],
         title: "x86/sgx: Fix deadlock in SGX NUMA node search",
         x_generator: {
            engine: "bippy-5f407fcff5a0",
         },
      },
   },
   cveMetadata: {
      assignerOrgId: "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      assignerShortName: "Linux",
      cveId: "CVE-2024-49856",
      datePublished: "2024-10-21T12:18:48.123Z",
      dateReserved: "2024-10-21T12:17:06.016Z",
      dateUpdated: "2024-12-19T09:27:39.313Z",
      state: "PUBLISHED",
   },
   dataType: "CVE_RECORD",
   dataVersion: "5.1",
   "vulnerability-lookup:meta": {
      nvd: "{\"cve\":{\"id\":\"CVE-2024-49856\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-10-21T13:15:06.353\",\"lastModified\":\"2024-10-23T16:33:20.857\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nx86/sgx: Fix deadlock in SGX NUMA node search\\n\\nWhen the current node doesn't have an EPC section configured by firmware\\nand all other EPC sections are used up, CPU can get stuck inside the\\nwhile loop that looks for an available EPC page from remote nodes\\nindefinitely, leading to a soft lockup. Note how nid_of_current will\\nnever be equal to nid in that while loop because nid_of_current is not\\nset in sgx_numa_mask.\\n\\nAlso worth mentioning is that it's perfectly fine for the firmware not\\nto setup an EPC section on a node. While setting up an EPC section on\\neach node can enhance performance, it is not a requirement for\\nfunctionality.\\n\\nRework the loop to start and end on *a* node that has SGX memory. This\\navoids the deadlock looking for the current SGX-lacking node to show up\\nin the loop when it never will.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/sgx: Se solucionó el bloqueo en la búsqueda de nodos NUMA de SGX Cuando el nodo actual no tiene una sección EPC configurada por el firmware y todas las demás secciones EPC están agotadas, la CPU puede quedar atrapada dentro del bucle while que busca una página EPC disponible de los nodos remotos de forma indefinida, lo que lleva a un bloqueo suave. Tenga en cuenta que nid_of_current nunca será igual a nid en ese bucle while porque nid_of_current no está configurado en sgx_numa_mask. También vale la pena mencionar que está perfectamente bien que el firmware no configure una sección EPC en un nodo. Si bien configurar una sección EPC en cada nodo puede mejorar el rendimiento, no es un requisito para la funcionalidad. Rehaga el bucle para que comience y termine en *un* nodo que tenga memoria SGX. Esto evita el bloqueo que busca el nodo actual que carece de SGX para que aparezca en el bucle cuando nunca lo hará.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-835\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.13\",\"versionEndExcluding\":\"5.15.168\",\"matchCriteriaId\":\"71269D77-D25F-4909-8E7A-405593B279FE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.113\",\"matchCriteriaId\":\"D01BD22E-ACD1-4618-9D01-6116570BE1EE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.54\",\"matchCriteriaId\":\"D448821D-C085-4CAF-88FA-2DDE7BE21976\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.10.13\",\"matchCriteriaId\":\"CE94BB8D-B0AB-4563-9ED7-A12122B56EBE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.11\",\"versionEndExcluding\":\"6.11.2\",\"matchCriteriaId\":\"AB755D26-97F4-43B6-8604-CD076811E181\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0f89fb4042c08fd143bfc28af08bf6c8a0197eea\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/20c96d0aaabfe361fc2a11c173968dc67feadbbf\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/40fb64257dab507d86b5f1f2a62f3669ef0c91a8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/8132510c915815e6b537ab937d94ed66893bc7b8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9c936844010466535bd46ea4ce4656ef17653644\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/fb2d057539eda67ec7cfc369bf587e6518a9b99d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
      vulnrichment: {
         containers: "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-49856\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-21T12:56:17.015207Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-10-21T12:56:20.359Z\"}}], \"cna\": {\"title\": \"x86/sgx: Fix deadlock in SGX NUMA node search\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"40fb64257dab507d86b5f1f2a62f3669ef0c91a8\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"20c96d0aaabfe361fc2a11c173968dc67feadbbf\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"fb2d057539eda67ec7cfc369bf587e6518a9b99d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"0f89fb4042c08fd143bfc28af08bf6c8a0197eea\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"8132510c915815e6b537ab937d94ed66893bc7b8\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"901ddbb9ecf5425183ea0c09d10c2fd7868dce54\", \"lessThan\": \"9c936844010466535bd46ea4ce4656ef17653644\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/x86/kernel/cpu/sgx/main.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.13\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.13\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.168\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.113\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.54\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.10.13\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11.2\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.11.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/x86/kernel/cpu/sgx/main.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/40fb64257dab507d86b5f1f2a62f3669ef0c91a8\"}, {\"url\": \"https://git.kernel.org/stable/c/20c96d0aaabfe361fc2a11c173968dc67feadbbf\"}, {\"url\": \"https://git.kernel.org/stable/c/fb2d057539eda67ec7cfc369bf587e6518a9b99d\"}, {\"url\": \"https://git.kernel.org/stable/c/0f89fb4042c08fd143bfc28af08bf6c8a0197eea\"}, {\"url\": \"https://git.kernel.org/stable/c/8132510c915815e6b537ab937d94ed66893bc7b8\"}, {\"url\": \"https://git.kernel.org/stable/c/9c936844010466535bd46ea4ce4656ef17653644\"}], \"x_generator\": {\"engine\": \"bippy-5f407fcff5a0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nx86/sgx: Fix deadlock in SGX NUMA node search\\n\\nWhen the current node doesn't have an EPC section configured by firmware\\nand all other EPC sections are used up, CPU can get stuck inside the\\nwhile loop that looks for an available EPC page from remote nodes\\nindefinitely, leading to a soft lockup. Note how nid_of_current will\\nnever be equal to nid in that while loop because nid_of_current is not\\nset in sgx_numa_mask.\\n\\nAlso worth mentioning is that it's perfectly fine for the firmware not\\nto setup an EPC section on a node. While setting up an EPC section on\\neach node can enhance performance, it is not a requirement for\\nfunctionality.\\n\\nRework the loop to start and end on *a* node that has SGX memory. This\\navoids the deadlock looking for the current SGX-lacking node to show up\\nin the loop when it never will.\"}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2024-12-19T09:27:39.313Z\"}}}",
         cveMetadata: "{\"cveId\": \"CVE-2024-49856\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2024-12-19T09:27:39.313Z\", \"dateReserved\": \"2024-10-21T12:17:06.016Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-10-21T12:18:48.123Z\", \"assignerShortName\": \"Linux\"}",
         dataType: "CVE_RECORD",
         dataVersion: "5.1",
      },
   },
}


Log in or create an account to share your comment.

Security Advisory comment format.

This schema specifies the format of a comment related to a security advisory.

UUIDv4 of the comment
UUIDv4 of the Vulnerability-Lookup instance
When the comment was created originally
When the comment was last updated
Title of the comment
Description of the comment
The identifier of the vulnerability (CVE ID, GHSA-ID, PYSEC ID, etc.).



Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.