CVE-2025-40143

CVE-2025-40143

published November 12, 2025

CVSS
—
EPSS
0%
Percentile
17.3
In the wild
Unconfirmed
What it is

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

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

Syzbot generated a program that triggers a verifier_bug() call in

maybe_exit_scc(). maybe_exit_scc() assumes that, when called for a

state with insn_idx in some SCC, there should be an instance of struct

bpf_scc_visit allocated for that SCC. Turns out the assumption does

not hold for speculative execution paths. See example in the next

patch.

maybe_scc_exit() is called from update_branch_counts() 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, update_branch_counts()

is called only for non-speculative paths.

b. Top level BPF_EXIT is reached. Such instructions are never a part of

an SCC, so compute_scc_callchain() in maybe_scc_exit() will return

false, and maybe_scc_exit() will return early.

c. A checkpoint is reached and matched. Checkpoints are created by

is_state_visited(), which calls maybe_enter_scc(), which allocates

bpf_scc_visit instances for checkpoints within SCCs.

Hence, for non-speculative symbolic execution paths, the assumption

still holds: if maybe_scc_exit() is called for a state within an SCC,

bpf_scc_visit instance must exist.

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

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00264 · 17.3th percentile
Published
2025-11-12T16:15Z
References (2)
EPSS history
Timeline
  • 12 NOV 10:23Z
    bpf: dont report verifier bug for missing bpf_scc_visit on speculative path
    cvelistv5