{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-42069", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-07-29T15:50:41.168Z", "datePublished": "2024-07-29T15:52:33.273Z", "dateUpdated": "2026-08-05T11:35:28.180Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:35:28.180Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: mana: Fix possible double free in error handling path\n\nWhen auxiliary_device_add() returns error and then calls\nauxiliary_device_uninit(), callback function adev_release\ncalls kfree(madev). We shouldn't call kfree(madev) again\nin the error handling path. Set 'madev' to NULL." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable `add_adev()` is reached only through the MANA PCI probe/resume paths (`mana_gd_probe()`/`mana_gd_resume()` → `mana_probe()`), driven by local device binding, PCI hot-add and power-management events. No remotely received network data reaches this code, and the failing `auxiliary_device_add()` name/id are kernel-generated, so even a malicious device cannot steer it.\nAC:L - The only precondition is an allocation failure inside `dev_set_name()`/`device_add()`, which a local attacker can induce by driving the system into memory pressure while repeatedly cycling the probe path until the window is hit. Nothing in the path depends on state outside the attacker's influence, and the attempt can be retried indefinitely.\nPR:L - The triggering condition — memory exhaustion making `GFP_KERNEL` allocations fail — is fully inducible by an ordinary unprivileged local user, and MANA probe events also occur unprivileged in Azure guests (boot, host-initiated VF hot-add/revoke during servicing and live migration). This matches the scoring of CVE-2026-43056, the sibling defect in the identical error path of this same function.\nUI:N - The entire sequence runs inside kernel probe/resume context with no human action required — no mount, file open, or click. Probe is driven by the PCI/driver core and by host-initiated hotplug.\nS:U - The double free and use-after-free corrupt kernel slab objects within the same security authority as the vulnerable driver. No VM, IOMMU, or sandbox boundary is crossed.\nC:H - `mana_adev_idx_free(adev->id)` reads `adev->id` out of memory already released by `adev_release()`, and the subsequent double free creates a SLUB freelist cycle that hands the same `kmalloc-1k`/`kmalloc-2k` object to two independent allocations. Because that is a general-purpose cache shared with attacker-sprayable objects, the resulting type confusion is leverageable into a kernel memory disclosure primitive.\nI:H - A double free giving two owners of one slab object is the classic dup-alloc primitive: the attacker reclaims the chunk with a groomed structure while the driver still writes through the stale `struct device`/`auxiliary_device` fields, yielding arbitrary write and function-pointer hijack. The stale `adev->id` is additionally fed into `ida_free()`, corrupting global IDA allocator state.\nA:H - On kernels with `CONFIG_SLAB_FREELIST_HARDENED`, the immediate re-free trips `set_freepointer()`'s `BUG_ON(object == fp)` for a hard kernel panic; without it, the poisoned freelist causes an oops or arbitrary corruption shortly after. Either outcome takes down the machine and can be re-triggered on every probe cycle." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/ethernet/microsoft/mana/mana_en.c" ], "versions": [ { "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f", "lessThan": "3243e64eb4d897c3eeb48b2a7221ab5a95e1282a", "status": "affected", "versionType": "git" }, { "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f", "lessThan": "ed45c0a0b662079d4c0e518014cc148c753979b4", "status": "affected", "versionType": "git" }, { "version": "a69839d4327d053b18d8e1b0e7ddeee78db78f4f", "lessThan": "1864b8224195d0e43ddb92a8151f54f6562090cc", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/ethernet/microsoft/mana/mana_en.c" ], "versions": [ { "version": "6.2", "status": "affected" }, { "version": "0", "lessThan": "6.2", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.37", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.9.8", "lessThanOrEqual": "6.9.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.10", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.6.37" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.9.8" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.2", "versionEndExcluding": "6.10" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/3243e64eb4d897c3eeb48b2a7221ab5a95e1282a" }, { "url": "https://git.kernel.org/stable/c/ed45c0a0b662079d4c0e518014cc148c753979b4" }, { "url": "https://git.kernel.org/stable/c/1864b8224195d0e43ddb92a8151f54f6562090cc" } ], "title": "net: mana: Fix possible double free in error handling path", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://git.kernel.org/stable/c/3243e64eb4d897c3eeb48b2a7221ab5a95e1282a", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/ed45c0a0b662079d4c0e518014cc148c753979b4", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/1864b8224195d0e43ddb92a8151f54f6562090cc", "tags": [ "x_transferred" ] }, { "url": "https://lists.debian.org/debian-lts-announce/2025/03/msg00028.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T19:30:29.384Z" } }, { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-42069", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-09-10T16:19:49.454221Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-09-11T17:33:08.299Z" } } ] } }