Lucene search

K
cvelistLinuxCVELIST:CVE-2024-41098
HistoryJul 29, 2024 - 3:48 p.m.

CVE-2024-41098 ata: libata-core: Fix null pointer dereference on error

2024-07-2915:48:11
Linux
www.cve.org
6
vulnerability
resolved
ata
libata-core
linux kernel
null pointer dereference fix
cve-2024-41098

EPSS

0

Percentile

5.0%

In the Linux kernel, the following vulnerability has been resolved:

ata: libata-core: Fix null pointer dereference on error

If the ata_port_alloc() call in ata_host_alloc() fails,
ata_host_release() will get called.

However, the code in ata_host_release() tries to free ata_port struct
members unconditionally, which can lead to the following:

BUG: unable to handle page fault for address: 0000000000003990
PGD 0 P4D 0
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 10 PID: 594 Comm: (udev-worker) Not tainted 6.10.0-rc5 #44
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014
RIP: 0010:ata_host_release.cold+0x2f/0x6e [libata]
Code: e4 4d 63 f4 44 89 e2 48 c7 c6 90 ad 32 c0 48 c7 c7 d0 70 33 c0 49 83 c6 0e 41
RSP: 0018:ffffc90000ebb968 EFLAGS: 00010246
RAX: 0000000000000041 RBX: ffff88810fb52e78 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff88813b3218c0 RDI: ffff88813b3218c0
RBP: ffff88810fb52e40 R08: 0000000000000000 R09: 6c65725f74736f68
R10: ffffc90000ebb738 R11: 73692033203a746e R12: 0000000000000004
R13: 0000000000000000 R14: 0000000000000011 R15: 0000000000000006
FS: 00007f6cc55b9980(0000) GS:ffff88813b300000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000003990 CR3: 00000001122a2000 CR4: 0000000000750ef0
PKRU: 55555554
Call Trace:
<TASK>
? __die_body.cold+0x19/0x27
? page_fault_oops+0x15a/0x2f0
? exc_page_fault+0x7e/0x180
? asm_exc_page_fault+0x26/0x30
? ata_host_release.cold+0x2f/0x6e [libata]
? ata_host_release.cold+0x2f/0x6e [libata]
release_nodes+0x35/0xb0
devres_release_group+0x113/0x140
ata_host_alloc+0xed/0x120 [libata]
ata_host_alloc_pinfo+0x14/0xa0 [libata]
ahci_init_one+0x6c9/0xd20 [ahci]

Do not access ata_port struct members unconditionally.

CNA Affected

[
  {
    "product": "Linux",
    "vendor": "Linux",
    "defaultStatus": "unaffected",
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "programFiles": [
      "drivers/ata/libata-core.c"
    ],
    "versions": [
      {
        "version": "633273a3ed1c",
        "lessThan": "d9c4df80b1b0",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "56e62977eaaa",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "e83405e75d90",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "221e3b1297e7",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "0f0d37c154bb",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "119c97ace2a9",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "8a8ff7e3b736",
        "status": "affected",
        "versionType": "git"
      },
      {
        "version": "633273a3ed1c",
        "lessThan": "5d92c7c566dc",
        "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/ata/libata-core.c"
    ],
    "versions": [
      {
        "version": "2.6.24",
        "status": "affected"
      },
      {
        "version": "0",
        "lessThan": "2.6.24",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "4.19.321",
        "lessThanOrEqual": "4.19.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.4.283",
        "lessThanOrEqual": "5.4.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.10.225",
        "lessThanOrEqual": "5.10.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "5.15.166",
        "lessThanOrEqual": "5.15.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.1.108",
        "lessThanOrEqual": "6.1.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.6.37",
        "lessThanOrEqual": "6.6.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.9.8",
        "lessThanOrEqual": "6.9.*",
        "status": "unaffected",
        "versionType": "custom"
      },
      {
        "version": "6.10",
        "lessThanOrEqual": "*",
        "status": "unaffected",
        "versionType": "original_commit_for_fix"
      }
    ]
  }
]