Skip to content
Heist/ feed
Back to feed
CriticalFix available

netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry New test case fails unexpectedly when avx2 matching functions are used. The test first loads a ranomly generated pipapo set with 'ipv4 . port' key, i.e. nft -f foo. This works. Then, it reloads the set after a flush: (echo flush set t s; cat foo) | nft -f - This is expected to work, because its the same set after all and it was already loaded once. But with avx2, this fails: nft reports a clashing element. The reported clash is of following form: We successfully re-inserted a . b c . d Then we try to insert a . d avx2 finds the already existing a . d, which (due to 'flush set') is marked as invalid in the new generation. It skips the element and moves to next. Due to incorrect masking, the skip-step finds the next matching element *only considering the first field*, i.e. we return the already reinserted "a . b", even though the last field is different and the entry should not have been matched. No such error is reported for the generic c implementation (no avx2) or when the last field has to use the 'nft_pipapo_avx2_lookup_slow' fallback. Bisection points to 7711f4bb4b36 ("netfilter: nft_set_pipapo: fix range overlap detection") but that fix merely uncovers this bug. Before this commit, the wrong element is returned, but erronously reported as a full, identical duplicate. The root-cause is too early return in the avx2 match functions. W

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.258, 5.15.209, 6.1.175, 6.12.83, 6.18.24, 6.19.14, 6.6.136
CVEs
CVE-2026-43114
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 17:25 UTC · Revision 1

Source evidence

netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry

core-osv · Original source

Published 6 May 2026, 07:40 UTC

In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry New test case fails unexpectedly when avx2 matching functions are used. The test first loads a ranomly generated pipapo set with 'ipv4 . port' key, i.e. nft -f foo. This works. Then, it reloads the set after a flush: (echo flush set t s; cat foo) | nft -f - This is expected to work, because its the same set after all and it was already loaded once. But with avx2, this fails: nft reports a clashing element. The reported clash is of following form: We successfully re-inserted a . b c . d Then we try to insert a . d avx2 finds the already existing a . d, which (due to 'flush set') is marked as invalid in the new generation. It skips the element and moves to next. Due to incorrect masking, the skip-step finds the next matching element *only considering the first field*, i.e. we return the already reinserted "a . b", even though the last field is different and the entry should not have been matched. No such error is reported for the generic c implementation (no avx2) or when the last field has to use the 'nft_pipapo_avx2_lookup_slow' fallback. Bisection points to 7711f4bb4b36 ("netfilter: nft_set_pipapo: fix range overlap detection") but that fix merely uncovers this bug. Before this commit, the wrong element is returned, but erronously reported as a full, identical duplicate. The root-cause is too early return in the avx2 match functions. W

osv:CVE-2026-43114

Kernel

Fixed versions: 5.10.258, 5.15.209, 6.1.175, 6.6.136, 6.12.83, 6.18.24, 6.19.14

Complete source record
{
  "id": "e16aed72f56d69ed78f0abad2eaf5a66bf4f8e9b5437ef68309659f4d44ed5fd",
  "url": "https://osv.dev/vulnerability/CVE-2026-43114",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: netfilter: nft_set_pipapo_avx2: don't return non-matching entry on expiry New test case fails unexpectedly when avx2 matching functions are used. The test first loads a ranomly generated pipapo set with 'ipv4 . port' key, i.e. nft -f foo. This works. Then, it reloads the set after a flush: (echo flush set t s; cat foo) | nft -f - This is expected to work, because its the same set after all and it was already loaded once. But with avx2, this fails: nft reports a clashing element. The reported clash is of following form: We successfully re-inserted a . b c . d Then we try to insert a . d avx2 finds the already existing a . d, which (due to 'flush set') is marked as invalid in the new generation. It skips the element and moves to next. Due to incorrect masking, the skip-step finds the next matching element *only considering the first field*, i.e. we return the already reinserted \"a . b\", even though the last field is different and the entry should not have been matched. No such error is reported for the generic c implementation (no avx2) or when the last field has to use the 'nft_pipapo_avx2_lookup_slow' fallback. Bisection points to 7711f4bb4b36 (\"netfilter: nft_set_pipapo: fix range overlap detection\") but that fix merely uncovers this bug. Before this commit, the wrong element is returned, but erronously reported as a full, identical duplicate. The root-cause is too early return in the avx2 match functions. W",
    "evidence": "osv:CVE-2026-43114",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.258",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.209",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.175",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.136",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.83",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.24",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.19.14",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-43114",
      "aliases": [
        "CVE-2026-43114"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "7400b063969bdca4a06cd97f1294d765c8eecbe1"
                },
                {
                  "fixed": "f8c39983fc9c1a978c82e6f2df7bfba8a8561587"
                },
                {
                  "fixed": "c7babe2f28b507e17f28e9f753b7caec72d4857f"
                },
                {
                  "fixed": "1c43f0dd8691ddf8884793b481ddc7511cf593c3"
                },
                {
                  "fixed": "fa4f1f52528c73989d820f32bfca06bec5afeece"
                },
                {
                  "fixed": "3d53f9aafd469ae1ea27051e00f5b96ca1b55d52"
                },
                {
                  "fixed": "07de44424bb7f17ef9357e8535df96d9e97c40cb"
                },
                {
                  "fixed": "0abbc43f71d99baadeeba6fa3fe1c80b676f57ed"
                },
                {
                  "fixed": "d3c0037ffe1273fa1961e779ff6906234d6cf53c"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43114.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.7.0"
                },
                {
                  "fixed": "5.10.258"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.209"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.175"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.136"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.83"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.24"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "6.19.14"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43114.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:44.621858482Z",
      "provider": "osv",
      "references": [
        "https://cert-portal.siemens.com/productcert/html/ssa-784472.html",
        "https://git.kernel.org/stable/c/07de44424bb7f17ef9357e8535df96d9e97c40cb",
        "https://git.kernel.org/stable/c/0abbc43f71d99baadeeba6fa3fe1c80b676f57ed",
        "https://git.kernel.org/stable/c/1c43f0dd8691ddf8884793b481ddc7511cf593c3",
        "https://git.kernel.org/stable/c/3d53f9aafd469ae1ea27051e00f5b96ca1b55d52",
        "https://git.kernel.org/stable/c/c7babe2f28b507e17f28e9f753b7caec72d4857f",
        "https://git.kernel.org/stable/c/d3c0037ffe1273fa1961e779ff6906234d6cf53c",
        "https://git.kernel.org/stable/c/f8c39983fc9c1a978c82e6f2df7bfba8a8561587",
        "https://git.kernel.org/stable/c/fa4f1f52528c73989d820f32bfca06bec5afeece",
        "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-43114.json",
        "https://access.redhat.com/errata/RHSA-2026:59723",
        "https://access.redhat.com/errata/RHSA-2026:62568",
        "https://access.redhat.com/errata/RHSA-2026:62638",
        "https://access.redhat.com/errata/RHSA-2026:62639",
        "https://access.redhat.com/errata/RHSA-2026:62640",
        "https://access.redhat.com/errata/RHSA-2026:62641",
        "https://access.redhat.com/errata/RHSA-2026:62642",
        "https://access.redhat.com/errata/RHSA-2026:63093",
        "https://access.redhat.com/errata/RHSA-2026:64767",
        "https://access.redhat.com/errata/RHSA-2026:65712",
        "https://access.redhat.com/errata/RHSA-2026:66351",
        "https://access.redhat.com/errata/RHSA-2026:66370",
        "https://access.redhat.com/errata/RHSA-2026:66376",
        "https://access.redhat.com/errata/RHSA-2026:67721",
        "https://access.redhat.com/errata/RHSA-2026:67723",
        "https://access.redhat.com/security/cve/CVE-2026-43114",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43114.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-43114",
        "https://bugzilla.redhat.com/show_bug.cgi?id=2466994",
        "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/43xxx/CVE-2026-43114.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-43114",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 512536,
  "published_at": "2026-05-06T07:40:39.877+00:00"
}