In the Linux kernel, the following vulnerability has been resolved:
bpf: fix check for attempt to corrupt spilled pointer
When register is spilled onto a stack as a 1/2/4-byte register, we set slottype[BPFREGSIZE - 1] (plus potentially few more below it, depending on actual spill size). So to check if some stack slot has spilled register we need to consult slottype[7], not slot_type[0].
To avoid the need to remember and double-check this in the future, just use isspilledreg() helper.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fc3e3c50a0a4cac1463967c110686189e4a59104",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-245b2783",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2701.0,
"function_hash": "149470494566077809916996795691902971687"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fc3e3c50a0a4cac1463967c110686189e4a59104",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-3a40cb63",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ab125ed3ec1c10ccc36bc98c7a4256ad114a3dae",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-51efb532",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ab125ed3ec1c10ccc36bc98c7a4256ad114a3dae",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-8f5d93b3",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2789.0,
"function_hash": "260636064971908003479455938042818820696"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2757f17972d87773b3677777f5682510f13c66ef",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-a50e3aa9",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@67e6707f07354ed1acb4e65552e97c60cf9d69cf",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-b216326f",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@67e6707f07354ed1acb4e65552e97c60cf9d69cf",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-b5004802",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2674.0,
"function_hash": "208450740381010780036235478632225705939"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8dc15b0670594543c356567a1a45b0182ec63174",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-d906ab0d",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2757f17972d87773b3677777f5682510f13c66ef",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-e0b28aeb",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2706.0,
"function_hash": "10639994002113925912289483378272359498"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8dc15b0670594543c356567a1a45b0182ec63174",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-f680f450",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2766.0,
"function_hash": "137438487940574202321642154342745166893"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40617d45ea05535105e202a8a819e388a2b1f036",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-f8afa053",
"target": {
"function": "check_stack_write_fixed_off",
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Function",
"digest": {
"length": 2766.0,
"function_hash": "137438487940574202321642154342745166893"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@40617d45ea05535105e202a8a819e388a2b1f036",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-52462-f8d208b1",
"target": {
"file": "kernel/bpf/verifier.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"120479785694815220596365721381549225881",
"32158529433173311406635683457184472193",
"212795957514370926546637850354883904680",
"5199993739622906985049441396370371524"
]
}
}
]