In the Linux kernel, the following vulnerability has been resolved:
mm/swapfile: add condresched() in getswap_pages()
The softlockup still occurs in getswappages() under memory pressure. 64 CPU cores, 64GB memory, and 28 zram devices, the disksize of each zram device is 50MB with same priority as si. Use the stress-ng tool to increase memory pressure, causing the system to oom frequently.
The plistforeachentrysafe() loops in getswappages() could reach tens of thousands of times to find available space (extreme case: condresched() is not called in scanswapmapslots()). Let's add condresched() into getswap_pages() when failed to find available space to avoid softlockup.
[
{
"digest": {
"line_hashes": [
"171833165328026865150321974162759397274",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@29f0349c5c76b627fe06b87d4b13fa03a6ce8e64",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-0ffbf9a2",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5dbe1ebd56470d03b78fc31491a9e4d433106ef2",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-462f3bcd",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d49c85a1913385eed46dd16a25ad0928253767f0",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-4f93e852",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "311131197703793214433539222946588550112",
"length": 1718.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@29f0349c5c76b627fe06b87d4b13fa03a6ce8e64",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-5155916e",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "108197304210331229260163130713697989939",
"length": 1762.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@387217b97e99699c34e6d95ce2b91b327fcd853e",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-6c8b4f35",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@30187be29052bba9203b0ae2bdd815e0bc2faaab",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-77f34a3d",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "71638735686222205171807687030719925791",
"length": 1787.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@30187be29052bba9203b0ae2bdd815e0bc2faaab",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-7f4b997e",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "71638735686222205171807687030719925791",
"length": 1787.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7717fc1a12f88701573f9ed897cc4f6699c661e3",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-90b709ea",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7717fc1a12f88701573f9ed897cc4f6699c661e3",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-90db011c",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@49178d4d61e78aed8c837dfeea8a450700f196e2",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-96b9d92d",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "71638735686222205171807687030719925791",
"length": 1787.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@49178d4d61e78aed8c837dfeea8a450700f196e2",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-b6eb068e",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "71638735686222205171807687030719925791",
"length": 1787.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5dbe1ebd56470d03b78fc31491a9e4d433106ef2",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-b9ff68f0",
"signature_type": "Function",
"signature_version": "v1"
},
{
"digest": {
"line_hashes": [
"43469807756375564923559485686361188601",
"36476973470132636955164674701212799569",
"28828766863997918074035440242262344546",
"319158298361621155708787810247653861892"
],
"threshold": 0.9
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@387217b97e99699c34e6d95ce2b91b327fcd853e",
"target": {
"file": "mm/swapfile.c"
},
"id": "CVE-2023-52932-d8fefd7a",
"signature_type": "Line",
"signature_version": "v1"
},
{
"digest": {
"function_hash": "108197304210331229260163130713697989939",
"length": 1762.0
},
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d49c85a1913385eed46dd16a25ad0928253767f0",
"target": {
"file": "mm/swapfile.c",
"function": "get_swap_pages"
},
"id": "CVE-2023-52932-e9dd1ff4",
"signature_type": "Function",
"signature_version": "v1"
}
]