cve-2021-47429
Vulnerability from cvelistv5
Published
2024-05-21 15:04
Modified
2024-08-04 05:39
Severity
Summary
powerpc/64s: Fix unrecoverable MCE calling async handler from NMI
Impacted products
VendorProduct
LinuxLinux
LinuxLinux
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47429",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-05-22T18:57:20.280954Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-04T17:13:59.087Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:39:59.386Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/d7a8e38999fbd6910516e44cb43f9f4317e54f73"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/f08fb25bc66986b0952724530a640d9970fa52c1"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/interrupt.h",
            "arch/powerpc/kernel/exceptions-64s.S",
            "arch/powerpc/kernel/traps.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d7a8e38999fb",
              "status": "affected",
              "version": "2b43dd7653cc",
              "versionType": "git"
            },
            {
              "lessThan": "f08fb25bc669",
              "status": "affected",
              "version": "2b43dd7653cc",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/include/asm/interrupt.h",
            "arch/powerpc/kernel/exceptions-64s.S",
            "arch/powerpc/kernel/traps.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.14.*",
              "status": "unaffected",
              "version": "5.14.12",
              "versionType": "custom"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/64s: Fix unrecoverable MCE calling async handler from NMI\n\nThe machine check handler is not considered NMI on 64s. The early\nhandler is the true NMI handler, and then it schedules the\nmachine_check_exception handler to run when interrupts are enabled.\n\nThis works fine except the case of an unrecoverable MCE, where the true\nNMI is taken when MSR[RI] is clear, it can not recover, so it calls\nmachine_check_exception directly so something might be done about it.\n\nCalling an async handler from NMI context can result in irq state and\nother things getting corrupted. This can also trigger the BUG at\n  arch/powerpc/include/asm/interrupt.h:168\n  BUG_ON(!arch_irq_disabled_regs(regs) \u0026\u0026 !(regs-\u003emsr \u0026 MSR_EE));\n\nFix this by making an _async version of the handler which is called\nin the normal case, and a NMI version that is called for unrecoverable\ninterrupts."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-05-29T05:07:46.904Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d7a8e38999fbd6910516e44cb43f9f4317e54f73"
        },
        {
          "url": "https://git.kernel.org/stable/c/f08fb25bc66986b0952724530a640d9970fa52c1"
        }
      ],
      "title": "powerpc/64s: Fix unrecoverable MCE calling async handler from NMI",
      "x_generator": {
        "engine": "bippy-a5840b7849dd"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47429",
    "datePublished": "2024-05-21T15:04:14.574Z",
    "dateReserved": "2024-05-21T14:58:30.828Z",
    "dateUpdated": "2024-08-04T05:39:59.386Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2021-47429\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-21T15:15:28.303\",\"lastModified\":\"2024-05-21T16:53:56.550\",\"vulnStatus\":\"Awaiting Analysis\",\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\npowerpc/64s: Fix unrecoverable MCE calling async handler from NMI\\n\\nThe machine check handler is not considered NMI on 64s. The early\\nhandler is the true NMI handler, and then it schedules the\\nmachine_check_exception handler to run when interrupts are enabled.\\n\\nThis works fine except the case of an unrecoverable MCE, where the true\\nNMI is taken when MSR[RI] is clear, it can not recover, so it calls\\nmachine_check_exception directly so something might be done about it.\\n\\nCalling an async handler from NMI context can result in irq state and\\nother things getting corrupted. This can also trigger the BUG at\\n  arch/powerpc/include/asm/interrupt.h:168\\n  BUG_ON(!arch_irq_disabled_regs(regs) \u0026\u0026 !(regs-\u003emsr \u0026 MSR_EE));\\n\\nFix this by making an _async version of the handler which is called\\nin the normal case, and a NMI version that is called for unrecoverable\\ninterrupts.\"},{\"lang\":\"es\",\"value\":\" En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: powerpc/64s: corrige un MCE irrecuperable que llama al controlador as\u00edncrono desde NMI. El controlador de verificaci\u00f3n de la m\u00e1quina no se considera NMI en 64s. El controlador inicial es el verdadero controlador NMI y luego programa el controlador machine_check_exception para que se ejecute cuando las interrupciones est\u00e9n habilitadas. Esto funciona bien excepto en el caso de un MCE irrecuperable, donde el NMI verdadero se toma cuando MSR[RI] est\u00e1 claro, no se puede recuperar, por lo que llama a machine_check_exception directamente para que se pueda hacer algo al respecto. Llamar a un controlador as\u00edncrono desde el contexto NMI puede provocar que el estado irq y otras cosas se corrompan. Esto tambi\u00e9n puede desencadenar el ERROR en arch/powerpc/include/asm/interrupt.h:168 BUG_ON(!arch_irq_disabled_regs(regs) \u0026amp;\u0026amp; !(regs-\u0026gt;msr \u0026amp; MSR_EE)); Solucione este problema creando una versi\u00f3n _async del controlador que se llama en el caso normal, y una versi\u00f3n NMI que se llama para interrupciones irrecuperables.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/d7a8e38999fbd6910516e44cb43f9f4317e54f73\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/f08fb25bc66986b0952724530a640d9970fa52c1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading...

Loading...