In the Linux kernel, the following vulnerability has been resolved:
crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
ADF_STATUS_PF_RUNNING is (only) used and checked by adf_vf2pf_shutdown()
before calling adf_iov_putmsg()->mutex_lock(vf2pf_lock), however the
vf2pf_lock is initialized in adf_dev_init(), which can fail and when it
fail, the vf2pf_lock is either not initialized or destroyed, a subsequent
use of vf2pf_lock will cause issue.
To fix this issue, only set this flag if adf_dev_init() returns 0.
[ 7.178404] BUG: KASAN: user-memory-access in __mutex_lock.isra.0+0x1ac/0x7c0
[ 7.180345] Call Trace:
[ 7.182576] mutex_lock+0xc9/0xd0
[ 7.183257] adf_iov_putmsg+0x118/0x1a0 [intel_qat]
[ 7.183541] adf_vf2pf_shutdown+0x4d/0x7b [intel_qat]
[ 7.183834] adf_dev_shutdown+0x172/0x2b0 [intel_qat]
[ 7.184127] adf_probe+0x5e9/0x600 [qat_dh895xccvf]
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/crypto/qat/qat_c3xxxvf/adf_drv.c",
"drivers/crypto/qat/qat_c62xvf/adf_drv.c",
"drivers/crypto/qat/qat_dh895xccvf/adf_drv.c"
],
"versions": [
{
"version": "25c6ffb249f6",
"lessThan": "f4c4e0714068",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "446045cf682a",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "09d16cee6285",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "05ec8192ee4b",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "1f50392650ae",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "20fd40fc6f2c",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "1ea500ce6f7c",
"status": "affected",
"versionType": "git"
},
{
"version": "25c6ffb249f6",
"lessThan": "8609f5cfdc87",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/crypto/qat/qat_c3xxxvf/adf_drv.c",
"drivers/crypto/qat/qat_c62xvf/adf_drv.c",
"drivers/crypto/qat/qat_dh895xccvf/adf_drv.c"
],
"versions": [
{
"version": "4.7",
"status": "affected"
},
{
"version": "0",
"lessThan": "4.7",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.9.269",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.14.233",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.191",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.119",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.37",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.11.21",
"lessThanOrEqual": "5.11.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.12.4",
"lessThanOrEqual": "5.12.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.13",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/05ec8192ee4bfdf2a8894a68350dac9f1a155fa6
git.kernel.org/stable/c/09d16cee6285d37cc76311c29add6d97a7e4acda
git.kernel.org/stable/c/1ea500ce6f7c9106e4a561d28e69215f3d451818
git.kernel.org/stable/c/1f50392650ae794a1aea41c213c6a3e1c824413c
git.kernel.org/stable/c/20fd40fc6f2c2b41dc6f637f88d494b14e9c21f1
git.kernel.org/stable/c/446045cf682af12d9294765f6c46084b374b5654
git.kernel.org/stable/c/8609f5cfdc872fc3a462efa6a3eca5cb1e2f6446
git.kernel.org/stable/c/f4c4e07140687f42bfa40e091bb4a55d7960ce4d