In the Linux kernel, the following vulnerability has been resolved: rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails If getting an ID or setting up a work queue in rbd_dev_create() fails, use-after-free on rbd_dev->rbd_client, rbd_dev->spec and rbd_dev->opts is triggered in do_rbd_add(). The root cause is that the ownership of these structures is transfered to rbd_dev prematurely and they all end up getting freed when rbd_dev_create() calls rbd_dev_free() prior to returning to do_rbd_add(). Found by Linux Verification Center (linuxtesting.org) with SVACE, an incomplete patch submitted by Natalia Petrova <[email protected]>.
https://git.kernel.org/stable/c/faa7b683e436664fff5648426950718277831348
https://git.kernel.org/stable/c/f7c4d9b133c7a04ca619355574e96b6abf209fba
https://git.kernel.org/stable/c/e3cbb4d60764295992c95344f2d779439e8b34ce
https://git.kernel.org/stable/c/cc8c0dd2984503ed09efa37bcafcef3d3da104e8
https://git.kernel.org/stable/c/ae16346078b1189aee934afd872d9f3d0a682c33
https://git.kernel.org/stable/c/a73783e4e0c4d1507794da211eeca75498544dff
https://git.kernel.org/stable/c/9787b328c42c13c4f31e7d5042c4e877e9344068
https://git.kernel.org/stable/c/71da2a151ed1adb0aea4252b16d81b53012e7afd