CVE-2024-41087

ata: libata-core: Fix double free on error

HIGH
7.8
CVSS Score
Published: July 29, 2024 at 03:48 PM UTC
Updated: August 5, 2026 at 12:04 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.8
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: ata: libata-core: Fix double free on error If e.g. the ata_port_alloc() call in ata_host_alloc() fails, we will jump to the err_out label, which will call devres_release_group(). devres_release_group() will trigger a call to ata_host_release(). ata_host_release() calls kfree(host), so executing the kfree(host) in ata_host_alloc() will lead to a double free: kernel BUG at mm/slub.c:553! Oops: invalid opcode: 0000 [#1] PREEMPT SMP NOPTI CPU: 11 PID: 599 Comm: (udev-worker) Not tainted 6.10.0-rc5 #47 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 RIP: 0010:kfree+0x2cf/0x2f0 Code: 5d 41 5e 41 5f 5d e9 80 d6 ff ff 4d 89 f1 41 b8 01 00 00 00 48 89 d9 48 89 da RSP: 0018:ffffc90000f377f0 EFLAGS: 00010246 RAX: ffff888112b1f2c0 RBX: ffff888112b1f2c0 RCX: ffff888112b1f320 RDX: 000000000000400b RSI: ffffffffc02c9de5 RDI: ffff888112b1f2c0 RBP: ffffc90000f37830 R08: 0000000000000000 R09: 0000000000000000 R10: ffffc90000f37610 R11: 617461203a736b6e R12: ffffea00044ac780 R13: ffff888100046400 R14: ffffffffc02c9de5 R15: 0000000000000006 FS: 00007f2f1cabe980(0000) GS:ffff88813b380000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f2f1c3acf75 CR3: 0000000111724000 CR4: 0000000000750ef0 PKRU: 55555554 Call Trace: <TASK> ? __die_body.cold+0x19/0x27 ? die+0x2e/0x50 ? do_trap+0xca/0x110 ? do_error_trap+0x6a/0x90 ? kfree+0x2cf/0x2f0 ? exc_invalid_op+0x50/0x70 ? kfree+0x2cf/0x2f0 ? asm_exc_invalid_op+0x1a/0x20 ? ata_host_alloc+0xf5/0x120 [libata] ? ata_host_alloc+0xf5/0x120 [libata] ? kfree+0x2cf/0x2f0 ata_host_alloc+0xf5/0x120 [libata] ata_host_alloc_pinfo+0x14/0xa0 [libata] ahci_init_one+0x6c9/0xd20 [ahci] Ensure that we will not call kfree(host) twice, by performing the kfree() only if the devres_open_group() call failed.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.17 ≤ v < 4.19.3174.17 ≤ v < 5.10.2214.17 ≤ v < 5.15.1624.17 ≤ v < 5.4.2794.17 ≤ v < 6.1.974.17 ≤ v < 6.104.17 ≤ v < 6.6.374.17 ≤ v < 6.9.84.20 ≤ v < 5.4.2795.11 ≤ v < 5.15.1625.16 ≤ v < 6.1.975.5 ≤ v < 5.10.2216.2 ≤ v < 6.6.376.7 ≤ v < 6.9.84.17dafd6c496381c1cd1f5ba9ad953e810bdcc931bc
Vendor states this is fixed in 010de9acbea58fbcbda08e3793d6262086a493fe (fixed)
Vendor states this is fixed in 062e256516d7db5e7dcdef117f52025cd5c456e3 (fixed)
Vendor states this is fixed in 290073b2b557e4dc21ee74a1e403d9ae79e393a2 (fixed)
Vendor states this is fixed in 56f1c7e290cd6c69c948fcd2e2a49e6a637ec38f (fixed)
Vendor states this is fixed in 5dde5f8b790274723640d29a07c5a97d57d62047 (fixed)
Vendor states this is fixed in 702c1edbafb2e6f9d20f6d391273b5be09d366a5 (fixed)
Vendor states this is fixed in 8106da4d88bbaed809e023cc8014b766223d6e76 (fixed)
Vendor states this is fixed in ab9e0c529eb7cafebdd31fe1644524e80a48b05d (fixed)
Vendor states this is fixed in 4.17 (unaffected)
Vendor states this is fixed in 4.19.317 (unaffected)
Vendor states this is fixed in 5.10.221 (unaffected)
Vendor states this is fixed in 5.15.162 (unaffected)
Vendor states this is fixed in 5.4.279 (unaffected)
Vendor states this is fixed in 6.1.97 (unaffected)
Vendor states this is fixed in 6.10 (unaffected)
Vendor states this is fixed in 6.6.37 (unaffected)
Vendor states this is fixed in 6.9.8 (unaffected)

References (9)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/010de9acbea58fbcbda08e3793d6262086a493fe
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/062e256516d7db5e7dcdef117f52025cd5c456e3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/290073b2b557e4dc21ee74a1e403d9ae79e393a2
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/56f1c7e290cd6c69c948fcd2e2a49e6a637ec38f
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/5dde5f8b790274723640d29a07c5a97d57d62047
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/702c1edbafb2e6f9d20f6d391273b5be09d366a5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/8106da4d88bbaed809e023cc8014b766223d6e76
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ab9e0c529eb7cafebdd31fe1644524e80a48b05d

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.8HIGHLinux
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-415

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card