CVE-2025-22047 (GCVE-0-2025-22047)

Vulnerability from cvelistv5 – Published: 2025-04-16 14:12 – Updated: 2026-08-05 11:56
VLAI
Title
x86/microcode/AMD: Fix __apply_microcode_amd()'s return value
Summary
In the Linux kernel, the following vulnerability has been resolved: x86/microcode/AMD: Fix __apply_microcode_amd()'s return value When verify_sha256_digest() fails, __apply_microcode_amd() should propagate the failure by returning false (and not -1 which is promoted to true).
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: bef830144febedb7de86863ae99d8f53bed76e95 , < 763f4d638f71cb45235395790a46e9f9e84227fd (git)
Affected: 3e8653e399e7111a3e87d534ff4533b250ae574f , < ada88219d5315fc13f2910fe278c7112d8d68889 (git)
Affected: c162ba4f45ab6ef3b7114af6fb419f1833f050c0 , < d295c58fad1d5ab987a81f139dd21498732c4f13 (git)
Affected: 50cef76d5cb0e199cda19f026842560f6eedc4f7 , < 7f705a45f130a85fbf31c2abdc999c65644c8307 (git)
Affected: 50cef76d5cb0e199cda19f026842560f6eedc4f7 , < 31ab12df723543047c3fc19cb8f8c4498ec6267f (git)
Affected: 6.6.81 , < 6.6.87 (semver)
Affected: 6.12.18 , < 6.12.23 (semver)
Affected: 6.13.6 , < 6.13.11 (semver)
Create a notification for this product.
Linux Linux Affected: 6.14
Unaffected: 0 , < 6.14 (semver)
Unaffected: 6.6.87 , ≤ 6.6.* (semver)
Unaffected: 6.12.23 , ≤ 6.12.* (semver)
Unaffected: 6.13.11 , ≤ 6.13.* (semver)
Unaffected: 6.14.2 , ≤ 6.14.* (semver)
Unaffected: 6.15 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kernel/cpu/microcode/amd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "763f4d638f71cb45235395790a46e9f9e84227fd",
              "status": "affected",
              "version": "bef830144febedb7de86863ae99d8f53bed76e95",
              "versionType": "git"
            },
            {
              "lessThan": "ada88219d5315fc13f2910fe278c7112d8d68889",
              "status": "affected",
              "version": "3e8653e399e7111a3e87d534ff4533b250ae574f",
              "versionType": "git"
            },
            {
              "lessThan": "d295c58fad1d5ab987a81f139dd21498732c4f13",
              "status": "affected",
              "version": "c162ba4f45ab6ef3b7114af6fb419f1833f050c0",
              "versionType": "git"
            },
            {
              "lessThan": "7f705a45f130a85fbf31c2abdc999c65644c8307",
              "status": "affected",
              "version": "50cef76d5cb0e199cda19f026842560f6eedc4f7",
              "versionType": "git"
            },
            {
              "lessThan": "31ab12df723543047c3fc19cb8f8c4498ec6267f",
              "status": "affected",
              "version": "50cef76d5cb0e199cda19f026842560f6eedc4f7",
              "versionType": "git"
            },
            {
              "lessThan": "6.6.87",
              "status": "affected",
              "version": "6.6.81",
              "versionType": "semver"
            },
            {
              "lessThan": "6.12.23",
              "status": "affected",
              "version": "6.12.18",
              "versionType": "semver"
            },
            {
              "lessThan": "6.13.11",
              "status": "affected",
              "version": "6.13.6",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/x86/kernel/cpu/microcode/amd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.87",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.23",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.13.*",
              "status": "unaffected",
              "version": "6.13.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.87",
                  "versionStartIncluding": "6.6.81",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.23",
                  "versionStartIncluding": "6.12.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.11",
                  "versionStartIncluding": "6.13.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.2",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/microcode/AMD: Fix __apply_microcode_amd()\u0027s return value\n\nWhen verify_sha256_digest() fails, __apply_microcode_amd() should propagate\nthe failure by returning false (and not -1 which is promoted to true)."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The microcode loader is reached only locally \u2014 via the initrd/builtin blob at boot, CPU hotplug/resume, or a write to `/sys/devices/system/cpu/microcode/reload`; there is no network-reachable path, and the resulting unmitigated-CPU exposure is exploited by local code.\nAC:L - The wrong return value is deterministic \u2014 every microcode blob whose SHA256 digest is not in the kernel\u0027s hardcoded `phashes[]` table takes the buggy path with 100% reliability, with no race, timing window, or memory-layout dependency.\nPR:L - The vulnerable state (forged `boot_cpu_data.microcode`, cleared Zenbleed chicken bit, false \"updated\" report) is produced by ordinary unattended microcode loading, so an attacker needs no more than an unprivileged local account to then exploit the CPU errata that the kernel wrongly believes are fixed.\nUI:N - No victim action is required \u2014 early loading from initrd runs on every boot and `load_ucode_amd_ap()`/`mc_bp_resume()` run on every CPU bring-up and resume, all automatically.\nS:U - The defeated integrity check, the corrupted `boot_cpu_data.microcode` state and the mis-set `MSR_AMD64_DE_CFG` chicken bit all live within the host kernel/CPU security authority; no VMM or IOMMU boundary is crossed by the flaw itself.\nC:H - Clearing `MSR_AMD64_DE_CFG_ZEN2_FP_BACKUP_FIX_BIT` on the basis of a forged revision re-enables Zenbleed (CVE-2023-20593), giving unprivileged local code a cross-process/cross-VM read of register contents including keys and passwords, and the un-applied blob also carries speculative-execution mitigations.\nI:H - An attacker/blob-controlled 32-bit `hdr.patch_id` is written unverified into kernel security state (`boot_cpu_data.microcode`, `c-\u003emicrocode`, cpuinfo), and that value directly drives modification of a hardware protection mechanism via `msr_clear_bit()` \u2014 a full bypass of the integrity check the code exists to enforce.\nA:H - The kernel reports a successful update while the CPU keeps running old microcode, so errata that AMD patches fix \u2014 including hang- and machine-check-inducing ones and the erratum 1386 XSAVES malfunction gated on the forged revision \u2014 remain live with no signal to the operator."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:56:19.652Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/763f4d638f71cb45235395790a46e9f9e84227fd"
        },
        {
          "url": "https://git.kernel.org/stable/c/ada88219d5315fc13f2910fe278c7112d8d68889"
        },
        {
          "url": "https://git.kernel.org/stable/c/d295c58fad1d5ab987a81f139dd21498732c4f13"
        },
        {
          "url": "https://git.kernel.org/stable/c/7f705a45f130a85fbf31c2abdc999c65644c8307"
        },
        {
          "url": "https://git.kernel.org/stable/c/31ab12df723543047c3fc19cb8f8c4498ec6267f"
        }
      ],
      "title": "x86/microcode/AMD: Fix __apply_microcode_amd()\u0027s return value",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-22047",
    "datePublished": "2025-04-16T14:12:07.061Z",
    "dateReserved": "2024-12-29T08:45:45.810Z",
    "dateUpdated": "2026-08-05T11:56:19.652Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-22047",
      "date": "2026-08-05",
      "epss": "0.002",
      "percentile": "0.10092"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-22047\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-04-16T15:15:58.123\",\"lastModified\":\"2026-07-30T06:22:08.723\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nx86/microcode/AMD: Fix __apply_microcode_amd()\u0027s return value\\n\\nWhen verify_sha256_digest() fails, __apply_microcode_amd() should propagate\\nthe failure by returning false (and not -1 which is promoted to true).\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/microcode/AMD: Se corrige el valor de retorno de __apply_microcode_amd() Cuando verify_sha256_digest() falla, __apply_microcode_amd() debe propagar la falla devolviendo falso (y no -1 que se promueve a verdadero).\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"arch/x86/kernel/cpu/microcode/amd.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"bef830144febedb7de86863ae99d8f53bed76e95\",\"lessThan\":\"763f4d638f71cb45235395790a46e9f9e84227fd\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"3e8653e399e7111a3e87d534ff4533b250ae574f\",\"lessThan\":\"ada88219d5315fc13f2910fe278c7112d8d68889\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"c162ba4f45ab6ef3b7114af6fb419f1833f050c0\",\"lessThan\":\"d295c58fad1d5ab987a81f139dd21498732c4f13\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"50cef76d5cb0e199cda19f026842560f6eedc4f7\",\"lessThan\":\"7f705a45f130a85fbf31c2abdc999c65644c8307\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"50cef76d5cb0e199cda19f026842560f6eedc4f7\",\"lessThan\":\"31ab12df723543047c3fc19cb8f8c4498ec6267f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.6.81\",\"lessThan\":\"6.6.87\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.12.18\",\"lessThan\":\"6.12.23\",\"versionType\":\"semver\",\"status\":\"affected\"},{\"version\":\"6.13.6\",\"lessThan\":\"6.13.11\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"arch/x86/kernel/cpu/microcode/amd.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.87\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.23\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13.11\",\"lessThanOrEqual\":\"6.13.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14.2\",\"lessThanOrEqual\":\"6.14.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.15\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"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\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.6.81\",\"versionEndExcluding\":\"6.6.87\",\"matchCriteriaId\":\"AB4ED8CF-6CC9-4385-BD66-06D3ECD64642\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.12.18\",\"versionEndExcluding\":\"6.12.23\",\"matchCriteriaId\":\"2408E758-CD5B-4D69-AB5A-B470FE7A0B6D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13.6\",\"versionEndExcluding\":\"6.13.11\",\"matchCriteriaId\":\"2ED56B74-EE4E-4FD9-878C-0E7509D3258F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.14:-:*:*:*:*:*:*\",\"matchCriteriaId\":\"7DE421BA-0600-4401-A175-73CAB6A6FB4E\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.14:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"1759FFB7-531C-41B1-9AE1-FD3D80E0D920\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.14:rc7:*:*:*:*:*:*\",\"matchCriteriaId\":\"AD948719-8628-4421-A340-1066314BBD4A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.14.1:*:*:*:*:*:*:*\",\"matchCriteriaId\":\"368D376F-50DC-452F-8D91-2586C7B344FB\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/31ab12df723543047c3fc19cb8f8c4498ec6267f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/763f4d638f71cb45235395790a46e9f9e84227fd\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7f705a45f130a85fbf31c2abdc999c65644c8307\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/ada88219d5315fc13f2910fe278c7112d8d68889\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d295c58fad1d5ab987a81f139dd21498732c4f13\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-07-30T10:12:20+00:00",
      "cve": "CVE-2025-22047",
      "id": "CVE-2025-22047",
      "initial_release_date": "2025-04-16T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: x86/microcode/AMD: Fix __apply_microcode_amd()\u0027s return value",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-22047.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…