CVE-2022-49110 (GCVE-0-2022-49110)
Vulnerability from cvelistv5
Published
2025-02-26 01:54
Modified
2026-08-05 08:53
Summary
In the Linux kernel, the following vulnerability has been resolved: netfilter: conntrack: revisit gc autotuning as of commit 4608fdfc07e1 ("netfilter: conntrack: collect all entries in one cycle") conntrack gc was changed to run every 2 minutes. On systems where conntrack hash table is set to large value, most evictions happen from gc worker rather than the packet path due to hash table distribution. This causes netlink event overflows when events are collected. This change collects average expiry of scanned entries and reschedules to the average remaining value, within 1 to 60 second interval. To avoid event overflows, reschedule after each bucket and add a limit for both run time and number of evictions per run. If more entries have to be evicted, reschedule and restart 1 jiffy into the future.
Impacted products
Vendor Product Version
Linux Linux Version: 4608fdfc07e116f9fc0895beb40abad7cdb5ee3d
Version: 4608fdfc07e116f9fc0895beb40abad7cdb5ee3d
Version: 4608fdfc07e116f9fc0895beb40abad7cdb5ee3d
Version: 4608fdfc07e116f9fc0895beb40abad7cdb5ee3d
Version: dafc95a1e473a0b857af34ecbb17b8b1c90edd75
Version: 5892f910f401c1facfc410e0b042108f2827a77b
Version: f68ad168e23565ce2a3891fec537cfaf8410d1e6
Version: 7aa03980b21fdc7355e20274a68a69a0b2a45c08
Version: 4.19.206   
Version: 5.4.144   
Version: 5.10.62   
Version: 5.13.14   
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_conntrack_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "58d52743ae85d28c9335c6034d6ce350b8689951",
              "status": "affected",
              "version": "4608fdfc07e116f9fc0895beb40abad7cdb5ee3d",
              "versionType": "git"
            },
            {
              "lessThan": "7cd361d5e6d986c0d4cafb9ceaa803359048ae15",
              "status": "affected",
              "version": "4608fdfc07e116f9fc0895beb40abad7cdb5ee3d",
              "versionType": "git"
            },
            {
              "lessThan": "592e57591826f3d09c28d755a39ea8e9d13705ad",
              "status": "affected",
              "version": "4608fdfc07e116f9fc0895beb40abad7cdb5ee3d",
              "versionType": "git"
            },
            {
              "lessThan": "2cfadb761d3d0219412fd8150faea60c7e863833",
              "status": "affected",
              "version": "4608fdfc07e116f9fc0895beb40abad7cdb5ee3d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "dafc95a1e473a0b857af34ecbb17b8b1c90edd75",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "5892f910f401c1facfc410e0b042108f2827a77b",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f68ad168e23565ce2a3891fec537cfaf8410d1e6",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "7aa03980b21fdc7355e20274a68a69a0b2a45c08",
              "versionType": "git"
            },
            {
              "lessThan": "4.20",
              "status": "affected",
              "version": "4.19.206",
              "versionType": "semver"
            },
            {
              "lessThan": "5.5",
              "status": "affected",
              "version": "5.4.144",
              "versionType": "semver"
            },
            {
              "lessThan": "5.11",
              "status": "affected",
              "version": "5.10.62",
              "versionType": "semver"
            },
            {
              "lessThan": "5.14",
              "status": "affected",
              "version": "5.13.14",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/netfilter/nf_conntrack_core.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.14"
            },
            {
              "lessThan": "5.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.34",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.16.*",
              "status": "unaffected",
              "version": "5.16.20",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.17.*",
              "status": "unaffected",
              "version": "5.17.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.18",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.34",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.16.20",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.17.3",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18",
                  "versionStartIncluding": "5.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "4.19.206",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.4.144",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.10.62",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.13.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: conntrack: revisit gc autotuning\n\nas of commit 4608fdfc07e1\n(\"netfilter: conntrack: collect all entries in one cycle\")\nconntrack gc was changed to run every 2 minutes.\n\nOn systems where conntrack hash table is set to large value, most evictions\nhappen from gc worker rather than the packet path due to hash table\ndistribution.\n\nThis causes netlink event overflows when events are collected.\n\nThis change collects average expiry of scanned entries and\nreschedules to the average remaining value, within 1 to 60 second interval.\n\nTo avoid event overflows, reschedule after each bucket and add a\nlimit for both run time and number of evictions per run.\n\nIf more entries have to be evicted, reschedule and restart 1 jiffy\ninto the future."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - nf_conntrack on internet-facing firewalls, NAT gateways, and Kubernetes nodes creates entries from unauthenticated transit/ingress packets (nf_conntrack_in \u2192 init_conntrack); a remote peer flooding unique tuples drives the expired-entry backlog that the flawed gc_worker then mass-evicts.\nAC:L - The attacker controls flow creation rate and expiry timing (e.g. unreplied UDP at the default 30s timeout), and large conntrack hash tables plus ctnetlink listeners (conntrackd) are normal firewall deployments rather than rare attacker-uncontrollable conditions.\nPR:N - Conntrack insertion and later GC eviction are side effects of packet processing with no authentication or host credentials; the attacker needs no local account or capability on the gateway.\nUI:N - Packet-driven conntrack creation and the periodic gc_worker run without any victim user action such as opening a file or mounting a filesystem.\nS:U - Event overflows, dying_list backlog, and table-full packet drops remain inside the same kernel networking authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:N - This is a scheduling/resource issue with no out-of-bounds read, UAF reclaim, or other primitive that discloses kernel or connection memory to the attacker.\nI:N - There is no memory corruption, arbitrary write, or control-flow hijack; lost ctnetlink events and delayed frees do not yield an integrity primitive against kernel state.\nA:H - Delayed reclaim leaves expired entries counted in cnet-\u003ecount so the table hits nf_conntrack_max and drops legitimate traffic; burst GC without an eviction cap floods DESTROY events (ENOBUFS, dying_list memory hold) and can peg CPU via next_run=0 reschedules, denying firewall/NAT availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:53:56.214Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/58d52743ae85d28c9335c6034d6ce350b8689951"
        },
        {
          "url": "https://git.kernel.org/stable/c/7cd361d5e6d986c0d4cafb9ceaa803359048ae15"
        },
        {
          "url": "https://git.kernel.org/stable/c/592e57591826f3d09c28d755a39ea8e9d13705ad"
        },
        {
          "url": "https://git.kernel.org/stable/c/2cfadb761d3d0219412fd8150faea60c7e863833"
        }
      ],
      "title": "netfilter: conntrack: revisit gc autotuning",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49110",
    "datePublished": "2025-02-26T01:54:55.998Z",
    "dateReserved": "2025-02-26T01:49:39.251Z",
    "dateUpdated": "2026-08-05T08:53:56.214Z",
    "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…