Description
In the Linux kernel, the following vulnerability has been resolved: cachefiles: remove requests from xarray during flushing requests Even with CACHEFILES_DEAD set, we can still read the requests, so in the following concurrency the request may be used after it has been freed: 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 // close 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 // req use-after-free !!! xa_unlock(&cache->reqs); xa_destroy(&cache->reqs) Hence remove requests from cache->reqs when flushing them to avoid accessing freed requests.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
c8383054506c77b814489c09877b5db83fd4abf2 to < 9f13aacdd4ee9a7644b2a3c96d67113cd083c9c7affectedc8383054506c77b814489c09877b5db83fd4abf2 to < 50d0e55356ba5b84ffb51c42704126124257e598affectedc8383054506c77b814489c09877b5db83fd4abf2 to < 37e19cf86a520d65de1de9cb330415c332a40d19affectedc8383054506c77b814489c09877b5db83fd4abf2 to < 0fc75c5940fa634d84e64c93bfc388e1274ed013affected
Linux Linux
Default version status: affected
5.19affected0 to < 5.19unaffected6.1.95 to ≤ 6.1.*unaffected6.6.35 to ≤ 6.6.*unaffected6.9.6 to ≤ 6.9.*unaffected6.10 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/9f13aacdd4ee9a7644b2a3c96d67113cd083c9c7 ↗
- https://git.kernel.org/stable/c/50d0e55356ba5b84ffb51c42704126124257e598 ↗
- https://git.kernel.org/stable/c/37e19cf86a520d65de1de9cb330415c332a40d19 ↗
- https://git.kernel.org/stable/c/0fc75c5940fa634d84e64c93bfc388e1274ed013 ↗
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html ↗