]> git.itanic.dy.fi Git - linux-stable/commit
peci: cpu: Fix use-after-free in adev_release()
authorIwona Winiarska <iwona.winiarska@intel.com>
Tue, 5 Jul 2022 10:15:01 +0000 (12:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Sep 2022 10:43:46 +0000 (12:43 +0200)
commitc87f1f99e26ea4ae08cabe753ae98e5626bdba89
tree692e49c2328a6c91cd02155b83b822ad475cf52a
parentf25a547e7c76673dc7c83fb040c629bbeaf727ce
peci: cpu: Fix use-after-free in adev_release()

[ Upstream commit 1c11289b34ab67ed080bbe0f1855c4938362d9cf ]

When auxiliary_device_add() returns an error, auxiliary_device_uninit()
is called, which causes refcount for device to be decremented and
.release callback will be triggered.

Because adev_release() re-calls auxiliary_device_uninit(), it will cause
use-after-free:
[ 1269.455172] WARNING: CPU: 0 PID: 14267 at lib/refcount.c:28 refcount_warn_saturate+0x110/0x15
[ 1269.464007] refcount_t: underflow; use-after-free.

Reported-by: Jianglei Nie <niejianglei2021@163.com>
Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
Link: https://lore.kernel.org/r/20220705101501.298395-1-iwona.winiarska@intel.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/peci/cpu.c