Descripción
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: NFSv4.1: poner a cero las listas de llamadas referentes antes de decodificar decode_cb_sequence_args() asigna csa_rclists con kmalloc_objs(), por lo que cada referring_call_list comienza sin inicializar. decode_rc_list() asigna rcl_refcalls solo cuando rcl_nrefcalls es distinto de cero. Por lo tanto, una lista válida sin llamadas referentes deja el puntero sin inicializar, y nfs4_callback_sequence() posteriormente pasa contenido obsoleto del slab a kfree(). Se asigna csa_rclists con kzalloc_objs() para que cada miembro rcl_refcalls sea NULL desde el principio, incluidas las listas de llamadas referentes válidas y vacías.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- Linux Afectadas: 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a 810f6b3a29ac96fdc16909132b31627dae6824c2 · 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a ed54460caf5b5aa65ec03c9a6032d831f39f19f5 · 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a 7510a5b9edec9d9536a4e69f10edfb2592e6cf7f · 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a f4d23937e1c41995c2f54af26c89b5e48a41c299 · 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a f31f3c042e024aef437cda42f0424ae8d4594b6c · 4aece6a19cf7f474f15eb861ba74db4479884ce3 y anteriores a 8fa4804fe62ca4155a2d8fc2789d630376cbf2fc
- Linux Afectadas: 2.6.31 No afectadas: 6.1.191 · 6.6.160 · 6.12.114 · 6.18.57 · 7.2.6 · 7.3
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en git.kernel.orggit.kernel.org/stable/c/810f6b3a29ac96fdc16909132b31627dae6824c2
- Referencia en git.kernel.orggit.kernel.org/stable/c/ed54460caf5b5aa65ec03c9a6032d831f39f19f5
- Referencia en git.kernel.orggit.kernel.org/stable/c/7510a5b9edec9d9536a4e69f10edfb2592e6cf7f
- Referencia en git.kernel.orggit.kernel.org/stable/c/f4d23937e1c41995c2f54af26c89b5e48a41c299
- Referencia en git.kernel.orggit.kernel.org/stable/c/f31f3c042e024aef437cda42f0424ae8d4594b6c
- Referencia en git.kernel.orggit.kernel.org/stable/c/8fa4804fe62ca4155a2d8fc2789d630376cbf2fc
Ver el texto original en inglés (CVE.org)
NFSv4.1: zero referring call lists before decoding
In the Linux kernel, the following vulnerability has been resolved: NFSv4.1: zero referring call lists before decoding decode_cb_sequence_args() allocates csa_rclists with kmalloc_objs(), so each referring_call_list starts uninitialized. decode_rc_list() assigns rcl_refcalls only when rcl_nrefcalls is nonzero. A valid list with zero referring calls therefore leaves the pointer uninitialized, and nfs4_callback_sequence() later passes stale slab contents to kfree(). Allocate csa_rclists with kzalloc_objs() so every rcl_refcalls member is NULL from the beginning, including valid empty referring call lists.