IM
IronMonkey Threat Research

CVE-2024-26659 HIGH

Published: 2024-04-02 | Last Modified: 2026-08-04 | Status: Modified

Description

In the Linux kernel, the following vulnerability has been resolved: xhci: handle isoc Babble and Buffer Overrun events properly xHCI 4.9 explicitly forbids assuming that the xHC has released its ownership of a multi-TRB TD when it reports an error on one of the early TRBs. Yet the driver makes such assumption and releases the TD, allowing the remaining TRBs to be freed or overwritten by new TDs. The xHC should also report completion of the final TRB due to its IOC flag being set by us, regardless of prior errors. This event cannot be recognized if the TD has already been freed earlier, resulting in "Transfer event TRB DMA ptr not part of current TD" error message. Fix this by reusing the logic for processing isoc Transaction Errors. This also handles hosts which fail to report the final completion. Fix transfer length reporting on Babble errors. They may be caused by device malfunction, no guarantee that the buffer has been filled.

Additional Descriptions (1)

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: xhci: maneja correctamente los eventos isoc Babble y Buffer Overrun xHCI 4.9 prohíbe explícitamente suponer que xHC ha liberado su propiedad de un TD multi-TRB cuando informa un error en uno de los primeros TRB. Sin embargo, el conductor hace tal suposición y libera el TD, permitiendo que los TRB restantes sean liberados o sobrescritos por nuevos TD. El xHC también debe informar la finalización del TRB final debido a que nosotros establecimos la bandera del COI, independientemente de los errores anteriores. Este evento no se puede reconocer si el TD ya se liberó anteriormente, lo que genera el mensaje de error "Evento de transferencia TRB DMA ptr no forma parte del TD actual". Solucione este problema reutilizando la lógica para procesar errores de transacción isoc. Esto también maneja los hosts que no informan la finalización final. Se corrigió el informe de duración de la transferencia sobre errores de Babble. Pueden deberse a un mal funcionamiento del dispositivo, no hay garantía de que se haya llenado el búfer.

CVSS Metrics

Base Score: 5.5 (MEDIUM)

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Attack VectorLOCAL
Attack ComplexityLOW
Privileges RequiredLOW
User InteractionNONE
ScopeUNCHANGED
Confidentiality ImpactNONE
Integrity ImpactNONE
Availability ImpactHIGH

Source: [email protected]

Type: Primary

Exploitability Score: 1.8

Impact Score: 3.6

Weaknesses

Source Type Description
[email protected] Primary
en CWE-787

Affected Products

Vendor Product Version Update Type
linux linux_kernel * <built-in method update of dict object at 0x7fd3694234c0> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd5116cc9c0> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd36ad59240> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd36ad5bbc0> Operating System
linux linux_kernel * <built-in method update of dict object at 0x7fd369759180> Operating System
linux linux_kernel 6.8 <built-in method update of dict object at 0x7fd384a4f2c0> Operating System
linux linux_kernel 6.8 <built-in method update of dict object at 0x7fd368ee6200> Operating System
debian debian_linux 10.0 <built-in method update of dict object at 0x7fd386754b80> Operating System

Affected Configurations

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:6.8:rc1:*:*:*:*:*:*
Yes cpe:2.3:o:linux:linux_kernel:6.8:rc2:*:*:*:*:*:*

Operator: OR

Vulnerable CPE
Yes cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*

References