In the Linux kernel, the following vulnerability has been resolved:
sysctl: Fix data races in procdouintvecminmax().
A sysctl variable is accessed concurrently, and there is always a chance of data-race. So, all readers and writers need some basic protection to avoid load/store-tearing.
This patch changes procdouintvecminmax() to use READONCE() and WRITEONCE() internally to fix data-races on the sysctl side. For now, procdouintvecminmax() itself is tolerant to a data-race, but we still need to add annotations on the other subsystem's side.
[
{
"id": "CVE-2022-49640-0cb02499",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "do_proc_douintvec_minmax_conv",
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b60eddf98b9716651069dfda296c91311a7a6293",
"deprecated": false,
"digest": {
"length": 428.0,
"function_hash": "145152170518865989254362898586485218502"
}
},
{
"id": "CVE-2022-49640-3a5f3775",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b60eddf98b9716651069dfda296c91311a7a6293",
"deprecated": false,
"digest": {
"line_hashes": [
"326809844386807667223667661739575105577",
"242856724098149974409336473532074597943",
"99927561585526914514058670764641269594",
"3772378418612330565640726444931235628"
],
"threshold": 0.9
}
},
{
"id": "CVE-2022-49640-4f8a3fee",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40e0477a7371d101c55b69d9c32a7a1ed82ab5ea",
"deprecated": false,
"digest": {
"line_hashes": [
"326809844386807667223667661739575105577",
"242856724098149974409336473532074597943",
"99927561585526914514058670764641269594",
"3772378418612330565640726444931235628"
],
"threshold": 0.9
}
},
{
"id": "CVE-2022-49640-6a5bdce3",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3a2144b3b6bf9ecafd91087c8b8b48171ec19df",
"deprecated": false,
"digest": {
"line_hashes": [
"326809844386807667223667661739575105577",
"242856724098149974409336473532074597943",
"99927561585526914514058670764641269594",
"3772378418612330565640726444931235628"
],
"threshold": 0.9
}
},
{
"id": "CVE-2022-49640-7b73680e",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "do_proc_douintvec_minmax_conv",
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40e0477a7371d101c55b69d9c32a7a1ed82ab5ea",
"deprecated": false,
"digest": {
"length": 428.0,
"function_hash": "145152170518865989254362898586485218502"
}
},
{
"id": "CVE-2022-49640-922eddab",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2d3b559df3ed39258737789aae2ae7973d205bc1",
"deprecated": false,
"digest": {
"line_hashes": [
"326809844386807667223667661739575105577",
"242856724098149974409336473532074597943",
"99927561585526914514058670764641269594",
"3772378418612330565640726444931235628"
],
"threshold": 0.9
}
},
{
"id": "CVE-2022-49640-c0f416df",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "do_proc_douintvec_minmax_conv",
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e3a2144b3b6bf9ecafd91087c8b8b48171ec19df",
"deprecated": false,
"digest": {
"length": 428.0,
"function_hash": "145152170518865989254362898586485218502"
}
},
{
"id": "CVE-2022-49640-d738d8b5",
"signature_type": "Function",
"signature_version": "v1",
"target": {
"function": "do_proc_douintvec_minmax_conv",
"file": "kernel/sysctl.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2d3b559df3ed39258737789aae2ae7973d205bc1",
"deprecated": false,
"digest": {
"length": 428.0,
"function_hash": "145152170518865989254362898586485218502"
}
}
]