tee: amdtee: fix race condition in amdtee_open_session
authorRijo Thomas <Rijo-john.Thomas@amd.com>
Tue, 28 Feb 2023 09:41:20 +0000 (15:11 +0530)
committerJens Wiklander <jens.wiklander@linaro.org>
Tue, 28 Feb 2023 17:39:19 +0000 (18:39 +0100)
commitf8502fba45bd30e1a6a354d9d898bc99d1a11e6d
tree590c40c2643308ba20233918ef7068e7eb02ee42
parentc9c3395d5e3dcc6daee66c6908354d47bf98cb0c
tee: amdtee: fix race condition in amdtee_open_session

There is a potential race condition in amdtee_open_session that may
lead to use-after-free. For instance, in amdtee_open_session() after
sess->sess_mask is set, and before setting:

    sess->session_info[i] = session_info;

if amdtee_close_session() closes this same session, then 'sess' data
structure will be released, causing kernel panic when 'sess' is
accessed within amdtee_open_session().

The solution is to set the bit sess->sess_mask as the last step in
amdtee_open_session().

Fixes: 757cc3e9ff1d ("tee: add AMD-TEE driver")
Cc: stable@vger.kernel.org
Signed-off-by: Rijo Thomas <Rijo-john.Thomas@amd.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
drivers/tee/amdtee/core.c