Use After Free Affecting perf-debuginfo package, versions <0:6.1.102-108.177.amzn2023


Severity

Recommended
high

Based on Amazon Linux security rating.

Threat Intelligence

EPSS
0.28% (19th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-AMZN2023-PERFDEBUGINFO-13553502
  • published15 Oct 2025
  • disclosed29 Jul 2024

Introduced: 29 Jul 2024

CVE-2024-41051  (opens in a new tab)
CWE-416  (opens in a new tab)

How to fix?

Upgrade Amazon-Linux:2023 perf-debuginfo to version 0:6.1.102-108.177.amzn2023 or higher.
This issue was patched in ALAS2023-2024-679.

NVD Description

Note: Versions mentioned in the description apply only to the upstream perf-debuginfo package and not the perf-debuginfo package as distributed by Amazon-Linux. See How to fix? for Amazon-Linux:2023 relevant fixed versions and status.

In the Linux kernel, the following vulnerability has been resolved:

cachefiles: wait for ondemand_object_worker to finish when dropping object

When queuing ondemand_object_worker() to re-open the object, cachefiles_object is not pinned. The cachefiles_object may be freed when the pending read request is completed intentionally and the related erofs is umounted. If ondemand_object_worker() runs after the object is freed, it will incur use-after-free problem as shown below.

process A processs B process C process D

cachefiles_ondemand_send_req() // send a read req X // wait for its completion

       // close ondemand fd
       cachefiles_ondemand_fd_release()
       // set object as CLOSE

               cachefiles_ondemand_daemon_read()
               // set object as REOPENING
               queue_work(fscache_wq, &amp;amp;info-&amp;gt;ondemand_work)

                        // close /dev/cachefiles
                        cachefiles_daemon_release
                        cachefiles_flush_reqs
                        complete(&amp;amp;req-&amp;gt;done)

// read req X is completed // umount the erofs fs cachefiles_put_object() // object will be freed cachefiles_ondemand_deinit_obj_info() kmem_cache_free(object) // both info and object are freed ondemand_object_worker()

When dropping an object, it is no longer necessary to reopen the object, so use cancel_work_sync() to cancel or wait for ondemand_object_worker() to finish.

CVSS Base Scores

version 3.1