CVE-2026-45844 (GCVE-0-2026-45844)

Vulnerability from cvelistv5 – Published: 2026-05-27 09:24 – Updated: 2026-05-27 09:24
VLAI
Title
netfilter: arp_tables: fix IEEE1394 ARP payload parsing
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: arp_tables: fix IEEE1394 ARP payload parsing Weiming Shi says: "arp_packet_match() unconditionally parses the ARP payload assuming two hardware addresses are present (source and target). However, IPv4-over-IEEE1394 ARP (RFC 2734) omits the target hardware address field, and arp_hdr_len() already accounts for this by returning a shorter length for ARPHRD_IEEE1394 devices. As a result, on IEEE1394 interfaces arp_packet_match() advances past a nonexistent target hardware address and reads the wrong bytes for both the target device address comparison and the target IP address. This causes arptables rules to match against garbage data, leading to incorrect filtering decisions: packets that should be accepted may be dropped and vice versa. The ARP stack in net/ipv4/arp.c (arp_create and arp_process) already handles this correctly by skipping the target hardware address for ARPHRD_IEEE1394. Apply the same pattern to arp_packet_match()." Mangle the original patch to always return 0 (no match) in case user matches on the target hardware address which is never present in IEEE1394. Note that this returns 0 (no match) for either normal and inverse match because matching in the target hardware address in ARPHRD_IEEE1394 has never been supported by arptables. This is intentional, matching on the target hardware address should never evaluate true for ARPHRD_IEEE1394. Moreover, adjust arpt_mangle to drop the packet too as AI suggests: In arpt_mangle, the logic assumes a standard ARP layout. Because IEEE1394 (FireWire) omits the target hardware address, the linear pointer arithmetic miscalculates the offset for the target IP address. This causes mangling operations to write to the wrong location, leading to packet corruption. To ensure safety, this patch drops packets (NF_DROP) when mangling is requested for these fields on IEEE1394 devices, as the current implementation cannot correctly map the FireWire ARP payload. This omits both mangling target hardware and IP address. Even if IP address mangling should be possible in IEEE1394, this would require to adjust arpt_mangle offset calculation, which has never been supported. Based on patch from Weiming Shi <bestswngs@gmail.com>.
Severity
No CVSS data available.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 6752c8db8e0cfedb44ba62806dd15b383ed64000 , < ad9973df8e0eeb123d9ec4d18828e05b7d44ff4b (git)
Affected: 6752c8db8e0cfedb44ba62806dd15b383ed64000 , < 03ea11dbefaa55c502735ee551c89ef773fe753b (git)
Affected: 6752c8db8e0cfedb44ba62806dd15b383ed64000 , < 1c55053f8ffdc060006df898fd3664e3d1bfac7b (git)
Affected: 6752c8db8e0cfedb44ba62806dd15b383ed64000 , < ac698d81fd6619c7504cee913f1cab5285fba1b7 (git)
Affected: 6752c8db8e0cfedb44ba62806dd15b383ed64000 , < 1e8e3f449b1e73b73a843257635b9c50f0cc0f0a (git)
Create a notification for this product.
Linux Linux Affected: 3.10
Unaffected: 0 , < 3.10 (semver)
Unaffected: 6.6.141 , ≤ 6.6.* (semver)
Unaffected: 6.12.91 , ≤ 6.12.* (semver)
Unaffected: 6.18.33 , ≤ 6.18.* (semver)
Unaffected: 7.0.10 , ≤ 7.0.* (semver)
Unaffected: 7.1-rc2 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/ipv4/netfilter/arp_tables.c",
            "net/ipv4/netfilter/arpt_mangle.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ad9973df8e0eeb123d9ec4d18828e05b7d44ff4b",
              "status": "affected",
              "version": "6752c8db8e0cfedb44ba62806dd15b383ed64000",
              "versionType": "git"
            },
            {
              "lessThan": "03ea11dbefaa55c502735ee551c89ef773fe753b",
              "status": "affected",
              "version": "6752c8db8e0cfedb44ba62806dd15b383ed64000",
              "versionType": "git"
            },
            {
              "lessThan": "1c55053f8ffdc060006df898fd3664e3d1bfac7b",
              "status": "affected",
              "version": "6752c8db8e0cfedb44ba62806dd15b383ed64000",
              "versionType": "git"
            },
            {
              "lessThan": "ac698d81fd6619c7504cee913f1cab5285fba1b7",
              "status": "affected",
              "version": "6752c8db8e0cfedb44ba62806dd15b383ed64000",
              "versionType": "git"
            },
            {
              "lessThan": "1e8e3f449b1e73b73a843257635b9c50f0cc0f0a",
              "status": "affected",
              "version": "6752c8db8e0cfedb44ba62806dd15b383ed64000",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/ipv4/netfilter/arp_tables.c",
            "net/ipv4/netfilter/arpt_mangle.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.10"
            },
            {
              "lessThan": "3.10",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.141",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.91",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.33",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.0.*",
              "status": "unaffected",
              "version": "7.0.10",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.1-rc2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.141",
                  "versionStartIncluding": "3.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.91",
                  "versionStartIncluding": "3.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.33",
                  "versionStartIncluding": "3.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0.10",
                  "versionStartIncluding": "3.10",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1-rc2",
                  "versionStartIncluding": "3.10",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: arp_tables: fix IEEE1394 ARP payload parsing\n\nWeiming Shi says:\n\n\"arp_packet_match() unconditionally parses the ARP payload assuming two\nhardware addresses are present (source and target). However,\nIPv4-over-IEEE1394 ARP (RFC 2734) omits the target hardware address\nfield, and arp_hdr_len() already accounts for this by returning a\nshorter length for ARPHRD_IEEE1394 devices.\n\nAs a result, on IEEE1394 interfaces arp_packet_match() advances past a\nnonexistent target hardware address and reads the wrong bytes for both\nthe target device address comparison and the target IP address. This\ncauses arptables rules to match against garbage data, leading to\nincorrect filtering decisions: packets that should be accepted may be\ndropped and vice versa.\n\nThe ARP stack in net/ipv4/arp.c (arp_create and arp_process) already\nhandles this correctly by skipping the target hardware address for\nARPHRD_IEEE1394. Apply the same pattern to arp_packet_match().\"\n\nMangle the original patch to always return 0 (no match) in case user\nmatches on the target hardware address which is never present in\nIEEE1394.\n\nNote that this returns 0 (no match) for either normal and inverse match\nbecause matching in the target hardware address in ARPHRD_IEEE1394 has\nnever been supported by arptables. This is intentional, matching on the\ntarget hardware address should never evaluate true for ARPHRD_IEEE1394.\n\nMoreover, adjust arpt_mangle to drop the packet too as AI suggests:\n\nIn arpt_mangle, the logic assumes a standard ARP layout. Because\nIEEE1394 (FireWire) omits the target hardware address, the linear\npointer arithmetic miscalculates the offset for the target IP address.\nThis causes mangling operations to write to the wrong location, leading\nto packet corruption. To ensure safety, this patch drops packets\n(NF_DROP) when mangling is requested for these fields on IEEE1394\ndevices, as the current implementation cannot correctly map the FireWire\nARP payload.\n\nThis omits both mangling target hardware and IP address. Even if IP\naddress mangling should be possible in IEEE1394, this would require\nto adjust arpt_mangle offset calculation, which has never been\nsupported.\n\nBased on patch from Weiming Shi \u003cbestswngs@gmail.com\u003e."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-27T09:24:47.041Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ad9973df8e0eeb123d9ec4d18828e05b7d44ff4b"
        },
        {
          "url": "https://git.kernel.org/stable/c/03ea11dbefaa55c502735ee551c89ef773fe753b"
        },
        {
          "url": "https://git.kernel.org/stable/c/1c55053f8ffdc060006df898fd3664e3d1bfac7b"
        },
        {
          "url": "https://git.kernel.org/stable/c/ac698d81fd6619c7504cee913f1cab5285fba1b7"
        },
        {
          "url": "https://git.kernel.org/stable/c/1e8e3f449b1e73b73a843257635b9c50f0cc0f0a"
        }
      ],
      "title": "netfilter: arp_tables: fix IEEE1394 ARP payload parsing",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-45844",
    "datePublished": "2026-05-27T09:24:47.041Z",
    "dateReserved": "2026-05-13T15:03:33.078Z",
    "dateUpdated": "2026-05-27T09:24:47.041Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-45844",
      "date": "2026-05-28",
      "epss": "0.00021",
      "percentile": "0.0614"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-45844\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-05-27T11:16:23.847\",\"lastModified\":\"2026-05-27T14:48:31.480\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnetfilter: arp_tables: fix IEEE1394 ARP payload parsing\\n\\nWeiming Shi says:\\n\\n\\\"arp_packet_match() unconditionally parses the ARP payload assuming two\\nhardware addresses are present (source and target). However,\\nIPv4-over-IEEE1394 ARP (RFC 2734) omits the target hardware address\\nfield, and arp_hdr_len() already accounts for this by returning a\\nshorter length for ARPHRD_IEEE1394 devices.\\n\\nAs a result, on IEEE1394 interfaces arp_packet_match() advances past a\\nnonexistent target hardware address and reads the wrong bytes for both\\nthe target device address comparison and the target IP address. This\\ncauses arptables rules to match against garbage data, leading to\\nincorrect filtering decisions: packets that should be accepted may be\\ndropped and vice versa.\\n\\nThe ARP stack in net/ipv4/arp.c (arp_create and arp_process) already\\nhandles this correctly by skipping the target hardware address for\\nARPHRD_IEEE1394. Apply the same pattern to arp_packet_match().\\\"\\n\\nMangle the original patch to always return 0 (no match) in case user\\nmatches on the target hardware address which is never present in\\nIEEE1394.\\n\\nNote that this returns 0 (no match) for either normal and inverse match\\nbecause matching in the target hardware address in ARPHRD_IEEE1394 has\\nnever been supported by arptables. This is intentional, matching on the\\ntarget hardware address should never evaluate true for ARPHRD_IEEE1394.\\n\\nMoreover, adjust arpt_mangle to drop the packet too as AI suggests:\\n\\nIn arpt_mangle, the logic assumes a standard ARP layout. Because\\nIEEE1394 (FireWire) omits the target hardware address, the linear\\npointer arithmetic miscalculates the offset for the target IP address.\\nThis causes mangling operations to write to the wrong location, leading\\nto packet corruption. To ensure safety, this patch drops packets\\n(NF_DROP) when mangling is requested for these fields on IEEE1394\\ndevices, as the current implementation cannot correctly map the FireWire\\nARP payload.\\n\\nThis omits both mangling target hardware and IP address. Even if IP\\naddress mangling should be possible in IEEE1394, this would require\\nto adjust arpt_mangle offset calculation, which has never been\\nsupported.\\n\\nBased on patch from Weiming Shi \u003cbestswngs@gmail.com\u003e.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/03ea11dbefaa55c502735ee551c89ef773fe753b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/1c55053f8ffdc060006df898fd3664e3d1bfac7b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/1e8e3f449b1e73b73a843257635b9c50f0cc0f0a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ac698d81fd6619c7504cee913f1cab5285fba1b7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ad9973df8e0eeb123d9ec4d18828e05b7d44ff4b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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…