CVE-2022-50212 (GCVE-0-2022-50212)
Vulnerability from cvelistv5
Published
2025-06-18 11:03
Modified
2026-08-05 08:57
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: do not allow CHAIN_ID to refer to another table When doing lookups for chains on the same batch by using its ID, a chain from a different table can be used. If a rule is added to a table but refers to a chain in a different table, it will be linked to the chain in table2, but would have expressions referring to objects in table1. Then, when table1 is removed, the rule will not be removed as its linked to a chain in table2. When expressions in the rule are processed or removed, that will lead to a use-after-free. When looking for chains by ID, use the table that was used for the lookup by name, and only return chains belonging to that same table.
Impacted products
Vendor Product Version
Linux Linux Version: 837830a4b439bfeb86c70b0115c280377c84714b
Version: 837830a4b439bfeb86c70b0115c280377c84714b
Version: 837830a4b439bfeb86c70b0115c280377c84714b
Version: 837830a4b439bfeb86c70b0115c280377c84714b
Version: 837830a4b439bfeb86c70b0115c280377c84714b
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_tables_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9e7dcb88ec8e85e4a8ad0ea494ea2f90f32d2583",
              "status": "affected",
              "version": "837830a4b439bfeb86c70b0115c280377c84714b",
              "versionType": "git"
            },
            {
              "lessThan": "91501513016903077f91033fa5d2aa26cac399b2",
              "status": "affected",
              "version": "837830a4b439bfeb86c70b0115c280377c84714b",
              "versionType": "git"
            },
            {
              "lessThan": "0f49613a213d918af790c1276f79da741968de11",
              "status": "affected",
              "version": "837830a4b439bfeb86c70b0115c280377c84714b",
              "versionType": "git"
            },
            {
              "lessThan": "58e863f64ee3d0879297e5e53b646e4b91e59620",
              "status": "affected",
              "version": "837830a4b439bfeb86c70b0115c280377c84714b",
              "versionType": "git"
            },
            {
              "lessThan": "95f466d22364a33d183509629d0879885b4f547e",
              "status": "affected",
              "version": "837830a4b439bfeb86c70b0115c280377c84714b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_tables_api.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.9"
            },
            {
              "lessThan": "5.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.137",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.61",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.137",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.61",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.18",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.2",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0",
                  "versionStartIncluding": "5.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_tables: do not allow CHAIN_ID to refer to another table\n\nWhen doing lookups for chains on the same batch by using its ID, a chain\nfrom a different table can be used. If a rule is added to a table but\nrefers to a chain in a different table, it will be linked to the chain in\ntable2, but would have expressions referring to objects in table1.\n\nThen, when table1 is removed, the rule will not be removed as its linked to\na chain in table2. When expressions in the rule are processed or removed,\nthat will lead to a use-after-free.\n\nWhen looking for chains by ID, use the table that was used for the lookup\nby name, and only return chains belonging to that same table."
        }
      ],
      "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 bug is reached via NETLINK_NETFILTER netlink messages (nf_tables NEWRULE / verdict CHAIN_ID) from userspace, which requires local process access rather than remote packet delivery.\nAC:L - The attacker fully controls the nftables batch that creates two tables, a chain ID in one table, and a rule that cross-references it, then deletes the other table; no race or external condition is required beyond attacker-controlled netlink operations.\nPR:L - nfnetlink requires CAP_NET_ADMIN checked via netlink_net_capable against the socket network namespace\u0027s user_ns, which an unprivileged user obtains with user+net namespaces (unshare -Urn), matching established nftables LPE prerequisites.\nUI:N - Exploitation requires only attacker-sent netlink batches; no victim action such as mounting a filesystem or opening a crafted file is needed.\nS:U - Successful exploitation yields privilege escalation within the same kernel/host security authority; this is not a VM escape, IOMMU bypass, or cross-boundary sandbox escape.\nC:H - The bug is a confirmed use-after-free on nftables objects/expressions after cross-table CHAIN_ID linking, and UAF reclaim gives the attacker control of freed object contents enabling arbitrary kernel memory disclosure.\nI:H - The same UAF is the same class as CVE-2022-2586 (SET_ID cross-table UAF), which was exploited for local privilege escalation via object ops hijacking, so integrity impact includes arbitrary write and code execution.\nA:H - Use-after-free of nftables rule expressions/objects can trigger kernel oops/panic when dangling pointers are processed or freed, producing a full availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:57:41.784Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9e7dcb88ec8e85e4a8ad0ea494ea2f90f32d2583"
        },
        {
          "url": "https://git.kernel.org/stable/c/91501513016903077f91033fa5d2aa26cac399b2"
        },
        {
          "url": "https://git.kernel.org/stable/c/0f49613a213d918af790c1276f79da741968de11"
        },
        {
          "url": "https://git.kernel.org/stable/c/58e863f64ee3d0879297e5e53b646e4b91e59620"
        },
        {
          "url": "https://git.kernel.org/stable/c/95f466d22364a33d183509629d0879885b4f547e"
        }
      ],
      "title": "netfilter: nf_tables: do not allow CHAIN_ID to refer to another table",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50212",
    "datePublished": "2025-06-18T11:03:50.366Z",
    "dateReserved": "2025-06-18T10:57:27.429Z",
    "dateUpdated": "2026-08-05T08:57:41.784Z",
    "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…