Description
In the Linux kernel, the following vulnerability has been resolved: ipc/shm: serialize orphan cleanup with shm_nattch updates shm_destroy_orphaned() walks the shm idr under shm_ids(ns).rwsem, but that does not serialize all fields tested by shm_may_destroy(). In particular, shm_nattch is updated while holding shm_perm.lock, and attach paths can do that without holding the rwsem. Do not decide that an orphaned segment is unused before taking the object lock. Move the shm_may_destroy() check under shm_perm.lock, matching the other destroy paths, and unlock the segment when it no longer qualifies for removal.
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
4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < b1e9aef48e4d8a0c1b54fb913077b0824ed7d650affected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < 92cda2593cf2ed25b0e9d78e5e6d8303bba1a064affected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < 1f0d01e35dbb228084d5187212e32c91a30dcbebaffected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < 6560be3f6a5bb84f006f184f0c966747bb58e1a3affected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < b5107b4ce3ad45fcf369ee2058c8910620f4b5a8affected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < db752ebfdaf2c7f27cd9690ef48b616af068319caffected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < 030bbc857bd51d4b25a90d931d3f8775ef22823aaffected4c677e2eefdba9c5bfc4474e2e91b26ae8458a1d to < 2e5c6f4fd4001562781e99bbfc7f1f0127187542affected
Linux Linux
Default version status: affected
3.1affected0 to < 3.1unaffected5.10.259 to ≤ 5.10.*unaffected5.15.210 to ≤ 5.15.*unaffected6.1.176 to ≤ 6.1.*unaffected6.6.143 to ≤ 6.6.*unaffected6.12.94 to ≤ 6.12.*unaffected6.18.36 to ≤ 6.18.*unaffected7.0.13 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b1e9aef48e4d8a0c1b54fb913077b0824ed7d650 ↗
- https://git.kernel.org/stable/c/92cda2593cf2ed25b0e9d78e5e6d8303bba1a064 ↗
- https://git.kernel.org/stable/c/1f0d01e35dbb228084d5187212e32c91a30dcbeb ↗
- https://git.kernel.org/stable/c/6560be3f6a5bb84f006f184f0c966747bb58e1a3 ↗
- https://git.kernel.org/stable/c/b5107b4ce3ad45fcf369ee2058c8910620f4b5a8 ↗
- https://git.kernel.org/stable/c/db752ebfdaf2c7f27cd9690ef48b616af068319c ↗
- https://git.kernel.org/stable/c/030bbc857bd51d4b25a90d931d3f8775ef22823a ↗
- https://git.kernel.org/stable/c/2e5c6f4fd4001562781e99bbfc7f1f0127187542 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-784472.html ↗