In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix array bounds error with may_goto
maygoto uses an additional 8 bytes on the stack, which causes the interpreters[] array to go out of bounds when calculating index by stacksize.
If a BPF program is rewritten, re-evaluate the stack size. For non-JIT cases, reject loading directly.
For non-JIT cases, calculating interpreters[idx] may still cause out-of-bounds array access, and just warn about it.
For jitrequested cases, the execution of bpffunc also needs to be warned. So move the definition of function _bpfprogret0warn out of the macro definition CONFIGBPFJITALWAYSON.
[
{
"id": "CVE-2025-22087-087ef10a",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"122849576809979749413151235892457076018",
"332555428192899056734383580161607050039",
"56673018129006012281298962354396176483",
"61599822871235570260065347670425985024"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@19e6817f84000d0b06f09fd69ebd56217842c122"
},
{
"id": "CVE-2025-22087-1e441925",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"246726581809216418620664685560501045093",
"276922482282841305880208416502216972167",
"21882377073452230632452628498142354319",
"184535489217490668334539785884092314599",
"178587927997797748591653238322179516184",
"233754064569674417056177336338902822884",
"145701676763646283633236477437507853069",
"228351776215044595314541932343330172700",
"30394834022192060551308234050138064850",
"277659670927128269128839791371164619477",
"339663362946905303212515925505998377281",
"127640382836072058530245413427492574921",
"72442606123746711078216609405400082219",
"291902181016233376556791492161965102693",
"184958045137766062597304209841764755589",
"218641311864848413115551674721584586590"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1a86ae57b2600e5749f5f674e9d4296ac00c69a8"
},
{
"id": "CVE-2025-22087-26bb1616",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"122849576809979749413151235892457076018",
"332555428192899056734383580161607050039",
"56673018129006012281298962354396176483",
"61599822871235570260065347670425985024"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4524b7febdd55fb99ae2e1f48db64019fa69e643"
},
{
"id": "CVE-2025-22087-3b15cd9b",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"246726581809216418620664685560501045093",
"276922482282841305880208416502216972167",
"21882377073452230632452628498142354319",
"184535489217490668334539785884092314599",
"178587927997797748591653238322179516184",
"233754064569674417056177336338902822884",
"145701676763646283633236477437507853069",
"228351776215044595314541932343330172700",
"30394834022192060551308234050138064850",
"277659670927128269128839791371164619477",
"339663362946905303212515925505998377281",
"127640382836072058530245413427492574921",
"72442606123746711078216609405400082219",
"291902181016233376556791492161965102693",
"184958045137766062597304209841764755589",
"218641311864848413115551674721584586590"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4524b7febdd55fb99ae2e1f48db64019fa69e643"
},
{
"id": "CVE-2025-22087-4905f269",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "228408331394261416735997588763360265917",
"length": 268.0
},
"target": {
"file": "kernel/bpf/core.c",
"function": "bpf_prog_select_func"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1a86ae57b2600e5749f5f674e9d4296ac00c69a8"
},
{
"id": "CVE-2025-22087-54959c4a",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"246726581809216418620664685560501045093",
"276922482282841305880208416502216972167",
"21882377073452230632452628498142354319",
"184535489217490668334539785884092314599",
"178587927997797748591653238322179516184",
"233754064569674417056177336338902822884",
"145701676763646283633236477437507853069",
"228351776215044595314541932343330172700",
"30394834022192060551308234050138064850",
"277659670927128269128839791371164619477",
"339663362946905303212515925505998377281",
"127640382836072058530245413427492574921",
"72442606123746711078216609405400082219",
"291902181016233376556791492161965102693",
"184958045137766062597304209841764755589",
"218641311864848413115551674721584586590"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6ebc5030e0c5a698f1dd9a6684cddf6ccaed64a0"
},
{
"id": "CVE-2025-22087-5d27e50d",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "228408331394261416735997588763360265917",
"length": 268.0
},
"target": {
"file": "kernel/bpf/core.c",
"function": "bpf_prog_select_func"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@19e6817f84000d0b06f09fd69ebd56217842c122"
},
{
"id": "CVE-2025-22087-8787c634",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "188371648860904868998972198185045079720",
"length": 20318.0
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "do_misc_fixups"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@19e6817f84000d0b06f09fd69ebd56217842c122"
},
{
"id": "CVE-2025-22087-8bbea299",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"122849576809979749413151235892457076018",
"332555428192899056734383580161607050039",
"56673018129006012281298962354396176483",
"61599822871235570260065347670425985024"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6ebc5030e0c5a698f1dd9a6684cddf6ccaed64a0"
},
{
"id": "CVE-2025-22087-91860fdf",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "188371648860904868998972198185045079720",
"length": 20318.0
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "do_misc_fixups"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6ebc5030e0c5a698f1dd9a6684cddf6ccaed64a0"
},
{
"id": "CVE-2025-22087-965620e1",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"246726581809216418620664685560501045093",
"276922482282841305880208416502216972167",
"21882377073452230632452628498142354319",
"184535489217490668334539785884092314599",
"178587927997797748591653238322179516184",
"233754064569674417056177336338902822884",
"145701676763646283633236477437507853069",
"228351776215044595314541932343330172700",
"30394834022192060551308234050138064850",
"277659670927128269128839791371164619477",
"339663362946905303212515925505998377281",
"127640382836072058530245413427492574921",
"72442606123746711078216609405400082219",
"291902181016233376556791492161965102693",
"184958045137766062597304209841764755589",
"218641311864848413115551674721584586590"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/core.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@19e6817f84000d0b06f09fd69ebd56217842c122"
},
{
"id": "CVE-2025-22087-a8aa48e1",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "188371648860904868998972198185045079720",
"length": 20318.0
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "do_misc_fixups"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4524b7febdd55fb99ae2e1f48db64019fa69e643"
},
{
"id": "CVE-2025-22087-a94bf57a",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "228408331394261416735997588763360265917",
"length": 268.0
},
"target": {
"file": "kernel/bpf/core.c",
"function": "bpf_prog_select_func"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4524b7febdd55fb99ae2e1f48db64019fa69e643"
},
{
"id": "CVE-2025-22087-aab8dd21",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"122849576809979749413151235892457076018",
"332555428192899056734383580161607050039",
"56673018129006012281298962354396176483",
"61599822871235570260065347670425985024"
],
"threshold": 0.9
},
"target": {
"file": "kernel/bpf/verifier.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1a86ae57b2600e5749f5f674e9d4296ac00c69a8"
},
{
"id": "CVE-2025-22087-bf0b9afb",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "188371648860904868998972198185045079720",
"length": 20318.0
},
"target": {
"file": "kernel/bpf/verifier.c",
"function": "do_misc_fixups"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1a86ae57b2600e5749f5f674e9d4296ac00c69a8"
},
{
"id": "CVE-2025-22087-c18bafd4",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "228408331394261416735997588763360265917",
"length": 268.0
},
"target": {
"file": "kernel/bpf/core.c",
"function": "bpf_prog_select_func"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6ebc5030e0c5a698f1dd9a6684cddf6ccaed64a0"
}
]