GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-81016 (GCVE-0-2026-81016)

Vulnerability from cvelistv5 – Published: 2026-09-11 19:43 – Updated: 2026-09-13 06:29
VLAI
Title
platform/x86/amd/pmc: Propagate SMU errors and validate S2D address
Summary
In the Linux kernel, the following vulnerability has been resolved: platform/x86/amd/pmc: Propagate SMU errors and validate S2D address amd_stb_s2d_init() discards the return value of several S2D SMU commands. When the SMU refuses a command (e.g. "SMU cmd failed. err: 0xff") the failure is only noticed indirectly - if at all - and reported as -EIO, masking the real error. More seriously, the S2D_PHYS_ADDR_LOW/HIGH return values are ignored, so on failure phys_addr_low/hi are left uninitialised and the assembled address is passed straight to devm_ioremap(). When the SMU leaves them at zero this maps physical address 0 and trips the ioremap-on-RAM warning: amd_pmc AMDI000B:00: SMU cmd failed. err: 0xff ioremap on RAM at 0x0000000000000000 - 0x0000000000ffffff WARNING: CPU: 13 PID: 4592 at arch/x86/mm/ioremap.c:... Check the return value of each SMU command and propagate it, and reject a zero physical address before calling devm_ioremap().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d , < 8178f59d76570b152d836bde07f5997f15861f04 (git)
Affected: 3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d , < 775d4cde1f9737796ce7d8393521e9e8c5b49891 (git)
Affected: 3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d , < 0225c1d637687b03726f00ac65b6def843d2c464 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.18
Unaffected: 0 , < 5.18 (semver)
Unaffected: 6.18.50 , ≤ 6.18.* (semver)
Unaffected: 7.2.4 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/platform/x86/amd/pmc/mp1_stb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8178f59d76570b152d836bde07f5997f15861f04",
              "status": "affected",
              "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
              "versionType": "git"
            },
            {
              "lessThan": "775d4cde1f9737796ce7d8393521e9e8c5b49891",
              "status": "affected",
              "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
              "versionType": "git"
            },
            {
              "lessThan": "0225c1d637687b03726f00ac65b6def843d2c464",
              "status": "affected",
              "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/platform/x86/amd/pmc/mp1_stb.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.18"
            },
            {
              "lessThan": "5.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.50",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "5.18",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nplatform/x86/amd/pmc: Propagate SMU errors and validate S2D address\n\namd_stb_s2d_init() discards the return value of several S2D SMU commands.\nWhen the SMU refuses a command (e.g. \"SMU cmd failed. err: 0xff\") the\nfailure is only noticed indirectly - if at all - and reported as -EIO,\nmasking the real error.\n\nMore seriously, the S2D_PHYS_ADDR_LOW/HIGH return values are ignored, so\non failure phys_addr_low/hi are left uninitialised and the assembled\naddress is passed straight to devm_ioremap().  When the SMU leaves them at\nzero this maps physical address 0 and trips the ioremap-on-RAM warning:\n\n  amd_pmc AMDI000B:00: SMU cmd failed. err: 0xff\n  ioremap on RAM at 0x0000000000000000 - 0x0000000000ffffff\n  WARNING: CPU: 13 PID: 4592 at arch/x86/mm/ioremap.c:...\n\nCheck the return value of each SMU command and propagate it, and reject a\nzero physical address before calling devm_ioremap()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.7,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - amd_stb_s2d_init() runs from amd_pmc_probe() on the AMD PMC ACPI platform driver (AMDI0005\u2013AMDI000C and related IDs) during local device bind or module load; the SMU mailbox commands and devm_ioremap() are not reachable from network, Bluetooth, Wi-Fi, or USB packet paths.\nAC:L - On affected AMD platforms where SMU accepts S2D_TELEMETRY_SIZE but rejects S2D_PHYS_ADDR_LOW/HIGH (observed err 0xff), ignored failures leave phys_addr_low/hi uninitialized or zero and the subsequent ioremap is deterministic; stack zeroing makes address 0 reliable, with no race or attacker-uncontrollable layout.\nPR:N - The SMU queries and devm_ioremap() execute automatically in amd_pmc_probe() during ACPI/udev bind with no capable() check; enable_stb=1 is the vulnerable STB debug deployment (kernel cmdline or modprobe), after which kernel context runs the path without a user account or namespace privilege.\nUI:N - No victim interaction is required; the invalid ioremap occurs during automatic amd_pmc probe at boot or module load when STB is enabled, before any debugfs open, mount, or other user action.\nS:U - The bad physical-address ioremap, kernel warning, and any subsequent STB debugfs copy occur entirely inside the host kernel PMC driver; this is not a VM escape, IOMMU/DMA boundary bypass, or other cross-authority breakout.\nC:H - Ignored SMU failures pass uninitialized phys_addr_low/hi to devm_ioremap() for up to 16MB (S2D_TELEMETRY_DRAMBYTES_MAX); a non-RAM physical address creates a mapping that amd_stb_debugfs_open_v2 copies to userspace via memcpy_fromio on the 0644 stb_read node, yielding a large physical-memory disclosure.\nI:N - The driver only memcpy_fromio()s the STB mapping and never writes through stb_virt_addr; ioremap of RAM at address 0 is rejected, and there is no out-of-bounds write, use-after-free, or other kernel integrity or control-flow primitive.\nA:H - devm_ioremap() of physical address 0 hits WARN_ONCE in arch/x86/mm/ioremap.c, which panics under panic_on_warn; when the mapping fails, stb_virt_addr stays NULL while debugfs stb_read remains, so a later open does memcpy_fromio(NULL) and oopses the kernel."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-13T06:29:18.491Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8178f59d76570b152d836bde07f5997f15861f04"
        },
        {
          "url": "https://git.kernel.org/stable/c/775d4cde1f9737796ce7d8393521e9e8c5b49891"
        },
        {
          "url": "https://git.kernel.org/stable/c/0225c1d637687b03726f00ac65b6def843d2c464"
        }
      ],
      "title": "platform/x86/amd/pmc: Propagate SMU errors and validate S2D address",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-81016",
    "datePublished": "2026-09-11T19:43:04.740Z",
    "dateReserved": "2026-08-26T14:34:25.813Z",
    "dateUpdated": "2026-09-13T06:29:18.491Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-81016",
      "date": "2026-09-18",
      "epss": "0.0018",
      "percentile": "0.07912"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-15T01:46:19.000Z",
      "cve": "CVE-2026-81016",
      "id": "msrc_CVE-2026-81016",
      "initial_release_date": "2026-09-13T01:03:54.000Z",
      "product_status:known_not_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "platform/x86/amd/pmc: Propagate SMU errors and validate S2D address",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-81016.json",
      "version": "3"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/platform/x86/amd/pmc/mp1_stb.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "8178f59d76570b152d836bde07f5997f15861f04",
                    "status": "affected",
                    "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "775d4cde1f9737796ce7d8393521e9e8c5b49891",
                    "status": "affected",
                    "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0225c1d637687b03726f00ac65b6def843d2c464",
                    "status": "affected",
                    "version": "3d7d407dfb05b257e15cb0c6b056428a4a8c2e5d",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/platform/x86/amd/pmc/mp1_stb.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.18"
                  },
                  {
                    "lessThan": "5.18",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.50",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.4",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nplatform/x86/amd/pmc: Propagate SMU errors and validate S2D address\n\namd_stb_s2d_init() discards the return value of several S2D SMU commands.\nWhen the SMU refuses a command (e.g. \"SMU cmd failed. err: 0xff\") the\nfailure is only noticed indirectly - if at all - and reported as -EIO,\nmasking the real error.\n\nMore seriously, the S2D_PHYS_ADDR_LOW/HIGH return values are ignored, so\non failure phys_addr_low/hi are left uninitialised and the assembled\naddress is passed straight to devm_ioremap().  When the SMU leaves them at\nzero this maps physical address 0 and trips the ioremap-on-RAM warning:\n\n  amd_pmc AMDI000B:00: SMU cmd failed. err: 0xff\n  ioremap on RAM at 0x0000000000000000 - 0x0000000000ffffff\n  WARNING: CPU: 13 PID: 4592 at arch/x86/mm/ioremap.c:...\n\nCheck the return value of each SMU command and propagate it, and reject a\nzero physical address before calling devm_ioremap()."
          }
        ],
        "id": "CVE-2026-81016",
        "lastModified": "2026-09-13T07:17:08.107",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.7,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "NONE",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.5,
              "impactScore": 5.2,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-11T20:19:10.560",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0225c1d637687b03726f00ac65b6def843d2c464"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/775d4cde1f9737796ce7d8393521e9e8c5b49891"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8178f59d76570b152d836bde07f5997f15861f04"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-14T17:36:44+00:00",
      "cve": "CVE-2026-81016",
      "id": "CVE-2026-81016",
      "initial_release_date": "2026-09-11T00:00:00+00:00",
      "product_status:known_affected": "185",
      "product_status:known_not_affected": "91",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: platform/x86/amd/pmc: Propagate SMU errors and validate S2D address",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-81016.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-15T01:03:57Z",
      "cve": "CVE-2026-81016",
      "id": "CVE-2026-81016",
      "initial_release_date": "2026-09-15T01:03:57Z",
      "product_status:known_affected": "168",
      "product_status:known_not_affected": "185",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-81016",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-81016.json",
      "version": "2"
    }
  }
}



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…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…