CVE-2022-49025 (GCVE-0-2022-49025)
Vulnerability from cvelistv5
Published
2024-10-21 20:06
Modified
2026-08-05 08:53
Summary
In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Fix use-after-free when reverting termination table When having multiple dests with termination tables and second one or afterwards fails the driver reverts usage of term tables but doesn't reset the assignment in attr->dests[num_vport_dests].termtbl which case a use-after-free when releasing the rule. Fix by resetting the assignment of termtbl to null.
Impacted products
Vendor Product Version
Linux Linux Version: 10caabdaad5ace85577a453da97d1f8d3b944427
Version: 10caabdaad5ace85577a453da97d1f8d3b944427
Version: 10caabdaad5ace85577a453da97d1f8d3b944427
Version: 10caabdaad5ace85577a453da97d1f8d3b944427
Version: 10caabdaad5ace85577a453da97d1f8d3b944427
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2022-49025",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-10-22T13:12:03.785297Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-10-22T13:18:36.599Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0a2d73a77060c3cbdc6e801cd5d979d674cd404b",
              "status": "affected",
              "version": "10caabdaad5ace85577a453da97d1f8d3b944427",
              "versionType": "git"
            },
            {
              "lessThan": "0d2f9d95d9fbe993f3c4bafb87d59897b0325aff",
              "status": "affected",
              "version": "10caabdaad5ace85577a453da97d1f8d3b944427",
              "versionType": "git"
            },
            {
              "lessThan": "372eb550faa0757349040fd43f59483cbfdb2c0b",
              "status": "affected",
              "version": "10caabdaad5ace85577a453da97d1f8d3b944427",
              "versionType": "git"
            },
            {
              "lessThan": "e6d2d26a49c3a9cd46b232975e45236304810904",
              "status": "affected",
              "version": "10caabdaad5ace85577a453da97d1f8d3b944427",
              "versionType": "git"
            },
            {
              "lessThan": "52c795af04441d76f565c4634f893e5b553df2ae",
              "status": "affected",
              "version": "10caabdaad5ace85577a453da97d1f8d3b944427",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.3"
            },
            {
              "lessThan": "5.3",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.4.*",
              "status": "unaffected",
              "version": "5.4.226",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.82",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.0.*",
              "status": "unaffected",
              "version": "6.0.12",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.4.226",
                  "versionStartIncluding": "5.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.158",
                  "versionStartIncluding": "5.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.82",
                  "versionStartIncluding": "5.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.12",
                  "versionStartIncluding": "5.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1",
                  "versionStartIncluding": "5.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: Fix use-after-free when reverting termination table\n\nWhen having multiple dests with termination tables and second one\nor afterwards fails the driver reverts usage of term tables but\ndoesn\u0027t reset the assignment in attr-\u003edests[num_vport_dests].termtbl\nwhich case a use-after-free when releasing the rule.\nFix by resetting the assignment of termtbl to null."
        }
      ],
      "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 by installing/deleting a TC flower rule via rtnetlink (tc_new_tfilter \u2192 mlx5e_configure_flower \u2192 mlx5_eswitch_add_offloaded_rule \u2192 mlx5_eswitch_add_termtbl_rule), which is a local netlink/syscall path, not remote packet processing.\nAC:L - An attacker who can add multi-destination VLAN-push/hairpin TC flower rules can force the revert path (e.g., by exhausting memory so a later termtbl get_create fails) and then delete the successfully fallback-installed rule; this is a deterministic error-path UAF with no race outside attacker control.\nPR:L - Creating and deleting these TC flower filters requires CAP_NET_ADMIN checked via netlink_net_capable()/ns_capable() in the network namespace\u0027s user_ns, which is obtainable through user namespaces (unshare -Urn), matching prior mlx5e FDB TC scoring (e.g., CVE-2023-52487).\nUI:N - No victim interaction is required; the attacker installs the multi-dest termination-table rule and later deletes it entirely on their own.\nS:U - Impact is confined to the host kernel that owns the mlx5 eswitch offload state; this is a same-authority kernel UAF with no VM escape, IOMMU bypass, or other cross-boundary effect.\nC:H - On rule release, __mlx5_eswitch_del_rule calls mlx5_eswitch_termtbl_put() on the dangling attr-\u003edests[].termtbl pointer after the handle was already freed during revert, yielding a classic heap UAF that enables arbitrary kernel memory disclosure.\nI:H - The same use-after-free of mlx5_termtbl_handle allows heap spray/reclaim and corruption of subsequent allocations, providing write and control-flow hijack primitives suitable for privilege escalation.\nA:H - Any use-after-free is treated as high availability impact; exercising the dangling termtbl pointer on rule teardown can oops/panic the kernel even when not fully exploited for code execution."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:53:31.402Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0a2d73a77060c3cbdc6e801cd5d979d674cd404b"
        },
        {
          "url": "https://git.kernel.org/stable/c/0d2f9d95d9fbe993f3c4bafb87d59897b0325aff"
        },
        {
          "url": "https://git.kernel.org/stable/c/372eb550faa0757349040fd43f59483cbfdb2c0b"
        },
        {
          "url": "https://git.kernel.org/stable/c/e6d2d26a49c3a9cd46b232975e45236304810904"
        },
        {
          "url": "https://git.kernel.org/stable/c/52c795af04441d76f565c4634f893e5b553df2ae"
        }
      ],
      "title": "net/mlx5e: Fix use-after-free when reverting termination table",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49025",
    "datePublished": "2024-10-21T20:06:31.189Z",
    "dateReserved": "2024-08-22T01:27:53.650Z",
    "dateUpdated": "2026-08-05T08:53:31.402Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2022-49025\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-22T13:12:03.785297Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-10-22T13:12:07.218Z\"}}], \"cna\": {\"title\": \"net/mlx5e: Fix use-after-free when reverting termination table\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The bug is reached by installing/deleting a TC flower rule via rtnetlink (tc_new_tfilter \\u2192 mlx5e_configure_flower \\u2192 mlx5_eswitch_add_offloaded_rule \\u2192 mlx5_eswitch_add_termtbl_rule), which is a local netlink/syscall path, not remote packet processing.\\nAC:L - An attacker who can add multi-destination VLAN-push/hairpin TC flower rules can force the revert path (e.g., by exhausting memory so a later termtbl get_create fails) and then delete the successfully fallback-installed rule; this is a deterministic error-path UAF with no race outside attacker control.\\nPR:L - Creating and deleting these TC flower filters requires CAP_NET_ADMIN checked via netlink_net_capable()/ns_capable() in the network namespace\u0027s user_ns, which is obtainable through user namespaces (unshare -Urn), matching prior mlx5e FDB TC scoring (e.g., CVE-2023-52487).\\nUI:N - No victim interaction is required; the attacker installs the multi-dest termination-table rule and later deletes it entirely on their own.\\nS:U - Impact is confined to the host kernel that owns the mlx5 eswitch offload state; this is a same-authority kernel UAF with no VM escape, IOMMU bypass, or other cross-boundary effect.\\nC:H - On rule release, __mlx5_eswitch_del_rule calls mlx5_eswitch_termtbl_put() on the dangling attr-\u003edests[].termtbl pointer after the handle was already freed during revert, yielding a classic heap UAF that enables arbitrary kernel memory disclosure.\\nI:H - The same use-after-free of mlx5_termtbl_handle allows heap spray/reclaim and corruption of subsequent allocations, providing write and control-flow hijack primitives suitable for privilege escalation.\\nA:H - Any use-after-free is treated as high availability impact; exercising the dangling termtbl pointer on rule teardown can oops/panic the kernel even when not fully exploited for code execution.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"10caabdaad5ace85577a453da97d1f8d3b944427\", \"lessThan\": \"0a2d73a77060c3cbdc6e801cd5d979d674cd404b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"10caabdaad5ace85577a453da97d1f8d3b944427\", \"lessThan\": \"0d2f9d95d9fbe993f3c4bafb87d59897b0325aff\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"10caabdaad5ace85577a453da97d1f8d3b944427\", \"lessThan\": \"372eb550faa0757349040fd43f59483cbfdb2c0b\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"10caabdaad5ace85577a453da97d1f8d3b944427\", \"lessThan\": \"e6d2d26a49c3a9cd46b232975e45236304810904\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"10caabdaad5ace85577a453da97d1f8d3b944427\", \"lessThan\": \"52c795af04441d76f565c4634f893e5b553df2ae\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.3\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.3\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.4.226\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.4.*\"}, {\"status\": \"unaffected\", \"version\": \"5.10.158\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.10.*\"}, {\"status\": \"unaffected\", \"version\": \"5.15.82\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.0.12\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.0.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/0a2d73a77060c3cbdc6e801cd5d979d674cd404b\"}, {\"url\": \"https://git.kernel.org/stable/c/0d2f9d95d9fbe993f3c4bafb87d59897b0325aff\"}, {\"url\": \"https://git.kernel.org/stable/c/372eb550faa0757349040fd43f59483cbfdb2c0b\"}, {\"url\": \"https://git.kernel.org/stable/c/e6d2d26a49c3a9cd46b232975e45236304810904\"}, {\"url\": \"https://git.kernel.org/stable/c/52c795af04441d76f565c4634f893e5b553df2ae\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet/mlx5e: Fix use-after-free when reverting termination table\\n\\nWhen having multiple dests with termination tables and second one\\nor afterwards fails the driver reverts usage of term tables but\\ndoesn\u0027t reset the assignment in attr-\u003edests[num_vport_dests].termtbl\\nwhich case a use-after-free when releasing the rule.\\nFix by resetting the assignment of termtbl to null.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.4.226\", \"versionStartIncluding\": \"5.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.158\", \"versionStartIncluding\": \"5.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.82\", \"versionStartIncluding\": \"5.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.0.12\", \"versionStartIncluding\": \"5.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1\", \"versionStartIncluding\": \"5.3\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:53:31.402Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2022-49025\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:53:31.402Z\", \"dateReserved\": \"2024-08-22T01:27:53.650Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-10-21T20:06:31.189Z\", \"assignerShortName\": \"Linux\"}",
      "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…