CVE-2025-37887 (GCVE-0-2025-37887)

Vulnerability from cvelistv5 – Published: 2025-05-09 06:45 – Updated: 2026-08-05 11:58
VLAI
Title
pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result
Summary
In the Linux kernel, the following vulnerability has been resolved: pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result If the FW doesn't support the PDS_CORE_CMD_FW_CONTROL command the driver might at the least print garbage and at the worst crash when the user runs the "devlink dev info" devlink command. This happens because the stack variable fw_list is not 0 initialized which results in fw_list.num_fw_slots being a garbage value from the stack. Then the driver tries to access fw_list.fw_names[i] with i >= ARRAY_SIZE and runs off the end of the array. Fix this by initializing the fw_list and by not failing completely if the devcmd fails because other useful information is printed via devlink dev info even if the devcmd fails.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 45d76f492938cdc27ddadc16e1e75103f4cfbf56 , < cdd784c96fe2e5edbf0ed9b3e96fe776e8092385 (git)
Affected: 45d76f492938cdc27ddadc16e1e75103f4cfbf56 , < 6702f5c6b22deaa95bf84f526148174a160a02cb (git)
Affected: 45d76f492938cdc27ddadc16e1e75103f4cfbf56 , < 12a4651a80dbe4589a84e26785fbbe1ed4d043b7 (git)
Affected: 45d76f492938cdc27ddadc16e1e75103f4cfbf56 , < 2567daad69cd1107fc0ec29b1615f110d7cf7385 (git)
Create a notification for this product.
Linux Linux Affected: 6.4
Unaffected: 0 , < 6.4 (semver)
Unaffected: 6.6.89 , ≤ 6.6.* (semver)
Unaffected: 6.12.26 , ≤ 6.12.* (semver)
Unaffected: 6.14.5 , ≤ 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": [
            "drivers/net/ethernet/amd/pds_core/devlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "cdd784c96fe2e5edbf0ed9b3e96fe776e8092385",
              "status": "affected",
              "version": "45d76f492938cdc27ddadc16e1e75103f4cfbf56",
              "versionType": "git"
            },
            {
              "lessThan": "6702f5c6b22deaa95bf84f526148174a160a02cb",
              "status": "affected",
              "version": "45d76f492938cdc27ddadc16e1e75103f4cfbf56",
              "versionType": "git"
            },
            {
              "lessThan": "12a4651a80dbe4589a84e26785fbbe1ed4d043b7",
              "status": "affected",
              "version": "45d76f492938cdc27ddadc16e1e75103f4cfbf56",
              "versionType": "git"
            },
            {
              "lessThan": "2567daad69cd1107fc0ec29b1615f110d7cf7385",
              "status": "affected",
              "version": "45d76f492938cdc27ddadc16e1e75103f4cfbf56",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/amd/pds_core/devlink.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.4"
            },
            {
              "lessThan": "6.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.89",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.26",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.5",
              "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.89",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.26",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.5",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "6.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result\n\nIf the FW doesn\u0027t support the PDS_CORE_CMD_FW_CONTROL command\nthe driver might at the least print garbage and at the worst\ncrash when the user runs the \"devlink dev info\" devlink command.\n\nThis happens because the stack variable fw_list is not 0\ninitialized which results in fw_list.num_fw_slots being a\ngarbage value from the stack.  Then the driver tries to access\nfw_list.fw_names[i] with i \u003e= ARRAY_SIZE and runs off the end\nof the array.\n\nFix this by initializing the fw_list and by not failing\ncompletely if the devcmd fails because other useful information\nis printed via devlink dev info even if the devcmd fails."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable code is reached through the devlink generic-netlink interface (`DEVLINK_CMD_INFO_GET`), which requires a local socket on the host. There is no remote or adjacent-network path to `pdsc_dl_info_get()`.\nAC:L - On an affected system (AMD Pensando DSC whose firmware rejects PDS_CORE_CMD_FW_CONTROL, or any device state producing -EIO) the bug fires deterministically on every `devlink dev info`, and the attacker can repeat it at will to resample stack contents. Nothing about the trigger depends on winning a race or on memory layout the attacker cannot re-roll.\nPR:L - `DEVLINK_CMD_INFO_GET` is registered with only `GENL_CMD_CAP_DO`/`GENL_CMD_CAP_DUMP` and no `GENL_ADMIN_PERM`, and `devlink_nl_pre_doit()` adds no capability check, so an ordinary unprivileged user can issue the query. Only a local unprivileged account in the initial network namespace is needed.\nUI:N - The attacker issues the devlink netlink request directly; no administrator or other user action is required for the path to execute.\nS:U - The uninitialized read, out-of-bounds read, and any resulting crash are all confined to the kernel of the same host. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - Up to 512 bytes of uninitialized kernel stack (and considerably more in the pre-clamp versions, plus the unbounded `strlen()` walk past the struct) are copied into a netlink reply readable by an unprivileged user, potentially disclosing kernel pointers and stack canaries and defeating KASLR/stack-protector. This is an out-of-bounds/uninitialized read that is not bounded to a few bytes.\nI:N - All writes on this path are bounded (`strscpy`, `snprintf`, `memcpy_fromio` of `sizeof(fw_list)`); the defect is purely a read of uninitialized and out-of-bounds memory. No kernel data can be modified through it.\nA:H - The unterminated `char[32]` fields make `nla_put_string()`\u0027s `strlen()` run off the end of the stack frame \u2014 and in the unclamped versions the loop reads roughly 10 KB past it \u2014 which can touch the VMAP_STACK guard page and oops the kernel; the fix\u0027s changelog explicitly says the driver may \"at the worst crash\". An unprivileged user can retry this repeatedly."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:58:04.745Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/cdd784c96fe2e5edbf0ed9b3e96fe776e8092385"
        },
        {
          "url": "https://git.kernel.org/stable/c/6702f5c6b22deaa95bf84f526148174a160a02cb"
        },
        {
          "url": "https://git.kernel.org/stable/c/12a4651a80dbe4589a84e26785fbbe1ed4d043b7"
        },
        {
          "url": "https://git.kernel.org/stable/c/2567daad69cd1107fc0ec29b1615f110d7cf7385"
        }
      ],
      "title": "pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-37887",
    "datePublished": "2025-05-09T06:45:49.492Z",
    "dateReserved": "2025-04-16T04:51:23.963Z",
    "dateUpdated": "2026-08-05T11:58:04.745Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-37887",
      "date": "2026-08-05",
      "epss": "0.00249",
      "percentile": "0.16233"
    },
    "microsoft_vex": {
      "current_release_date": "2026-02-18T14:11:03.000Z",
      "cve": "CVE-2025-37887",
      "id": "msrc_CVE-2025-37887",
      "initial_release_date": "2025-05-02T00:00:00.000Z",
      "product_status:fixed": "2",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result",
      "url": "https://msrc.microsoft.com/csaf/vex/2025/msrc_cve-2025-37887.json",
      "version": "2"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-37887\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-05-09T07:16:10.077\",\"lastModified\":\"2026-07-30T06:22:28.543\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\npds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result\\n\\nIf the FW doesn\u0027t support the PDS_CORE_CMD_FW_CONTROL command\\nthe driver might at the least print garbage and at the worst\\ncrash when the user runs the \\\"devlink dev info\\\" devlink command.\\n\\nThis happens because the stack variable fw_list is not 0\\ninitialized which results in fw_list.num_fw_slots being a\\ngarbage value from the stack.  Then the driver tries to access\\nfw_list.fw_names[i] with i \u003e= ARRAY_SIZE and runs off the end\\nof the array.\\n\\nFix this by initializing the fw_list and by not failing\\ncompletely if the devcmd fails because other useful information\\nis printed via devlink dev info even if the devcmd fails.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: pds_core: manejar resultados PDS_CORE_CMD_FW_CONTROL no compatibles. Si el firmware no admite el comando PDS_CORE_CMD_FW_CONTROL, el controlador podr\u00eda, como m\u00ednimo, imprimir informaci\u00f3n no v\u00e1lida y, en el peor de los casos, bloquearse cuando el usuario ejecuta el comando \\\"devlink dev info\\\". Esto ocurre porque la variable de pila fw_list no se inicializa a 0, lo que hace que fw_list.num_fw_slots sea un valor no v\u00e1lido de la pila. A continuaci\u00f3n, el controlador intenta acceder a fw_list.fw_names[i] con i \u0026gt;= ARRAY_SIZE y se ejecuta desde el final de la matriz. Para solucionar esto, inicialice fw_list y evite fallar por completo si devcmd falla, ya que se imprime otra informaci\u00f3n \u00fatil mediante devlink dev info incluso si devcmd falla.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/amd/pds_core/devlink.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"45d76f492938cdc27ddadc16e1e75103f4cfbf56\",\"lessThan\":\"cdd784c96fe2e5edbf0ed9b3e96fe776e8092385\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"45d76f492938cdc27ddadc16e1e75103f4cfbf56\",\"lessThan\":\"6702f5c6b22deaa95bf84f526148174a160a02cb\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"45d76f492938cdc27ddadc16e1e75103f4cfbf56\",\"lessThan\":\"12a4651a80dbe4589a84e26785fbbe1ed4d043b7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"45d76f492938cdc27ddadc16e1e75103f4cfbf56\",\"lessThan\":\"2567daad69cd1107fc0ec29b1615f110d7cf7385\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/amd/pds_core/devlink.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.4\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.4\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.89\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.26\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.14.5\",\"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:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2},{\"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-908\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.4\",\"versionEndExcluding\":\"6.6.89\",\"matchCriteriaId\":\"68140DF8-D867-4147-A1CD-E3630C9CE7A5\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.26\",\"matchCriteriaId\":\"22F52099-F422-4D19-8283-45F9F9BF4392\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.14.5\",\"matchCriteriaId\":\"6B25CA7E-4CD0-46DB-B4EF-13A3516071FB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"8D465631-2980-487A-8E65-40AE2B9F8ED1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4C9D071F-B28E-46EC-AC61-22B913390211\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.15:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"13FC0DDE-E513-465E-9E81-515702D49B74\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/12a4651a80dbe4589a84e26785fbbe1ed4d043b7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/2567daad69cd1107fc0ec29b1615f110d7cf7385\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6702f5c6b22deaa95bf84f526148174a160a02cb\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/cdd784c96fe2e5edbf0ed9b3e96fe776e8092385\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:36:35+00:00",
      "cve": "CVE-2025-37887",
      "id": "CVE-2025-37887",
      "initial_release_date": "2025-05-09T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-37887.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…