CVE-2024-47660

In the Linux kernel, the following vulnerability has been resolved: fsnotify: clear PARENT_WATCHED flags lazily In some setups directories can have many (usually negative) dentries. Hence __fsnotify_update_child_dentry_flags() function can take a significant amount of time. Since the bulk of this function happens under inode->i_lock this causes a significant contention on the lock when we remove the watch from the directory as the __fsnotify_update_child_dentry_flags() call from fsnotify_recalc_mask() races with __fsnotify_update_child_dentry_flags() calls from __fsnotify_parent() happening on children. This can lead upto softlockup reports reported by users. Fix the problem by calling fsnotify_update_children_dentry_flags() to set PARENT_WATCHED flags only when parent starts watching children. When parent stops watching children, clear false positive PARENT_WATCHED flags lazily in __fsnotify_parent() for each accessed child.
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:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

23 Oct 2024, 17:00

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/172e422ffea20a89bfdc672741c1aad6fbb5044e - () https://git.kernel.org/stable/c/172e422ffea20a89bfdc672741c1aad6fbb5044e - Patch
References () https://git.kernel.org/stable/c/3f3ef1d9f66b93913ce2171120d9226b55acd41d - () https://git.kernel.org/stable/c/3f3ef1d9f66b93913ce2171120d9226b55acd41d - Patch
References () https://git.kernel.org/stable/c/7ef1d2e240c32b1f337a37232d037b07e3919e1a - () https://git.kernel.org/stable/c/7ef1d2e240c32b1f337a37232d037b07e3919e1a - Patch
References () https://git.kernel.org/stable/c/d8c42405fc3507cc43ba7e4986a773c3fc633f6e - () https://git.kernel.org/stable/c/d8c42405fc3507cc43ba7e4986a773c3fc633f6e - Patch
References () https://git.kernel.org/stable/c/f9a48bc3dd9099935751458a5bbbea4b7c28abc8 - () https://git.kernel.org/stable/c/f9a48bc3dd9099935751458a5bbbea4b7c28abc8 - Patch
References () https://git.kernel.org/stable/c/fc1b1e135c3f72382f792e6c319fc088d5523ad5 - () https://git.kernel.org/stable/c/fc1b1e135c3f72382f792e6c319fc088d5523ad5 - Patch
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 4.7
CWE CWE-362
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

10 Oct 2024, 12:51

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: fsnotify: borrar indicadores PARENT_WATCHED de forma diferida En algunas configuraciones, los directorios pueden tener muchas entradas (normalmente negativas). Por lo tanto, la función __fsnotify_update_child_dentry_flags() puede tardar una cantidad significativa de tiempo. Dado que la mayor parte de esta función se realiza en inode->i_lock, esto provoca una contención significativa en el bloqueo cuando eliminamos la vigilancia del directorio, ya que la llamada __fsnotify_update_child_dentry_flags() desde fsnotify_recalc_mask() compite con las llamadas __fsnotify_update_child_dentry_flags() desde __fsnotify_parent() que ocurren en los hijos. Esto puede provocar informes de bloqueo suave informados por los usuarios. Solucione el problema llamando a fsnotify_update_children_dentry_flags() para establecer los indicadores PARENT_WATCHED solo cuando el padre comience a vigilar a los hijos. Cuando el padre deja de vigilar a los hijos, borra los indicadores de falsos positivos PARENT_WATCHED de forma diferida en __fsnotify_parent() para cada hijo al que acceda.

09 Oct 2024, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-10-09 14:15

Updated : 2024-10-23 17:00


NVD link : CVE-2024-47660

Mitre link : CVE-2024-47660

CVE.ORG link : CVE-2024-47660


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-362

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')