In the Linux kernel, the following vulnerability has been resolved:
bpf: Add schedule points in batch ops
syzbot reported various soft lockups caused by bpf batch operations.
INFO: task kworker/1:1:27 blocked for more than 140 seconds. INFO: task hung in rcu_barrier
Nothing prevents batch ops to process huge amount of data, we need to add schedule points in them.
Note that maybewaitbpfprograms(map) calls from genericmapdeletebatch() can be factorized by moving the call after the loop.
This will be done later in -next tree once we get this fix merged, unless there is strong opinion doing this optimization sooner.
{ "vanir_signatures": [ { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ef94bfb08fb9e73defafbd5ddef6b5a0e2ee12b", "deprecated": false, "id": "CVE-2022-48939-0a646b06", "signature_type": "Function", "digest": { "length": 1956.0, "function_hash": "205037438290658946012649623537029228315" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_lookup_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75134f16e7dd0007aa474b281935c5f42e79f2c8", "deprecated": false, "id": "CVE-2022-48939-0adfcbdc", "signature_type": "Function", "digest": { "length": 1956.0, "function_hash": "205037438290658946012649623537029228315" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_lookup_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e8099967d0e3ff9d1ae043e80b27fbe46c08417", "deprecated": false, "id": "CVE-2022-48939-19349f3e", "signature_type": "Function", "digest": { "length": 1956.0, "function_hash": "205037438290658946012649623537029228315" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_lookup_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ef94bfb08fb9e73defafbd5ddef6b5a0e2ee12b", "deprecated": false, "id": "CVE-2022-48939-1b849ad8", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "105180040558696310586853543467702433687", "319640099726400905956026332674248861880", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "64971746807504298430610741389147333178", "292151428879155998951861677497856505388", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "121040725061099075271378064191750907701", "262500301883126549531960468871469338787", "8877648914202970368552848262239639300", "78291485283137674463897924711006411135" ] }, "target": { "file": "kernel/bpf/syscall.c" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75134f16e7dd0007aa474b281935c5f42e79f2c8", "deprecated": false, "id": "CVE-2022-48939-2af39041", "signature_type": "Function", "digest": { "length": 976.0, "function_hash": "64943191837145327115907761421204443027" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_delete_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e8099967d0e3ff9d1ae043e80b27fbe46c08417", "deprecated": false, "id": "CVE-2022-48939-2c9f1407", "signature_type": "Function", "digest": { "length": 976.0, "function_hash": "64943191837145327115907761421204443027" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_delete_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e8099967d0e3ff9d1ae043e80b27fbe46c08417", "deprecated": false, "id": "CVE-2022-48939-53dc0604", "signature_type": "Function", "digest": { "length": 1196.0, "function_hash": "94127007243851214652888800819534790756" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_update_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ef94bfb08fb9e73defafbd5ddef6b5a0e2ee12b", "deprecated": false, "id": "CVE-2022-48939-6bca42fd", "signature_type": "Function", "digest": { "length": 1196.0, "function_hash": "94127007243851214652888800819534790756" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_update_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8628f489b749a4f9767991631921dbe3fbcdc784", "deprecated": false, "id": "CVE-2022-48939-6e5f0075", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "105180040558696310586853543467702433687", "319640099726400905956026332674248861880", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "64971746807504298430610741389147333178", "292151428879155998951861677497856505388", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "121040725061099075271378064191750907701", "262500301883126549531960468871469338787", "8877648914202970368552848262239639300", "78291485283137674463897924711006411135" ] }, "target": { "file": "kernel/bpf/syscall.c" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ef94bfb08fb9e73defafbd5ddef6b5a0e2ee12b", "deprecated": false, "id": "CVE-2022-48939-6f8e0098", "signature_type": "Function", "digest": { "length": 976.0, "function_hash": "64943191837145327115907761421204443027" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_delete_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75134f16e7dd0007aa474b281935c5f42e79f2c8", "deprecated": false, "id": "CVE-2022-48939-73e11818", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "105180040558696310586853543467702433687", "319640099726400905956026332674248861880", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "64971746807504298430610741389147333178", "292151428879155998951861677497856505388", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "121040725061099075271378064191750907701", "262500301883126549531960468871469338787", "8877648914202970368552848262239639300", "78291485283137674463897924711006411135" ] }, "target": { "file": "kernel/bpf/syscall.c" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8628f489b749a4f9767991631921dbe3fbcdc784", "deprecated": false, "id": "CVE-2022-48939-7a016097", "signature_type": "Function", "digest": { "length": 976.0, "function_hash": "64943191837145327115907761421204443027" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_delete_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@75134f16e7dd0007aa474b281935c5f42e79f2c8", "deprecated": false, "id": "CVE-2022-48939-c2165b77", "signature_type": "Function", "digest": { "length": 1196.0, "function_hash": "94127007243851214652888800819534790756" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_update_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8628f489b749a4f9767991631921dbe3fbcdc784", "deprecated": false, "id": "CVE-2022-48939-dacf7b60", "signature_type": "Function", "digest": { "length": 1196.0, "function_hash": "94127007243851214652888800819534790756" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_update_batch" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7e8099967d0e3ff9d1ae043e80b27fbe46c08417", "deprecated": false, "id": "CVE-2022-48939-e9ad778c", "signature_type": "Line", "digest": { "threshold": 0.9, "line_hashes": [ "105180040558696310586853543467702433687", "319640099726400905956026332674248861880", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "64971746807504298430610741389147333178", "292151428879155998951861677497856505388", "216280687850051227961435782517834402036", "272776003745580064591833692402935941440", "121040725061099075271378064191750907701", "262500301883126549531960468871469338787", "8877648914202970368552848262239639300", "78291485283137674463897924711006411135" ] }, "target": { "file": "kernel/bpf/syscall.c" } }, { "signature_version": "v1", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8628f489b749a4f9767991631921dbe3fbcdc784", "deprecated": false, "id": "CVE-2022-48939-eab226a7", "signature_type": "Function", "digest": { "length": 1956.0, "function_hash": "205037438290658946012649623537029228315" }, "target": { "file": "kernel/bpf/syscall.c", "function": "generic_map_lookup_batch" } } ] }