Description
In the Linux kernel, the following vulnerability has been resolved: padata: Fix pd UAF once and for all There is a race condition/UAF in padata_reorder that goes back to the initial commit. A reference count is taken at the start of the process in padata_do_parallel, and released at the end in padata_serial_worker. This reference count is (and only is) required for padata_replace to function correctly. If padata_replace is never called then there is no issue. In the function padata_reorder which serves as the core of padata, as soon as padata is added to queue->serial.list, and the associated spin lock released, that padata may be processed and the reference count on pd would go away. Fix this by getting the next padata before the squeue->serial lock is released. In order to make this possible, simplify padata_reorder by only calling it once the next padata arrives.
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
16295bec6398a3eedc9377e1af6ff4c71b98c300 to < a2048e475e22b13dc3e53d485b7e6e11464ed9a6affected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < 73f132e60857038416540c3599b1de6033d7575aaffected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < 609e59193fc6d9dd323f1c6ae1fdd721f1c79680affected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < a11a12a9880ab37342b73c93cfe1a3ada02ff0dbaffected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < f231d5d001ec75f5886c02d496a4c79edc383d45affected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < dbe3e911a59bda6de96e7cae387ff882c2c177faaffected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < cdf79bd2e1ecb3cc75631c73d8f4149be6019a52affected16295bec6398a3eedc9377e1af6ff4c71b98c300 to < 71203f68c7749609d7fc8ae6ad054bdedeb24f91affected
Linux Linux
Default version status: affected
2.6.34affected0 to < 2.6.34unaffected5.10.258 to ≤ 5.10.*unaffected5.15.209 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.140 to ≤ 6.6.*unaffected6.12.86 to ≤ 6.12.*unaffected6.15.10 to ≤ 6.15.*unaffected6.16.1 to ≤ 6.16.*unaffected6.17 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a2048e475e22b13dc3e53d485b7e6e11464ed9a6 ↗
- https://git.kernel.org/stable/c/73f132e60857038416540c3599b1de6033d7575a ↗
- https://git.kernel.org/stable/c/609e59193fc6d9dd323f1c6ae1fdd721f1c79680 ↗
- https://git.kernel.org/stable/c/a11a12a9880ab37342b73c93cfe1a3ada02ff0db ↗
- https://git.kernel.org/stable/c/f231d5d001ec75f5886c02d496a4c79edc383d45 ↗
- https://git.kernel.org/stable/c/dbe3e911a59bda6de96e7cae387ff882c2c177fa ↗
- https://git.kernel.org/stable/c/cdf79bd2e1ecb3cc75631c73d8f4149be6019a52 ↗
- https://git.kernel.org/stable/c/71203f68c7749609d7fc8ae6ad054bdedeb24f91 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-784472.html ↗