CVE-2026-52927 (GCVE-0-2026-52927)
Vulnerability from cvelistv5
Published
2026-06-24 07:14
Modified
2026-08-05 12:31
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: ebtables: fix OOB read in compat_mtw_from_user Luxiao Xu says: The function compat_mtw_from_user() converts ebtables extensions from 32-bit user structures to kernel native structures. However, it lacks proper validation of the user-supplied match_size/target_size. When certain extensions are processed, the kernel-side translation logic may perform memory accesses based on the extension's expected size. If the user provides a size smaller than what the extension requires, it results in an out-of-bounds read as reported by KASAN. This fix introduces a check to ensure match_size is at least as large as the extension's required compatsize. This covers matches, watchers, and targets, while maintaining compatibility with standard targets. AFAIU this is relevant for matches that need to go though match->compat_from_user() call. Those that use plain memcpy with the user-provided size are ok because the caller checks that size vs the start of the next rule entry offset (which itself is checked vs. total size copied from userspace). The ->compat_from_user() callbacks assume they can read compatsize bytes, so they need this extra check. Based on an earlier patch from Luxiao Xu.
Impacted products
Vendor Product Version
Linux Linux Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Version: 81e675c227ec60a0bdcbb547dc530ebee23ff931
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/netfilter/ebtables.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "d7a8fb6f10d55a1c37b0bf8c20cca24dffd76e00",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "21af4c030567d2e6c89bb927bc18b51fba52a400",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "dad9ebf8107955bb54bd3f9cf22591b6ff37bac1",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "a27cb7325a6c69970041c7f8541fafed5a1ea3ec",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "7ad0e463fc7eafae2141cc38054264636f8b3e94",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "bf8e8eac7ede51dc318e06acef5a896dcbba7595",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "fcc4c043d137e7f1de4673dba1f3116e45377c67",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            },
            {
              "lessThan": "f438d1786d657d57790c5d138d6db3fc9fdac392",
              "status": "affected",
              "version": "81e675c227ec60a0bdcbb547dc530ebee23ff931",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/netfilter/ebtables.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.34"
            },
            {
              "lessThan": "2.6.34",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.259",
              "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.93",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.35",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.12",
              "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.10.259",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.210",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.176",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.143",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.93",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.35",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.12",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "2.6.34",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: ebtables: fix OOB read in compat_mtw_from_user\n\nLuxiao Xu says:\n\n The function compat_mtw_from_user() converts ebtables extensions from\n 32-bit user structures to kernel native structures. However, it lacks\n proper validation of the user-supplied match_size/target_size.\n\n When certain extensions are processed, the kernel-side translation\n logic may perform memory accesses based on the extension\u0027s expected\n size. If the user provides a size smaller than what the extension\n requires, it results in an out-of-bounds read as reported by KASAN.\n\n This fix introduces a check to ensure match_size is at least as large\n as the extension\u0027s required compatsize. This covers matches, watchers,\n and targets, while maintaining compatibility with standard targets.\n\nAFAIU this is relevant for matches that need to go though\nmatch-\u003ecompat_from_user() call.  Those that use plain memcpy with the\nuser-provided size are ok because the caller checks that size vs the\nstart of the next rule entry offset (which itself is checked vs. total\nsize copied from userspace).\n\nThe -\u003ecompat_from_user() callbacks assume they can read compatsize bytes,\nso they need this extra check.\n\nBased on an earlier patch from Luxiao Xu."
        }
      ],
      "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 vulnerable ebtables compat translation path is reached through a local `setsockopt(SOL_IP, EBT_SO_SET_ENTRIES, ...)` call, not by received network traffic.\nAC:L - An attacker who can call the compat sockopt path controls the submitted table blob, extension name, and undersized match/target length directly; no race or external state is required.\nPR:L - The path checks `ns_capable(net-\u003euser_ns, CAP_NET_ADMIN)`, which is reachable by an unprivileged local user in a new user and network namespace on affected configurations.\nUI:N - No victim action is needed beyond the attacker invoking the local syscall with a crafted ebtables replacement blob.\nS:U - The impact remains within the kernel/security authority of the local system; this is not a VM, IOMMU, or other cross-scope escape boundary.\nC:H - The bug is an out-of-bounds read during kernel compat translation, and the read can pull kernel memory adjacent to the copied rule blob into kernel extension data.\nI:H - The undersized length can also leave the destination translation buffer too small for callbacks that write native extension structures, making kernel memory corruption a defensible worst-case impact.\nA:H - The malformed compat translation can trigger KASAN reports or kernel faults/oopses, and can be repeatedly triggered by a local attacker."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:31:46.769Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/d7a8fb6f10d55a1c37b0bf8c20cca24dffd76e00"
        },
        {
          "url": "https://git.kernel.org/stable/c/21af4c030567d2e6c89bb927bc18b51fba52a400"
        },
        {
          "url": "https://git.kernel.org/stable/c/dad9ebf8107955bb54bd3f9cf22591b6ff37bac1"
        },
        {
          "url": "https://git.kernel.org/stable/c/a27cb7325a6c69970041c7f8541fafed5a1ea3ec"
        },
        {
          "url": "https://git.kernel.org/stable/c/7ad0e463fc7eafae2141cc38054264636f8b3e94"
        },
        {
          "url": "https://git.kernel.org/stable/c/bf8e8eac7ede51dc318e06acef5a896dcbba7595"
        },
        {
          "url": "https://git.kernel.org/stable/c/fcc4c043d137e7f1de4673dba1f3116e45377c67"
        },
        {
          "url": "https://git.kernel.org/stable/c/f438d1786d657d57790c5d138d6db3fc9fdac392"
        }
      ],
      "title": "netfilter: ebtables: fix OOB read in compat_mtw_from_user",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-52927",
    "datePublished": "2026-06-24T07:14:20.704Z",
    "dateReserved": "2026-06-09T07:44:35.368Z",
    "dateUpdated": "2026-08-05T12:31:46.769Z",
    "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…