Description
In the Linux kernel, the following vulnerability has been resolved: nvdimm/bus: Fix potential use after free in asynchronous initialization Dingisoul with KASAN reports a use after free if device_add() fails in nd_async_device_register(). Commit b6eae0f61db2 ("libnvdimm: Hold reference on parent while scheduling async init") correctly added a reference on the parent device to be held until asynchronous initialization was complete. However, if device_add() results in an allocation failure the ref count of the device drops to 0 prior to the parent pointer being accessed. Thus resulting in use after free. The bug bot AI correctly identified the fix. Save a reference to the parent pointer to be used to drop the parent reference regardless of the outcome of device_add().
Product status
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before 6fc36c2a925ceaba203eb13d75a8f0879a2c121b
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before a36cf138500e56f50db9f9a33222df6969b38326
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before 9a0fb16ba5b372465a3a1ecd761c6fa911a4ab4d
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before e48bf8f1d2b12c1c5ba1f609edbd4cde5dadc20e
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before 2c638259ad750833fd46a0cf57672a618542d84c
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before a226e5b49e5fe8c98b14f8507de670189d191348
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before 84af19855d1abdee3c9d57c0684e2868e391793c
b6eae0f61db27748606cc00dafcfd1e2c032f0a5 (git) before a8aec14230322ed8f1e8042b6d656c1631d41163
8954771abdea5c34280870e35592c7226a816d95 (git)
3e63a7f25cc85d3d3e174b9b0e3489ebb7eaf4ab (git)
1490de2bb0836fc0631c04d0559fdf81545b672f (git)
e31a8418c8df7e6771414f99ed3d95ba8aca4e05 (git)
4f1a55a4f990016406147cf3e0c9487bf83e50f0 (git)
4.4.164 (semver) before 4.5
4.9.137 (semver) before 4.10
4.14.81 (semver) before 4.15
4.18.19 (semver) before 4.19
4.19.2 (semver) before 4.20
4.20
Any version before 4.20
5.10.253 (semver)
5.15.203 (semver)
6.1.167 (semver)
6.6.130 (semver)
6.12.78 (semver)
6.18.20 (semver)
6.19.10 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/6fc36c2a925ceaba203eb13d75a8f0879a2c121b
git.kernel.org/...c/a36cf138500e56f50db9f9a33222df6969b38326
git.kernel.org/...c/9a0fb16ba5b372465a3a1ecd761c6fa911a4ab4d
git.kernel.org/...c/e48bf8f1d2b12c1c5ba1f609edbd4cde5dadc20e
git.kernel.org/...c/2c638259ad750833fd46a0cf57672a618542d84c
git.kernel.org/...c/a226e5b49e5fe8c98b14f8507de670189d191348
git.kernel.org/...c/84af19855d1abdee3c9d57c0684e2868e391793c
git.kernel.org/...c/a8aec14230322ed8f1e8042b6d656c1631d41163