Descripción
En el Linux kernel se resolvió la siguiente vulnerabilidad: nfsd: corrección de un posible fh_compose del dentry incorrecto en nfsd4_create_file() Hipotéticamente, dentry_create() puede entregar un dentry distinto del que se le pasó. Esto podría ocurrir, por ejemplo, si el sistema de archivos exportado es NFS y el servidor devolvió a OPEN un filehandle que coincidía con un directorio que ya estaba en el dcache. Evidentemente, esto no sería lo esperado. Si esto ocurriera, el dentry (hijo) ya almacenado en resfhp podría liberarse y desreferenciarse posteriormente. No se debe llamar a fh_compose() hasta tener la certeza de contar con el dentry final, por lo que este parche movió la llamada a fh_compose() a dos lugares: uno para el caso en que el destino ya existe y otro después de dentry_create(), donde se creó.
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: 64a989dbd144e0622371396461b11335459692d2 y anteriores a 033e783709ce99662cf81f6abcad746a8da9d35f · 64a989dbd144e0622371396461b11335459692d2 y anteriores a 3e2c79360c6a89975ec5b5a7d4ef937e4db91a27
- Linux Afectadas: 7.0 No afectadas: 7.2.4 · 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/033e783709ce99662cf81f6abcad746a8da9d35f
- Referencia en git.kernel.orggit.kernel.org/stable/c/3e2c79360c6a89975ec5b5a7d4ef937e4db91a27
Ver el texto original en inglés (CVE.org)
nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file()
In the Linux kernel, the following vulnerability has been resolved: nfsd: fix possible fh_compose of wrong dentry in nfsd4_create_file() dentry_create() can hypothetically provide a different dentry than the one passed in. This could happen, for example, if the exported filesystem is NFS, and the server returned to OPEN a filehandle which matched a directory that was already in the dcache. Clearly this would not be expected! If this were to happen the dentry (child) that was already stored in resfhp could be freed and later dereferenced. We shouldn't call fh_compose() until we are certain that we have the final dentry, so this patch moved the fh_compose() call to two places: one for the case where the target already exists, and one after dentry_create() where it was created.