CVE-2024-35985

In the Linux kernel, the following vulnerability has been resolved: sched/eevdf: Prevent vlag from going out of bounds in reweight_eevdf() It was possible to have pick_eevdf() return NULL, which then causes a NULL-deref. This turned out to be due to entity_eligible() returning falsely negative because of a s64 multiplcation overflow. Specifically, reweight_eevdf() computes the vlag without considering the limit placed upon vlag as update_entity_lag() does, and then the scaling multiplication (remember that weight is 20bit fixed point) can overflow. This then leads to the new vruntime being weird which then causes the above entity_eligible() to go side-ways and claim nothing is eligible. Thus limit the range of vlag accordingly. All this was quite rare, but fatal when it does happen.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*

History

16 Jan 2025, 16:43

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*
References () https://git.kernel.org/stable/c/06f27e6d7bf0abf54488259ef36bbf0e1fccb35c - () https://git.kernel.org/stable/c/06f27e6d7bf0abf54488259ef36bbf0e1fccb35c - Patch
References () https://git.kernel.org/stable/c/1560d1f6eb6b398bddd80c16676776c0325fe5fe - () https://git.kernel.org/stable/c/1560d1f6eb6b398bddd80c16676776c0325fe5fe - Patch
References () https://git.kernel.org/stable/c/470d347b14b0ecffa9b39cf8f644fa2351db3efb - () https://git.kernel.org/stable/c/470d347b14b0ecffa9b39cf8f644fa2351db3efb - Patch
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux linux Kernel
Linux
CWE CWE-476

21 Nov 2024, 09:21

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/06f27e6d7bf0abf54488259ef36bbf0e1fccb35c - () https://git.kernel.org/stable/c/06f27e6d7bf0abf54488259ef36bbf0e1fccb35c -
References () https://git.kernel.org/stable/c/1560d1f6eb6b398bddd80c16676776c0325fe5fe - () https://git.kernel.org/stable/c/1560d1f6eb6b398bddd80c16676776c0325fe5fe -
References () https://git.kernel.org/stable/c/470d347b14b0ecffa9b39cf8f644fa2351db3efb - () https://git.kernel.org/stable/c/470d347b14b0ecffa9b39cf8f644fa2351db3efb -
Summary
  • (es) En el kernel de Linux, se resolvió la siguiente vulnerabilidad: sched/eevdf: evita que vlag se salga de los límites en reweight_eevdf(). Era posible que pick_eevdf() devolviera NULL, lo que luego causa un NULL-deref. Esto resultó ser debido a que entidad_eligible() devolvió un resultado falso negativo debido a un desbordamiento de multiplicación s64. Específicamente, reweight_eevdf() calcula el vlag sin considerar el límite impuesto a vlag como lo hace update_entity_lag(), y luego la multiplicación de escala (recuerde que el peso es un punto fijo de 20 bits) puede desbordarse. Esto luego lleva a que el nuevo vruntime sea extraño, lo que luego hace que la entidad_eligible() anterior se desvíe y afirme que nada es elegible. Por lo tanto, limite el rango de vlag en consecuencia. Todo esto fue bastante raro, pero fatal cuando sucede.

20 May 2024, 10:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-20 10:15

Updated : 2025-01-16 16:43


NVD link : CVE-2024-35985

Mitre link : CVE-2024-35985

CVE.ORG link : CVE-2024-35985


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference