CVE-2026-53216 (GCVE-0-2026-53216)
Vulnerability from cvelistv5
Published
2026-06-25 08:39
Modified
2026-08-05 12:34
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: mvpp2: limit XDP frame size to the RX buffer mvpp2 has short and long BM pools, and short pool buffers can be smaller than PAGE_SIZE. The XDP path nevertheless initializes every xdp_buff with PAGE_SIZE as frame size. XDP helpers use frame_sz to validate tail growth and to derive the hard end of the data area. Advertising PAGE_SIZE for short buffers can let bpf_xdp_adjust_tail() grow a packet past the real allocation, corrupting memory or later tripping skb tailroom checks. Initialize the XDP buffer with bm_pool->frag_size so XDP tailroom matches the actual buffer backing the packet.
Impacted products
Vendor Product Version
Linux Linux Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Version: 07dd0a7aae7f72af7cec18909581c2bb570edddc
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a3ee9231ccec6ec3be2de89c56f897055fd9eab1",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "ec8e1e5842bc0dbd4c272761f4db3651eecd0339",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "3b8b0c3631b19faee53f0d15a49924129b063eec",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "994bd2b58d2bd08aa97ec0836cc813cfcb00d749",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "910617a4e67dbdd5fdb39d9dc6a51e491e1b2c3e",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "9545cc5ef18ca22d031f2f47c157192460652359",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            },
            {
              "lessThan": "f3c6aa078927e6fe8121c9c591ddee8716c5305a",
              "status": "affected",
              "version": "07dd0a7aae7f72af7cec18909581c2bb570edddc",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.9"
            },
            {
              "lessThan": "5.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.210",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.176",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.143",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.94",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.36",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.13",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.210",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.176",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.143",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.94",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.36",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.13",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mvpp2: limit XDP frame size to the RX buffer\n\nmvpp2 has short and long BM pools, and short pool buffers can be smaller\nthan PAGE_SIZE. The XDP path nevertheless initializes every xdp_buff with\nPAGE_SIZE as frame size.\n\nXDP helpers use frame_sz to validate tail growth and to derive the hard\nend of the data area. Advertising PAGE_SIZE for short buffers can let\nbpf_xdp_adjust_tail() grow a packet past the real allocation, corrupting\nmemory or later tripping skb tailroom checks.\n\nInitialize the XDP buffer with bm_pool-\u003efrag_size so XDP tailroom matches\nthe actual buffer backing the packet."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - The vulnerable mvpp2 RX/XDP path is reached by packets arriving on a network interface, and in a plausible XDP-enabled router/firewall deployment a remote peer can trigger it with crafted traffic.\nAC:L - There is no race; once XDP tail growth is present, packet size and repeated delivery are attacker-controllable and the short-buffer condition is deterministic.\nPR:N - In the highest reasonable deployment, the XDP program is already part of the exposed dataplane, so the packet sender needs no local account or authentication. Administrative privilege is needed to install XDP, but not to trigger the vulnerable receive path.\nUI:N - No victim user action is required after the affected interface and XDP dataplane are running.\nS:U - The corruption occurs within the kernel/network-driver security authority and does not cross a separate boundary such as guest-to-host or IOMMU isolation.\nC:H - This is kernel memory corruption from writing past the real RX buffer; such corruption can reasonably be leveraged for information disclosure.\nI:H - bpf_xdp_adjust_tail() can write beyond the allocated buffer due to the false PAGE_SIZE frame limit, making this an out-of-bounds kernel write.\nA:H - The bug can corrupt adjacent memory or trip skb tailroom checks, making kernel crashes or persistent receive-path failure plausible."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:34:12.526Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a3ee9231ccec6ec3be2de89c56f897055fd9eab1"
        },
        {
          "url": "https://git.kernel.org/stable/c/ec8e1e5842bc0dbd4c272761f4db3651eecd0339"
        },
        {
          "url": "https://git.kernel.org/stable/c/3b8b0c3631b19faee53f0d15a49924129b063eec"
        },
        {
          "url": "https://git.kernel.org/stable/c/994bd2b58d2bd08aa97ec0836cc813cfcb00d749"
        },
        {
          "url": "https://git.kernel.org/stable/c/910617a4e67dbdd5fdb39d9dc6a51e491e1b2c3e"
        },
        {
          "url": "https://git.kernel.org/stable/c/9545cc5ef18ca22d031f2f47c157192460652359"
        },
        {
          "url": "https://git.kernel.org/stable/c/f3c6aa078927e6fe8121c9c591ddee8716c5305a"
        }
      ],
      "title": "net: mvpp2: limit XDP frame size to the RX buffer",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53216",
    "datePublished": "2026-06-25T08:39:19.529Z",
    "dateReserved": "2026-06-09T07:44:35.392Z",
    "dateUpdated": "2026-08-05T12:34:12.526Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…