In the Linux kernel, the following vulnerability has been resolved:
crypto: qcom-rng - fix infinite loop on requests not multiple of WORD_SZ
The commit referenced in the Fixes tag removed the ‘break’ from the else
branch in qcom_rng_read(), causing an infinite loop whenever ‘max’ is
not a multiple of WORD_SZ. This can be reproduced e.g. by running:
kcapi-rng -b 67 >/dev/null
There are many ways to fix this without adding back the ‘break’, but
they all seem more awkward than simply adding it back, so do just that.
Tested on a machine with Qualcomm Amberwing processor.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/crypto/qcom-rng.c"
],
"versions": [
{
"version": "a8e32bbb96c2",
"lessThan": "71a89789552b",
"status": "affected",
"versionType": "git"
},
{
"version": "184f7bd08ce5",
"lessThan": "8be06f62b426",
"status": "affected",
"versionType": "git"
},
{
"version": "0f9b7b8df175",
"lessThan": "233a3cc60e7a",
"status": "affected",
"versionType": "git"
},
{
"version": "ab9337c7cb6f",
"lessThan": "8a06f25f5941",
"status": "affected",
"versionType": "git"
},
{
"version": "a680b1832ced",
"lessThan": "05d4d17475d8",
"status": "affected",
"versionType": "git"
},
{
"version": "a680b1832ced",
"lessThan": "16287397ec5c",
"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/qcom-rng.c"
],
"versions": [
{
"version": "5.17",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.17",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.245",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.196",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.118",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.42",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.17.10",
"lessThanOrEqual": "5.17.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.18",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/05d4d17475d8d094c519bb51658bc47899c175e3
git.kernel.org/stable/c/16287397ec5c08aa58db6acf7dbc55470d78087d
git.kernel.org/stable/c/233a3cc60e7a8fe0be8cf9934ae7b67ba25a866c
git.kernel.org/stable/c/71a89789552b7faf3ef27969b9bc783fa0df3550
git.kernel.org/stable/c/8a06f25f5941c145773204f2f7abef95b4ffb8ce
git.kernel.org/stable/c/8be06f62b426801dba43ddf8893952a0e62ab6ae