cve-2024-26603
Vulnerability from cvelistv5
Published
2024-02-24 14:56
Modified
2024-08-02 00:07
Severity
Summary
x86/fpu: Stop relying on userspace for info to fault in xsave buffer
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26603",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-03-05T22:13:53.146807Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:48:37.905Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:07:19.584Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8bd3eee7720c14b59a206bd05b98d7586bccf99a"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/627339cccdc9166792ecf96bc3c9f711a60ce996"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/b2479ab426cef7ab79a13005650eff956223ced2"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/627e28cbb65564e55008315d9e02fbb90478beda"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/d877550eaf2dc9090d782864c96939397a3c6835"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kernel/fpu/signal.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8bd3eee7720c",
              "status": "affected",
              "version": "fcb3635f5018",
              "versionType": "git"
            },
            {
              "lessThan": "627339cccdc9",
              "status": "affected",
              "version": "fcb3635f5018",
              "versionType": "git"
            },
            {
              "lessThan": "b2479ab426ce",
              "status": "affected",
              "version": "fcb3635f5018",
              "versionType": "git"
            },
            {
              "lessThan": "627e28cbb655",
              "status": "affected",
              "version": "fcb3635f5018",
              "versionType": "git"
            },
            {
              "lessThan": "d877550eaf2d",
              "status": "affected",
              "version": "fcb3635f5018",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kernel/fpu/signal.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.150",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.79",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.18",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.6",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/fpu: Stop relying on userspace for info to fault in xsave buffer\n\nBefore this change, the expected size of the user space buffer was\ntaken from fx_sw-\u003exstate_size. fx_sw-\u003exstate_size can be changed\nfrom user-space, so it is possible construct a sigreturn frame where:\n\n * fx_sw-\u003exstate_size is smaller than the size required by valid bits in\n   fx_sw-\u003exfeatures.\n * user-space unmaps parts of the sigrame fpu buffer so that not all of\n   the buffer required by xrstor is accessible.\n\nIn this case, xrstor tries to restore and accesses the unmapped area\nwhich results in a fault. But fault_in_readable succeeds because buf +\nfx_sw-\u003exstate_size is within the still mapped area, so it goes back and\ntries xrstor again. It will spin in this loop forever.\n\nInstead, fault in the maximum size which can be touched by XRSTOR (taken\nfrom fpstate-\u003euser_size).\n\n[ dhansen: tweak subject / changelog ]"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:19:23.259Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8bd3eee7720c14b59a206bd05b98d7586bccf99a"
        },
        {
          "url": "https://git.kernel.org/stable/c/627339cccdc9166792ecf96bc3c9f711a60ce996"
        },
        {
          "url": "https://git.kernel.org/stable/c/b2479ab426cef7ab79a13005650eff956223ced2"
        },
        {
          "url": "https://git.kernel.org/stable/c/627e28cbb65564e55008315d9e02fbb90478beda"
        },
        {
          "url": "https://git.kernel.org/stable/c/d877550eaf2dc9090d782864c96939397a3c6835"
        }
      ],
      "title": "x86/fpu: Stop relying on userspace for info to fault in xsave buffer",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26603",
    "datePublished": "2024-02-24T14:56:57.628Z",
    "dateReserved": "2024-02-19T14:20:24.129Z",
    "dateUpdated": "2024-08-02T00:07:19.584Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-26603\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-02-26T16:28:00.097\",\"lastModified\":\"2024-04-17T18:00:07.600\",\"vulnStatus\":\"Analyzed\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nx86/fpu: Stop relying on userspace for info to fault in xsave buffer\\n\\nBefore this change, the expected size of the user space buffer was\\ntaken from fx_sw-\u003exstate_size. fx_sw-\u003exstate_size can be changed\\nfrom user-space, so it is possible construct a sigreturn frame where:\\n\\n * fx_sw-\u003exstate_size is smaller than the size required by valid bits in\\n   fx_sw-\u003exfeatures.\\n * user-space unmaps parts of the sigrame fpu buffer so that not all of\\n   the buffer required by xrstor is accessible.\\n\\nIn this case, xrstor tries to restore and accesses the unmapped area\\nwhich results in a fault. But fault_in_readable succeeds because buf +\\nfx_sw-\u003exstate_size is within the still mapped area, so it goes back and\\ntries xrstor again. It will spin in this loop forever.\\n\\nInstead, fault in the maximum size which can be touched by XRSTOR (taken\\nfrom fpstate-\u003euser_size).\\n\\n[ dhansen: tweak subject / changelog ]\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: x86/fpu: dejar de depender del espacio de usuario para que la informaci\u00f3n falle en el b\u00fafer xsave Antes de este cambio, el tama\u00f1o esperado del b\u00fafer de espacio de usuario se tomaba de fx_sw-\u0026gt;xstate_size. fx_sw-\u0026gt;xstate_size se puede cambiar desde el espacio de usuario, por lo que es posible construir un marco sigreturn donde: * fx_sw-\u0026gt;xstate_size es m\u00e1s peque\u00f1o que el tama\u00f1o requerido por los bits v\u00e1lidos en fx_sw-\u0026gt;xfeatures. * el espacio de usuario desasigna partes del b\u00fafer fpu de sigrame para que no se pueda acceder a todo el b\u00fafer requerido por xrstor. En este caso, xrstor intenta restaurar y accede al \u00e1rea no asignada, lo que genera una falla. Pero falla_in_readable tiene \u00e9xito porque buf + fx_sw-\u0026gt;xstate_size est\u00e1 dentro del \u00e1rea a\u00fan mapeada, por lo que regresa e intenta xrstor nuevamente. Girar\u00e1 en este bucle para siempre. En cambio, falla en el tama\u00f1o m\u00e1ximo que XRSTOR puede tocar (tomado de fpstate-\u0026gt;user_size). [dhansen: modificar asunto/registro de cambios]\"}],\"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\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\"},\"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.14.0\",\"versionEndExcluding\":\"5.15.150\",\"matchCriteriaId\":\"6C656297-3E86-496D-BF4A-EDF9748A68C3\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16.0\",\"versionEndExcluding\":\"6.1.79\",\"matchCriteriaId\":\"3B0A907E-1010-4294-AEFE-0EB5684AF52C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2.0\",\"versionEndExcluding\":\"6.6.18\",\"matchCriteriaId\":\"A5CC150E-F35C-4CF7-ADF5-422D32C511C2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7.0\",\"versionEndExcluding\":\"6.7.6\",\"matchCriteriaId\":\"0C8D1FAD-4D5D-4A25-B058-2AD15082710E\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/627339cccdc9166792ecf96bc3c9f711a60ce996\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/627e28cbb65564e55008315d9e02fbb90478beda\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/8bd3eee7720c14b59a206bd05b98d7586bccf99a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b2479ab426cef7ab79a13005650eff956223ced2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d877550eaf2dc9090d782864c96939397a3c6835\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...