CVE-2022-49026 (GCVE-0-2022-49026)
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: e100: Fix possible use after free in e100_xmit_prepare In e100_xmit_prepare(), if we can't map the skb, then return -ENOMEM, so e100_xmit_frame() will return NETDEV_TX_BUSY and the upper layer will resend the skb. But the skb is already freed, which will cause UAF bug when the upper layer resends the skb. Remove the harmful free.
Impacted products
Vendor Product Version
Linux Linux Version: 5e5d49422dfb035ca9e280cd61d434095c151272
Version: 5e5d49422dfb035ca9e280cd61d434095c151272
Version: 5e5d49422dfb035ca9e280cd61d434095c151272
Version: 5e5d49422dfb035ca9e280cd61d434095c151272
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2022-49026",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-10-22T13:11:54.975076Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-10-22T13:18:36.450Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/e100.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "b775f37d943966f6f77dca402f5a9dedce502c25",
              "status": "affected",
              "version": "5e5d49422dfb035ca9e280cd61d434095c151272",
              "versionType": "git"
            },
            {
              "lessThan": "9fc27d22cdb9b1fcd754599d216a8992fed280cd",
              "status": "affected",
              "version": "5e5d49422dfb035ca9e280cd61d434095c151272",
              "versionType": "git"
            },
            {
              "lessThan": "b46f6144ab89d3d757ead940759c505091626a7d",
              "status": "affected",
              "version": "5e5d49422dfb035ca9e280cd61d434095c151272",
              "versionType": "git"
            },
            {
              "lessThan": "45605c75c52c7ae7bfe902214343aabcfe5ba0ff",
              "status": "affected",
              "version": "5e5d49422dfb035ca9e280cd61d434095c151272",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/intel/e100.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.3"
            },
            {
              "lessThan": "4.3",
              "status": "unaffected",
              "version": "0",
              "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.10.158",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.82",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.12",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ne100: Fix possible use after free in e100_xmit_prepare\n\nIn e100_xmit_prepare(), if we can\u0027t map the skb, then return -ENOMEM, so\ne100_xmit_frame() will return NETDEV_TX_BUSY and the upper layer will\nresend the skb. But the skb is already freed, which will cause UAF bug\nwhen the upper layer resends the skb.\n\nRemove the harmful free."
        }
      ],
      "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 the e100 ndo_start_xmit path (e100_xmit_frame \u2192 e100_exec_cb \u2192 e100_xmit_prepare), reached when a local process transmits via an ordinary socket send routed over the e100 netdev; remote peers do not parse into this TX-prepare path.\nAC:L - Once DMA mapping fails, the free-then-NETDEV_TX_BUSY requeue UAF is deterministic with no race; a local attacker can induce mapping failure by exhausting swiotlb/IOMMU resources against this 32-bit DMA device, which is within attacker influence.\nPR:L - Any unprivileged local user can send packets out an up e100 interface through the generic networking stack; no CAP_NET_ADMIN or other capability is required on the transmit path.\nUI:N - The attacker triggers the TX path and resource exhaustion themselves via their own send syscalls; no victim action is required.\nS:U - This is a standard in-kernel skb heap UAF enabling local privilege escalation within the same kernel security authority, with no VM, IOMMU, or sandbox boundary crossed.\nC:H - Use-after-free of the requeued skb allows heap spraying and reuse of the freed object, enabling arbitrary kernel memory disclosure primitives.\nI:H - The same skb UAF (and the dangling cb-\u003eskb later freed again in e100_clean_cbs) enables heap corruption and write primitives suitable for control-flow hijacking or arbitrary kernel writes.\nA:H - Reusing the freed skb on TX retry or interface cleanup reliably causes kernel oops/panic even without a full exploit."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:53:32.469Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/b775f37d943966f6f77dca402f5a9dedce502c25"
        },
        {
          "url": "https://git.kernel.org/stable/c/9fc27d22cdb9b1fcd754599d216a8992fed280cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/b46f6144ab89d3d757ead940759c505091626a7d"
        },
        {
          "url": "https://git.kernel.org/stable/c/45605c75c52c7ae7bfe902214343aabcfe5ba0ff"
        }
      ],
      "title": "e100: Fix possible use after free in e100_xmit_prepare",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-49026",
    "datePublished": "2024-10-21T20:06:31.876Z",
    "dateReserved": "2024-08-22T01:27:53.651Z",
    "dateUpdated": "2026-08-05T08:53:32.469Z",
    "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-49026\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-22T13:11:54.975076Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-10-22T13:11:58.244Z\"}}], \"cna\": {\"title\": \"e100: Fix possible use after free in e100_xmit_prepare\", \"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 UAF is in the e100 ndo_start_xmit path (e100_xmit_frame \\u2192 e100_exec_cb \\u2192 e100_xmit_prepare), reached when a local process transmits via an ordinary socket send routed over the e100 netdev; remote peers do not parse into this TX-prepare path.\\nAC:L - Once DMA mapping fails, the free-then-NETDEV_TX_BUSY requeue UAF is deterministic with no race; a local attacker can induce mapping failure by exhausting swiotlb/IOMMU resources against this 32-bit DMA device, which is within attacker influence.\\nPR:L - Any unprivileged local user can send packets out an up e100 interface through the generic networking stack; no CAP_NET_ADMIN or other capability is required on the transmit path.\\nUI:N - The attacker triggers the TX path and resource exhaustion themselves via their own send syscalls; no victim action is required.\\nS:U - This is a standard in-kernel skb heap UAF enabling local privilege escalation within the same kernel security authority, with no VM, IOMMU, or sandbox boundary crossed.\\nC:H - Use-after-free of the requeued skb allows heap spraying and reuse of the freed object, enabling arbitrary kernel memory disclosure primitives.\\nI:H - The same skb UAF (and the dangling cb-\u003eskb later freed again in e100_clean_cbs) enables heap corruption and write primitives suitable for control-flow hijacking or arbitrary kernel writes.\\nA:H - Reusing the freed skb on TX retry or interface cleanup reliably causes kernel oops/panic even without a full exploit.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5e5d49422dfb035ca9e280cd61d434095c151272\", \"lessThan\": \"b775f37d943966f6f77dca402f5a9dedce502c25\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5e5d49422dfb035ca9e280cd61d434095c151272\", \"lessThan\": \"9fc27d22cdb9b1fcd754599d216a8992fed280cd\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5e5d49422dfb035ca9e280cd61d434095c151272\", \"lessThan\": \"b46f6144ab89d3d757ead940759c505091626a7d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"5e5d49422dfb035ca9e280cd61d434095c151272\", \"lessThan\": \"45605c75c52c7ae7bfe902214343aabcfe5ba0ff\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/intel/e100.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"4.3\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"4.3\", \"versionType\": \"semver\"}, {\"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/intel/e100.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/b775f37d943966f6f77dca402f5a9dedce502c25\"}, {\"url\": \"https://git.kernel.org/stable/c/9fc27d22cdb9b1fcd754599d216a8992fed280cd\"}, {\"url\": \"https://git.kernel.org/stable/c/b46f6144ab89d3d757ead940759c505091626a7d\"}, {\"url\": \"https://git.kernel.org/stable/c/45605c75c52c7ae7bfe902214343aabcfe5ba0ff\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\ne100: Fix possible use after free in e100_xmit_prepare\\n\\nIn e100_xmit_prepare(), if we can\u0027t map the skb, then return -ENOMEM, so\\ne100_xmit_frame() will return NETDEV_TX_BUSY and the upper layer will\\nresend the skb. But the skb is already freed, which will cause UAF bug\\nwhen the upper layer resends the skb.\\n\\nRemove the harmful free.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.10.158\", \"versionStartIncluding\": \"4.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.82\", \"versionStartIncluding\": \"4.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.0.12\", \"versionStartIncluding\": \"4.3\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1\", \"versionStartIncluding\": \"4.3\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:53:32.469Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2022-49026\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:53:32.469Z\", \"dateReserved\": \"2024-08-22T01:27:53.651Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-10-21T20:06:31.876Z\", \"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…