CVE-2026-93288 (GCVE-0-2026-93288)

Vulnerability from cvelistv5 – Published: 2026-09-24 16:02 – Updated: 2026-09-25 12:42
VLAI
Title
netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state sashiko reports: "nfnl_log_net_exit() calls nf_log_unset(), which clears the logger pointer without an RCU grace period. Immediately after, ops_free_list() frees the per-net state while concurrent packets might still be executing nf_log_packet() under rcu_read_lock()." Clear the pointer via .pre_exit to make sure rcu readers have completed before pernet storage is free'd. The change in nf_log_syslog.c is only done for consistency: it doesn't use pernet data.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: c83fa19603bdaeef17b815713dbbe3230c8a34ee , < f4461654374576e9d5d0245fd534c46ad8509051 (git)
Affected: c83fa19603bdaeef17b815713dbbe3230c8a34ee , < dc20050b6b12ca58066715d088e1a537535d938d (git)
Affected: c83fa19603bdaeef17b815713dbbe3230c8a34ee , < 33d1469b0124cc0baaea7a2032123b77a81e0940 (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.12
Unaffected: 0 , < 4.12 (semver)
Unaffected: 6.12.111 , ≤ 6.12.* (semver)
Unaffected: 6.18.53 , ≤ 6.18.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_log_syslog.c",
            "net/netfilter/nfnetlink_log.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "f4461654374576e9d5d0245fd534c46ad8509051",
              "status": "affected",
              "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
              "versionType": "git"
            },
            {
              "lessThan": "dc20050b6b12ca58066715d088e1a537535d938d",
              "status": "affected",
              "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
              "versionType": "git"
            },
            {
              "lessThan": "33d1469b0124cc0baaea7a2032123b77a81e0940",
              "status": "affected",
              "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_log_syslog.c",
            "net/netfilter/nfnetlink_log.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.12"
            },
            {
              "lessThan": "4.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state\n\nsashiko reports: \"nfnl_log_net_exit() calls nf_log_unset(), which\nclears the logger pointer without an RCU grace period.  Immediately after,\nops_free_list() frees the per-net state while concurrent packets might\nstill be executing nf_log_packet() under rcu_read_lock().\"\n\nClear the pointer via .pre_exit to make sure rcu readers have completed\nbefore pernet storage is free\u0027d.  The change in nf_log_syslog.c is only\ndone for consistency: it doesn\u0027t use pernet data."
        }
      ],
      "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 UAF is in nfnl_log_net_exit() (unset moved to nfnl_log_net_pre_exit): cleanup_net() frees nfnl_log_net via ops_free_list() while nf_log_packet()\u2192nfulnl_log_packet() still uses nfnl_log_pernet(). Setup is local NETLINK_NETFILTER nfulnl_recv_config (NFULNL_CFG_CMD_PF_BIND); no remote protocol message carries the bug.\nAC:L - The attacker PF_BINDs nfulnl_logger through nfulnl_recv_config, generates packets that enter nf_log_packet() (conntrack nf_l4proto_log_invalid() while those hooks still exist, or NFLOG), and drops the netns so cleanup_net() races nfnl_log_net_exit()/ops_free_list() against that reader; both sides are attacker-controlled.\nPR:L - nfnetlink_rcv() requires CAP_NET_ADMIN via netlink_net_capable() in sock_net(skb-\u003esk)-\u003euser_ns before nfulnl_recv_config can bind the logger; an unprivileged user obtains that capability in a user+net namespace (unshare -Urn).\nUI:N - The attacker issues nfulnl_recv_config, injects the logged packets, and destroys their own netns; no victim mount, file open, or other interaction is required.\nS:U - The slab UAF of struct nfnl_log_net inside nfulnl_log_packet()/instance_lookup_get_rcu() is host-kernel memory corruption in the same kernel authority, not a VM escape or IOMMU/DMA bypass.\nC:H - After ops_free_list() kfree()s the per-net object, nfulnl_log_packet() still calls nfnl_log_pernet() and instance_lookup_get_rcu() walks the freed instance_table hlist, a slab UAF that can be reclaimed for arbitrary kernel reads.\nI:H - Use-after-free of nfnl_log_net\u0027s instance_table and the resulting nfulnl_instance pointer chase (hlist, inst-\u003elock, inst-\u003eskb) is a heap UAF write primitive that can hijack control flow.\nA:H - instance_lookup_get_rcu()/nfulnl_log_packet() dereferencing the freed nfnl_log_net can oops or panic the kernel even when the UAF is not turned into a full exploit."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T12:42:45.191Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/f4461654374576e9d5d0245fd534c46ad8509051"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc20050b6b12ca58066715d088e1a537535d938d"
        },
        {
          "url": "https://git.kernel.org/stable/c/33d1469b0124cc0baaea7a2032123b77a81e0940"
        }
      ],
      "title": "netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93288",
    "datePublished": "2026-09-24T16:02:12.144Z",
    "dateReserved": "2026-09-17T16:02:15.099Z",
    "dateUpdated": "2026-09-25T12:42:45.191Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-93288",
      "date": "2026-09-28",
      "epss": "0.00127",
      "percentile": "0.02021"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-28T01:51:56.000Z",
      "cve": "CVE-2026-93288",
      "id": "msrc_CVE-2026-93288",
      "initial_release_date": "2026-09-28T01:51:56.000Z",
      "product_status:known_affected": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "netfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-93288.json",
      "version": "1"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "net/netfilter/nf_log_syslog.c",
                  "net/netfilter/nfnetlink_log.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "f4461654374576e9d5d0245fd534c46ad8509051",
                    "status": "affected",
                    "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "dc20050b6b12ca58066715d088e1a537535d938d",
                    "status": "affected",
                    "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "33d1469b0124cc0baaea7a2032123b77a81e0940",
                    "status": "affected",
                    "version": "c83fa19603bdaeef17b815713dbbe3230c8a34ee",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "net/netfilter/nf_log_syslog.c",
                  "net/netfilter/nfnetlink_log.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "4.12"
                  },
                  {
                    "lessThan": "4.12",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.111",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.53",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nfnetlink_log: wait for rcu grace period before freeing pernet state\n\nsashiko reports: \"nfnl_log_net_exit() calls nf_log_unset(), which\nclears the logger pointer without an RCU grace period.  Immediately after,\nops_free_list() frees the per-net state while concurrent packets might\nstill be executing nf_log_packet() under rcu_read_lock().\"\n\nClear the pointer via .pre_exit to make sure rcu readers have completed\nbefore pernet storage is free\u0027d.  The change in nf_log_syslog.c is only\ndone for consistency: it doesn\u0027t use pernet data."
          }
        ],
        "id": "CVE-2026-93288",
        "lastModified": "2026-09-25T13:17:18.433",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-24T17:17:10.070",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/33d1469b0124cc0baaea7a2032123b77a81e0940"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/dc20050b6b12ca58066715d088e1a537535d938d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f4461654374576e9d5d0245fd534c46ad8509051"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-25T23:49:11Z",
      "cve": "CVE-2026-93288",
      "id": "CVE-2026-93288",
      "initial_release_date": "2026-09-25T23:49:11Z",
      "product_status:known_affected": "341",
      "product_status:known_not_affected": "6",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-93288",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-93288.json",
      "version": "2"
    }
  }
}



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…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…