Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2023-52909)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
21/08/2024
Última modificación:
12/09/2024

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: nfsd: corrige el manejo de archivos abiertos almacenados en caché en la ruta de código nfsd4_open el commit fb70bf124b05 ("NFSD: crear una instancia de un archivo de estructura al crear un archivo NFSv4 normal") agregó la capacidad de almacenar en caché un fd abierto sobre un compuesto. Hay un par de problemas con la forma en que esto funciona actualmente: Es picante, ya que un nfsd_file recién creado puede terminar con su bit PENDIENTE borrado mientras el nf tiene hash, y el puntero nf_file todavía está puesto a cero. Otras tareas pueden encontrarlo en este estado y esperan ver un nf_file válido, y pueden ir si nf_file es NULL. Además, no hay garantía de que terminemos creando un nuevo nfsd_file si ya hay uno en el hash. Si una entrada existente está en el hash con un nf_file válido, nfs4_get_vfs_file golpeará su puntero nf_file con el valor de op_file y el antiguo nf_file se filtrará. Solucione ambos problemas creando una nueva variante nfsd_file_acquirei_opened que toma un puntero de archivo opcional. Si hay uno presente cuando se llama, tomaremos una nueva referencia en lugar de intentar abrir el archivo. Si el nfsd_file ya tiene un nf_file válido, simplemente ignoraremos el archivo opcional y devolveremos el nfsd_file tal como está. También vuelva a trabajar un poco los puntos de seguimiento para permitir una variante "abierta" y no intente evitar contar adquisiciones en el caso de que ya tengamos un archivo abierto en caché.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.19 (incluyendo) 6.1.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.2:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.2:rc3:*:*:*:*:*:*