Skip to content
Heist/ feed
Back to feed
UnratedFix available

fpga: dfl: add bounds check in dfh_get_param_size()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: fpga: dfl: add bounds check in dfh_get_param_size() dfh_get_param_size() can return a parameter size larger than the feature region because the loop bounds check is evaluated before incrementing size. If the EOP (End of Parameters) bit is set in the same iteration, the inflated size is returned without re-validation against max. This can cause create_feature_instance() to call memcpy_fromio() with a size exceeding the ioremap'd region when a malicious FPGA device provides crafted DFHv1 parameter headers. Add a bounds check after the size increment to ensure the accumulated size never exceeds the feature boundary.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.12.97, 6.18.40, 6.6.145, 7.1.5
CVEs
CVE-2026-72158
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 04:08 UTC · Revision 1

Source evidence

fpga: dfl: add bounds check in dfh_get_param_size()

core-osv · Original source

Published 15 Aug 2026, 05:53 UTC

In the Linux kernel, the following vulnerability has been resolved: fpga: dfl: add bounds check in dfh_get_param_size() dfh_get_param_size() can return a parameter size larger than the feature region because the loop bounds check is evaluated before incrementing size. If the EOP (End of Parameters) bit is set in the same iteration, the inflated size is returned without re-validation against max. This can cause create_feature_instance() to call memcpy_fromio() with a size exceeding the ioremap'd region when a malicious FPGA device provides crafted DFHv1 parameter headers. Add a bounds check after the size increment to ensure the accumulated size never exceeds the feature boundary.

osv:CVE-2026-72158

Kernel

Fixed versions: 6.6.145, 6.12.97, 6.18.40, 7.1.5

Complete source record
{
  "id": "10339f062d6181285861b304cd9d60c767749ac660c7223c982a81e979c75034",
  "url": "https://osv.dev/vulnerability/CVE-2026-72158",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "fpga: dfl: add bounds check in dfh_get_param_size()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: fpga: dfl: add bounds check in dfh_get_param_size() dfh_get_param_size() can return a parameter size larger than the feature region because the loop bounds check is evaluated before incrementing size. If the EOP (End of Parameters) bit is set in the same iteration, the inflated size is returned without re-validation against max. This can cause create_feature_instance() to call memcpy_fromio() with a size exceeding the ioremap'd region when a malicious FPGA device provides crafted DFHv1 parameter headers. Add a bounds check after the size increment to ensure the accumulated size never exceeds the feature boundary.",
    "evidence": "osv:CVE-2026-72158",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.6.145",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.97",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.40",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.1.5",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-72158",
      "aliases": [
        "CVE-2026-72158"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "4747ab89b4a652f835494fcf8342aaa0efb9b0fd"
                },
                {
                  "fixed": "b2f6220e929b2a43605331d0139e65dc1640c05c"
                },
                {
                  "fixed": "3b622aa447cf26104f96a8be39539367863bc6b6"
                },
                {
                  "fixed": "012683accbb7d2bcf1264f2a0ecd6aa1dcea4d68"
                },
                {
                  "fixed": "f3df5386e3bb54626c117bd85e0158d45fb4aea9"
                },
                {
                  "fixed": "9e8bc49f91f3f81d957c4f1c1f09fe94e2f88f6a"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72158.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.3.0"
                },
                {
                  "fixed": "6.6.145"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.97"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.40"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.1.5"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-72158.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:49.404144923Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/012683accbb7d2bcf1264f2a0ecd6aa1dcea4d68",
        "https://git.kernel.org/stable/c/3b622aa447cf26104f96a8be39539367863bc6b6",
        "https://git.kernel.org/stable/c/9e8bc49f91f3f81d957c4f1c1f09fe94e2f88f6a",
        "https://git.kernel.org/stable/c/b2f6220e929b2a43605331d0139e65dc1640c05c",
        "https://git.kernel.org/stable/c/f3df5386e3bb54626c117bd85e0158d45fb4aea9",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72158.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-72158",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/72xxx/CVE-2026-72158.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-72158",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 518009,
  "published_at": "2026-08-15T05:53:27.454+00:00"
}