CVE-2026-98075: bpf: reject BPF_PSEUDO_FUNC reference to the main program

Published Sep 25, 2026
·
Updated

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

bpf: reject BPFPSEUDOFUNC reference to the main program

fixups.c:jitsubprogs() rewrites BPFPSEUDOFUNC loads to contain real function addresses. This function is invoked from bpfjitsubprogs() only when env->subprogcnt > 1. Meaning that for any program like below:

int main(void ctx) { void ptr = main; ... bpftimersetcallback(..., ptr); ... }

The 'ptr' won't be ever converted to contain an address. In combination with e.g. bpftimersetcallback() this would lead to a function call at a bogus address.

Instead of complicating the implementation, just assume that no useful program needs main to be a sync or async callback and reject BPFPSEUDOFUNC loads for the main subprogram.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:24 AM
Data Sourced
via MITRE·10:24 AM
Description

Frequently Asked Questions

1

What program pattern is required to trigger the issue?

A BPF program must create a BPF_PSEUDO_FUNC reference to its main program and use that reference as a synchronous or asynchronous callback. The described example passes the main-program reference to bpf_timer_set_callback().

2

Why does this result in a bad callback target?

The JIT subprogram fixup rewrites BPF_PSEUDO_FUNC loads to real function addresses only when env->subprog_cnt is greater than 1. A reference to the main program can therefore remain unreplaced and be used as a bogus function address.

3

How can I look for potentially affected BPF programs?

Inspect loaded or source BPF programs for BPF_PSEUDO_FUNC loads that target the entry/main subprogram, particularly where the resulting pointer is supplied to timer callbacks or other synchronous or asynchronous callback mechanisms.

4

What changes after applying the fix?

The kernel rejects BPF_PSEUDO_FUNC loads that reference the main subprogram. Programs attempting to use the main program as a callback through such a reference will no longer be accepted.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203