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é.
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
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:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página