Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2024-40900

cachefiles: remove requests from xarray during flushing requests

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 < 9f13aacdd4ee9a7644b2a3c96d67113cd083c9c7affected
  • c8383054506c77b814489c09877b5db83fd4abf2 to < 50d0e55356ba5b84ffb51c42704126124257e598affected
  • c8383054506c77b814489c09877b5db83fd4abf2 to < 37e19cf86a520d65de1de9cb330415c332a40d19affected
  • c8383054506c77b814489c09877b5db83fd4abf2 to < 0fc75c5940fa634d84e64c93bfc388e1274ed013affected

Linux Linux

Default version status: affected

  • 5.19affected
  • 0 to < 5.19unaffected
  • 6.1.95 to ≤ 6.1.*unaffected
  • 6.6.35 to ≤ 6.6.*unaffected
  • 6.9.6 to ≤ 6.9.*unaffected
  • 6.10 to ≤ *unaffected

References