crypto: qat - protect service table iterations with service_lock
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.96, 6.18.39, 7.1.4
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: qat - protect service table iterations with service_lock The service_table list is protected by service_lock when entries are added or removed (in adf_service_add() and adf_service_remove()), but several functions iterate over the list without holding this lock. A concurrent adf_service_register() or adf_service_unregister() call could modify the list during traversal, leading to list corruption or a use-after-free. Fix this by holding service_lock across all list_for_each_entry() iterations of service_table in adf_dev_init(), adf_dev_start(), adf_dev_stop(), adf_dev_shutdown(), adf_dev_restarting_notify(), adf_dev_restarted_notify(), and adf_error_notifier(). The lock ordering is safe: callers of the static helpers (adf_dev_up() and adf_dev_down()) acquire state_lock before service_lock, and no event_hld callback or service_lock holder ever acquires state_lock in the reverse order.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From d8cba25d2c68992a6e7c1d329b690a9ebe01167d · fixed in 11d48f777cf8fad00db044f4c15cdf821427746b; From d8cba25d2c68992a6e7c1d329b690a9ebe01167d · fixed in 222fa7b453b612f4407f260146d89a2ce2bc831d; From d8cba25d2c68992a6e7c1d329b690a9ebe01167d · fixed in c3c5925791cff3b84d313293fd60f384d877d793; From d8cba25d2c68992a6e7c1d329b690a9ebe01167d · fixed in 0dbcecea740d943002c1cbdafa39bdfc108e32a5; From d8cba25d2c68992a6e7c1d329b690a9ebe01167d · fixed in 5c6f845e77ec35f9b7b047cc8f9789bf397cdd3e
- Linux Linux
3.17
- KernelLinux
From 3.17.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.96; From 6.13.0 · fixed in 6.18.39; From 6.19.0 · fixed in 7.1.4