CVE-2026-53266 (GCVE-0-2026-53266)
Vulnerability from cvelistv5
Published
2026-06-25 08:39
Modified
2026-08-05 12:34
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: bridge: make ebt_snat ARP rewrite writable The ebtables SNAT target keeps the Ethernet source address rewrite behind skb_ensure_writable(skb, 0). This is intentional: at the bridge ebtables hooks the Ethernet header is addressed through skb_mac_header()/eth_hdr(), while skb->data points at the Ethernet payload. Asking skb_ensure_writable() for ETH_HLEN bytes would check the payload, not the Ethernet header, and would reintroduce the small packet regression fixed by commit 63137bc5882a. However, the optional ARP sender hardware address rewrite is different. It writes through skb_store_bits() at an offset relative to skb->data: skb_store_bits(skb, sizeof(struct arphdr), info->mac, ETH_ALEN) skb_header_pointer() only safely reads the ARP header; it does not make the later sender hardware address range writable. If that range is still held in a nonlinear skb fragment backed by a splice-imported file page, skb_store_bits() maps the frag page and copies the new MAC address directly into it. Ensure the ARP SHA range is writable before reading the ARP header and before calling skb_store_bits().
Impacted products
Vendor Product Version
Linux Linux Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 63137bc5882a1882c553d389fdeeeace86ee1741
Version: 2f3839075a5f8dcf116c1abe35b36b018ac62445
Version: 51ba2945a8ef65ae437c8f9ba05f0343aa82ae5b
Version: b7d23c2c87584eb429f115c078ed511be8b18e29
Version: 5.4.73   
Version: 5.8.17   
Version: 5.9.2   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/netfilter/ebt_snat.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "bf84ad7c7a9ede46e31afaa41a1ba06a159e8c87",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "76280b78cc9f23bdc6438e10ad6dff148ef8375b",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "b7e91939ba9be805a62a257fa4e227dffbb88fa0",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "afd64b59c3de9bbbdd3759e834fdc55cda716e0b",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "153ea96c806aea395daba907a4f88480b6ad5093",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "b18675263db1147c8e1cab625400c13a0d87bd2d",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "c9b5ff59feffb92a147a84a5aa28acd2cb8ff4c5",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "lessThan": "67ba971ae02514d85818fe0c32549ab4bfa3bf49",
              "status": "affected",
              "version": "63137bc5882a1882c553d389fdeeeace86ee1741",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "2f3839075a5f8dcf116c1abe35b36b018ac62445",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "51ba2945a8ef65ae437c8f9ba05f0343aa82ae5b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "b7d23c2c87584eb429f115c078ed511be8b18e29",
              "versionType": "git"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.73",
              "versionType": "semver"
            },
            {
              "lessThan": "5.9",
              "status": "affected",
              "version": "5.8.17",
              "versionType": "semver"
            },
            {
              "lessThan": "5.10",
              "status": "affected",
              "version": "5.9.2",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/netfilter/ebt_snat.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.10"
            },
            {
              "lessThan": "5.10",
              "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.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.10.259",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.210",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.176",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.143",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.94",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.36",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.13",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1",
                  "versionStartIncluding": "5.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.73",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.8.17",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.9.2",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: bridge: make ebt_snat ARP rewrite writable\n\nThe ebtables SNAT target keeps the Ethernet source address rewrite\nbehind skb_ensure_writable(skb, 0).  This is intentional: at the bridge\nebtables hooks the Ethernet header is addressed through\nskb_mac_header()/eth_hdr(), while skb-\u003edata points at the Ethernet\npayload.  Asking skb_ensure_writable() for ETH_HLEN bytes would check\nthe payload, not the Ethernet header, and would reintroduce the small\npacket regression fixed by commit 63137bc5882a.\n\nHowever, the optional ARP sender hardware address rewrite is different.\nIt writes through skb_store_bits() at an offset relative to skb-\u003edata:\n\n        skb_store_bits(skb, sizeof(struct arphdr), info-\u003emac, ETH_ALEN)\n\nskb_header_pointer() only safely reads the ARP header; it does not make\nthe later sender hardware address range writable.  If that range is\nstill held in a nonlinear skb fragment backed by a splice-imported file\npage, skb_store_bits() maps the frag page and copies the new MAC address\ndirectly into it.\n\nEnsure the ARP SHA range is writable before reading the ARP header and\nbefore calling skb_store_bits()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - Exploitation requires local control of bridge/ebtables configuration and arranging an skb with shared non-linear backing memory; remote ARP traffic alone cannot create the splice-backed page condition.\nAC:L - There is no race or rare external timing condition; the attacker can control the rule, ARP frame layout, and shared-frag setup needed to reach the write.\nPR:L - The ebtables rule path requires CAP_NET_ADMIN, but this is reachable with namespace-local privileges via user/network namespaces rather than requiring init-namespace root.\nUI:N - No victim action is required once the attacker can configure the namespace and send the crafted traffic through the bridge path.\nS:C - The bug can let namespace-local network privileges corrupt file-backed/page-cache memory outside the bridge/netfilter security boundary, plausibly crossing a sandbox or namespace boundary.\nC:H - The shared-page corruption can be leveraged toward privilege escalation or code execution, which can expose high-value system data.\nI:H - skb_store_bits() writes attacker-chosen MAC bytes into shared backing pages, giving a controlled corruption primitive against file-backed memory.\nA:H - Controlled corruption of shared/file-backed pages can damage critical files or executable contents and can be repeated to cause severe system availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:34:43.383Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/bf84ad7c7a9ede46e31afaa41a1ba06a159e8c87"
        },
        {
          "url": "https://git.kernel.org/stable/c/76280b78cc9f23bdc6438e10ad6dff148ef8375b"
        },
        {
          "url": "https://git.kernel.org/stable/c/b7e91939ba9be805a62a257fa4e227dffbb88fa0"
        },
        {
          "url": "https://git.kernel.org/stable/c/afd64b59c3de9bbbdd3759e834fdc55cda716e0b"
        },
        {
          "url": "https://git.kernel.org/stable/c/153ea96c806aea395daba907a4f88480b6ad5093"
        },
        {
          "url": "https://git.kernel.org/stable/c/b18675263db1147c8e1cab625400c13a0d87bd2d"
        },
        {
          "url": "https://git.kernel.org/stable/c/c9b5ff59feffb92a147a84a5aa28acd2cb8ff4c5"
        },
        {
          "url": "https://git.kernel.org/stable/c/67ba971ae02514d85818fe0c32549ab4bfa3bf49"
        }
      ],
      "title": "netfilter: bridge: make ebt_snat ARP rewrite writable",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53266",
    "datePublished": "2026-06-25T08:39:53.190Z",
    "dateReserved": "2026-06-09T07:44:35.395Z",
    "dateUpdated": "2026-08-05T12:34:43.383Z",
    "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…