CVE-2025-38528: bpf: Reject %p% format string in bprintf-like helpers
In the Linux kernel, the following vulnerability has been resolved:
bpf: Reject %p% format string in bprintf-like helpers
static const char fmt[] = "%p%";
bpf_trace_printk(fmt, sizeof(fmt));
The above BPF program isn't rejected and causes a kernel warning at
runtime:
Please remove unsupported %\x00 in format string
WARNING: CPU: 1 PID: 7244 at lib/vsprintf.c:2680 format_decode+0x49c/0x5d0
This happens because bpf_bprintf_prepare skips over the second %,
detected as punctuation, while processing %p. This patch fixes it by
not skipping over punctuation. %\x00 is then processed in the next
iteration and rejected.
Security readout for executives and security teams
Plain-English summary
A locally authenticated user able to load relevant BPF programs could submit malformed formatting that the kernel mishandles, producing a kernel warning and reported confidentiality and availability risk. This is not described as remotely exploitable. The correction rejects the malformed input before it reaches runtime formatting.
Executive priority
Prioritize highly on multi-user hosts, developer platforms, and compute services where less-trusted users can access BPF. Schedule an urgent kernel update and reboot. Priority may be lower on tightly controlled single-purpose systems after validating access and affected builds. No active exploitation is established by the supplied evidence.
Technical view
bpf_bprintf_prepare incorrectly skipped the second percent character after %p as punctuation, allowing a malformed format to reach format_decode and trigger a kernel warning. The fix processes that character and rejects the invalid sequence. CVSS is 7.1 with local, low-privileged access; the disclosed example demonstrates a warning, not the full scored impact.
Likely exposure
Exposure concerns Linux systems on affected kernel lines where a low-privileged local user can reach the relevant BPF helpers. The bundle lists affected version values from 5.13 through 6.16, but its flattened data cannot establish exact vulnerable distribution builds. Vendor backports and running kernels require verification.
Exploitation context
The bundle marks this CVE as absent from KEV. No supplied source claims active exploitation or public weaponization. The disclosed trigger is a malformed BPF format string that reaches runtime and produces a kernel warning. The CVSS vector requires local, low-privileged access; practical disclosure or crash reliability is not demonstrated.
Researcher notes
The bundle provides no CWE, exploit report, or outcome beyond the runtime warning. Although CVSS assigns high confidentiality and availability impacts, the supplied description does not demonstrate those consequences. Six stable-kernel fix commits and a Debian LTS advisory are referenced. Determine exposure using distribution backport records rather than kernel version strings alone.
Mitigation direction
Install the vendor-supplied kernel update containing the applicable stable fix, then reboot into it.
Use distribution advisories and package changelogs to identify the backported fixed build.
If updating is delayed, seek vendor-approved workarounds; the supplied sources name none.
Reduce untrusted local access and BPF-loading permission where operationally feasible until patched.
Validation and detection
Inventory running kernel and distribution package versions on systems that permit BPF use.
Match vendor changelogs or backports to CVE-2025-38528 and the cited stable fix commits.
Verify each system booted the corrected kernel after installation.
Review kernel logs for the described unsupported-format warning; absence alone does not prove safety.
Confirm less-trusted local users cannot load relevant BPF programs where policy forbids it.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-38528 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
8Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.