CVE-2024-40900 in Linux
Сводка
по VulDB • 30.08.2026
В ядре Linux была устранена следующая уязвимость:
cachefiles: удаление запросов из xarray во время их обработки (flushing).
Даже при установленном флаге CACHEFILES_DEAD мы по-прежнему можем считывать эти запросы, поэтому в условиях конкурентного доступа может произойти использование памяти после её освобождения (use-after-free) для данного запроса:
mount | daemon_thread1 | daemon_thread2 ------------------------------------------------------------ cachefiles_ondemand_init_object cachefiles_ondemand_send_req REQ_A = kzalloc(sizeof(*req) + data_len) wait_for_completion(&REQ_A->done) cachefiles_daemon_read cachefiles_ondemand_daemon_read // закрытие дескриптора файла устройства (dev fd) cachefiles_flush_reqs complete(&REQ_A->done) kfree(REQ_A) xa_lock(&cache->reqs); cachefiles_ondemand_select_req req->msg.opcode != CACHEFILES_OP_READ // use-after-free для req !!! xa_unlock(&cache->reqs); xa_destroy(&cache->reqs)
Следовательно, необходимо удалять запросы из cache->reqs при их обработке (flushing), чтобы избежать доступа к освобождённым объектам.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.