CVE-2025-40143

Source
https://cve.org/CVERecord?id=CVE-2025-40143
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-40143.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2025-40143
Downstream
Published
2025-11-12T10:23:25.489Z
Modified
2025-12-05T10:20:09.278079Z
Summary
bpf: dont report verifier bug for missing bpf_scc_visit on speculative path
Details

In the Linux kernel, the following vulnerability has been resolved:

bpf: dont report verifier bug for missing bpfsccvisit on speculative path

Syzbot generated a program that triggers a verifierbug() call in maybeexitscc(). maybeexitscc() assumes that, when called for a state with insnidx in some SCC, there should be an instance of struct bpfsccvisit allocated for that SCC. Turns out the assumption does not hold for speculative execution paths. See example in the next patch.

maybesccexit() is called from updatebranchcounts() for states that reach branch count of zero, meaning that path exploration for a particular path is finished. Path exploration can finish in one of three ways: a. Verification error is found. In this case, updatebranchcounts() is called only for non-speculative paths. b. Top level BPFEXIT is reached. Such instructions are never a part of an SCC, so computescccallchain() in maybesccexit() will return false, and maybesccexit() will return early. c. A checkpoint is reached and matched. Checkpoints are created by isstatevisited(), which calls maybeenterscc(), which allocates bpfscc_visit instances for checkpoints within SCCs.

Hence, for non-speculative symbolic execution paths, the assumption still holds: if maybesccexit() is called for a state within an SCC, bpfsccvisit instance must exist.

This patch removes the verifier_bug() call for speculative paths.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/40xxx/CVE-2025-40143.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
c9e31900b54cadf5398dfb838c0a63effa1defec
Fixed
3861e7c4324aa20a632fb74eb3904114f6afdb57
Fixed
a3c73d629ea1373af3c0c954d41fd1af555492e3

Affected versions

v6.*
v6.16
v6.16-rc1
v6.16-rc2
v6.16-rc3
v6.16-rc4
v6.16-rc5
v6.16-rc6
v6.16-rc7
v6.17
v6.17-rc1
v6.17-rc2
v6.17-rc3
v6.17-rc4
v6.17-rc5
v6.17-rc6
v6.17-rc7
v6.17.1
v6.17.2

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-40143.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.17.0
Fixed
6.17.3

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-40143.json"