CVE-2024-35858 (GCVE-0-2024-35858)
Vulnerability from cvelistv5
Published
2024-05-17 14:47
Modified
2026-08-05 11:30
Summary
In the Linux kernel, the following vulnerability has been resolved: net: bcmasp: fix memory leak when bringing down interface When bringing down the TX rings we flush the rings but forget to reclaimed the flushed packets. This leads to a memory leak since we do not free the dma mapped buffers. This also leads to tx control block corruption when bringing down the interface for power management.
Impacted products
Vendor Product Version
Linux Linux Version: 490cb412007de593e07c1d3e2b1ec4233886707c
Version: 490cb412007de593e07c1d3e2b1ec4233886707c
Version: 490cb412007de593e07c1d3e2b1ec4233886707c
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T03:21:49.040Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/09040baf8779ad880e0e0d0ea10e57aa929ef3ab"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/2389ad1990163d29cba5480d693b4c2e31cc545c"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/9f898fc2c31fbf0ac5ecd289f528a716464cb005"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-35858",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:41:37.023681Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:17.762Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "09040baf8779ad880e0e0d0ea10e57aa929ef3ab",
              "status": "affected",
              "version": "490cb412007de593e07c1d3e2b1ec4233886707c",
              "versionType": "git"
            },
            {
              "lessThan": "2389ad1990163d29cba5480d693b4c2e31cc545c",
              "status": "affected",
              "version": "490cb412007de593e07c1d3e2b1ec4233886707c",
              "versionType": "git"
            },
            {
              "lessThan": "9f898fc2c31fbf0ac5ecd289f528a716464cb005",
              "status": "affected",
              "version": "490cb412007de593e07c1d3e2b1ec4233886707c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.30",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.8.*",
              "status": "unaffected",
              "version": "6.8.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.9",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.30",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8.9",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.9",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bcmasp: fix memory leak when bringing down interface\n\nWhen bringing down the TX rings we flush the rings but forget to\nreclaimed the flushed packets. This leads to a memory leak since we\ndo not free the dma mapped buffers. This also leads to tx control\nblock corruption when bringing down the interface for power\nmanagement."
        }
      ],
      "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 vulnerable code is the `bcmasp_netif_deinit()` teardown path of a platform Ethernet driver, reached only via `ndo_stop` (`ip link set down`) or a local PM suspend/resume cycle. No received packet or remote protocol interaction can drive interface teardown, so this requires local system access.\nAC:L - The triggering party controls both halves \u2014 flooding fragmented TX traffic guarantees in-flight descriptors at teardown, and the tiny `DESC_RING_COUNT` ring wraps into the stale `tx_cbs` region within milliseconds of resuming, so the premature `dev_consume_skb_any()` and subsequent double free are deterministic and repeatable. No unpredictable memory layout or victim state is required.\nPR:L - On the BRCMSTB set-top/embedded systems this driver targets, the suspend-to-WoL standby cycle that produces the `tx_cbs` corruption is an automatic system event, not an attacker privilege; an unprivileged local process only needs to be generating fragmented TX traffic when it occurs. Choosing the higher-severity option between low privilege and root, since the corruption path does not itself depend on CAP_NET_ADMIN.\nUI:N - Idle/autosleep standby entry and admin-scripted interface cycling (NetworkManager, DHCP renewal, WoL standby) occur with no victim action. The leak accrues on every interface-down with no interaction at all.\nS:U - The leaked memory, freed skbs, and corrupted slab freelist all live within the kernel\u0027s own security authority. There is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The stale `last` flag frees an skb (releasing its fragment page references) while later descriptors for that same skb are still pending in the hardware ring and still DMA-mapped, so reallocated pages holding other processes\u0027 data can be DMA\u0027d out onto the wire. The resulting `skbuff_head_cache` double free additionally yields overlapping allocations usable as a kernel read primitive.\nI:H - Freeing the same skb twice corrupts the SLUB freelist, allowing two live objects to alias the same memory \u2014 the standard route to a controlled kernel write and control-flow hijack. Skipped `dma_unmap_single()` also leaves the device with live mappings into memory that has been returned to the allocator.\nA:H - The double free trips SLUB\u0027s detection (BUG/panic) or silently corrupts the allocator into a later oops. Independently, the unreclaimed skbs and DMA mappings leak on every interface-down, exhausting memory and SWIOTLB/IOVA space over repeated up/down or standby cycles."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:30:22.967Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/09040baf8779ad880e0e0d0ea10e57aa929ef3ab"
        },
        {
          "url": "https://git.kernel.org/stable/c/2389ad1990163d29cba5480d693b4c2e31cc545c"
        },
        {
          "url": "https://git.kernel.org/stable/c/9f898fc2c31fbf0ac5ecd289f528a716464cb005"
        }
      ],
      "title": "net: bcmasp: fix memory leak when bringing down interface",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-35858",
    "datePublished": "2024-05-17T14:47:33.401Z",
    "dateReserved": "2024-05-17T13:50:33.106Z",
    "dateUpdated": "2026-08-05T11:30:22.967Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/09040baf8779ad880e0e0d0ea10e57aa929ef3ab\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/2389ad1990163d29cba5480d693b4c2e31cc545c\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/9f898fc2c31fbf0ac5ecd289f528a716464cb005\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T03:21:49.040Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-35858\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:41:37.023681Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:15.986Z\"}}], \"cna\": {\"title\": \"net: bcmasp: fix memory leak when bringing down interface\", \"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 vulnerable code is the `bcmasp_netif_deinit()` teardown path of a platform Ethernet driver, reached only via `ndo_stop` (`ip link set down`) or a local PM suspend/resume cycle. No received packet or remote protocol interaction can drive interface teardown, so this requires local system access.\\nAC:L - The triggering party controls both halves \\u2014 flooding fragmented TX traffic guarantees in-flight descriptors at teardown, and the tiny `DESC_RING_COUNT` ring wraps into the stale `tx_cbs` region within milliseconds of resuming, so the premature `dev_consume_skb_any()` and subsequent double free are deterministic and repeatable. No unpredictable memory layout or victim state is required.\\nPR:L - On the BRCMSTB set-top/embedded systems this driver targets, the suspend-to-WoL standby cycle that produces the `tx_cbs` corruption is an automatic system event, not an attacker privilege; an unprivileged local process only needs to be generating fragmented TX traffic when it occurs. Choosing the higher-severity option between low privilege and root, since the corruption path does not itself depend on CAP_NET_ADMIN.\\nUI:N - Idle/autosleep standby entry and admin-scripted interface cycling (NetworkManager, DHCP renewal, WoL standby) occur with no victim action. The leak accrues on every interface-down with no interaction at all.\\nS:U - The leaked memory, freed skbs, and corrupted slab freelist all live within the kernel\u0027s own security authority. There is no VM, IOMMU, or sandbox boundary crossed.\\nC:H - The stale `last` flag frees an skb (releasing its fragment page references) while later descriptors for that same skb are still pending in the hardware ring and still DMA-mapped, so reallocated pages holding other processes\u0027 data can be DMA\u0027d out onto the wire. The resulting `skbuff_head_cache` double free additionally yields overlapping allocations usable as a kernel read primitive.\\nI:H - Freeing the same skb twice corrupts the SLUB freelist, allowing two live objects to alias the same memory \\u2014 the standard route to a controlled kernel write and control-flow hijack. Skipped `dma_unmap_single()` also leaves the device with live mappings into memory that has been returned to the allocator.\\nA:H - The double free trips SLUB\u0027s detection (BUG/panic) or silently corrupts the allocator into a later oops. Independently, the unreclaimed skbs and DMA mappings leak on every interface-down, exhausting memory and SWIOTLB/IOVA space over repeated up/down or standby cycles.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"490cb412007de593e07c1d3e2b1ec4233886707c\", \"lessThan\": \"09040baf8779ad880e0e0d0ea10e57aa929ef3ab\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"490cb412007de593e07c1d3e2b1ec4233886707c\", \"lessThan\": \"2389ad1990163d29cba5480d693b4c2e31cc545c\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"490cb412007de593e07c1d3e2b1ec4233886707c\", \"lessThan\": \"9f898fc2c31fbf0ac5ecd289f528a716464cb005\", \"versionType\": \"git\"}], \"programFiles\": [\"drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.6\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.6\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.6.30\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8.9\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.8.*\"}, {\"status\": \"unaffected\", \"version\": \"6.9\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"drivers/net/ethernet/broadcom/asp2/bcmasp_intf.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/09040baf8779ad880e0e0d0ea10e57aa929ef3ab\"}, {\"url\": \"https://git.kernel.org/stable/c/2389ad1990163d29cba5480d693b4c2e31cc545c\"}, {\"url\": \"https://git.kernel.org/stable/c/9f898fc2c31fbf0ac5ecd289f528a716464cb005\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nnet: bcmasp: fix memory leak when bringing down interface\\n\\nWhen bringing down the TX rings we flush the rings but forget to\\nreclaimed the flushed packets. This leads to a memory leak since we\\ndo not free the dma mapped buffers. This also leads to tx control\\nblock corruption when bringing down the interface for power\\nmanagement.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.30\", \"versionStartIncluding\": \"6.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8.9\", \"versionStartIncluding\": \"6.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.9\", \"versionStartIncluding\": \"6.6\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:30:22.967Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-35858\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:30:22.967Z\", \"dateReserved\": \"2024-05-17T13:50:33.106Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-17T14:47:33.401Z\", \"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…