Skip to main content

Linux Kernel EUVDEUVD-2026-48795

| CVE-2026-64451 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-07-25 Linux GHSA-xvp7-xr44-89mj
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local tracefs write required with no confidentiality or integrity impact; kernel panic is the sole outcome, yielding A:H only.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
MEDIUM
qualitative
Red Hat
5.5 LOW
qualitative

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Sep 03, 2026 - 15:38 vuln.today
CVSS changed
Sep 03, 2026 - 15:37 NVD
5.5 (MEDIUM)
Patch available
Jul 25, 2026 - 11:18 EUVD
CVE Published
Jul 25, 2026 - 08:51 nvd
MEDIUM 5.5
CVE Published
Jul 25, 2026 - 08:51 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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

tracing: Fix NULL pointer dereference in func_set_flag()

func_set_flag() dereferences tr->current_trace_flags before verifying that the current tracer is actually the function tracer. When the active tracer has been switched away from "function" (e.g., to "wakeup_rt"), tr->current_trace_flags can be NULL, leading to a NULL pointer dereference and kernel crash.

The call chain that triggers this is:

trace_options_write() -> __set_tracer_option() -> trace->set_flag() /* func_set_flag */

In func_set_flag(), the first operation is:

if (!!set == !!(tr->current_trace_flags->val & bit))

This dereferences tr->current_trace_flags unconditionally. The safety check that guards against a non-function tracer:

if (tr->current_trace != &function_trace) return 0;

is placed *after* the dereference, which is too late.

This was observed with the following crash dump:

BUG: unable to handle page fault at 0000000000000000 RIP: func_set_flag+0xd

Call Trace: __set_tracer_option+0x27 trace_options_write+0x75 vfs_write+0x12a ksys_write+0x66 do_syscall_64+0x5b

RIP: ffffffff914c973d RSP: ff67ec88b01dfdf0 RFLAGS: 00010202 RAX: 0000000000000000 RBX: ff3a826e80354580 RCX: 0000000000000001 RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffffffff93918080

The disassembly confirms the fault:

func_set_flag+0: mov 0x1f08(%rdi), %rax ; RAX = tr->current_trace_flags = NULL func_set_flag+13: mov (%rax), %eax ; page fault: dereference NULL

At the time of the crash: tr->current_trace_flags = 0x0 (NULL) tr->current_trace = wakeup_rt_tracer (not function_trace)

The scenario is that a process opens a function tracer option file (such as "func_stack_trace"), then the current tracer is switched to another tracer (e.g., "wakeup_rt"), which sets current_trace_flags to NULL. When the process subsequently writes to the option file, func_set_flag() is invoked and crashes on the NULL dereference.

Fix this by moving the current_trace check before the current_trace_flags dereference, so that func_set_flag() returns early when the function tracer is not active.

AnalysisAI

NULL pointer dereference in the Linux kernel tracing subsystem (func_set_flag()) allows a local attacker with tracefs write access to trigger a kernel panic and crash the system. The flaw arises when a process holds an open file descriptor to a function tracer option (e.g., func_stack_trace) while a concurrent tracer switch sets tr->current_trace_flags to NULL; a subsequent write to that option file then dereferences the NULL pointer before the function tracer guard executes. No active exploitation (KEV) or public exploit code has been identified; EPSS is 0.20% at the 10th percentile, consistent with a localized, technically specific DoS condition.

Technical ContextAI

The vulnerability resides in kernel/trace/trace_functions.c, within func_set_flag(), which is a callback invoked via the trace_options_write()__set_tracer_option()trace->set_flag() call chain when a user writes to tracefs option files (typically mounted under /sys/kernel/debug/tracing/). CWE-476 (NULL Pointer Dereference) applies precisely: the function unconditionally dereferences tr->current_trace_flags->val at its first instruction, but the guard that validates the function tracer is still active (if (tr->current_trace != &function_trace) return 0) appears afterward. When a tracer switch occurs (e.g., to wakeup_rt), the kernel sets current_trace_flags to NULL as part of deactivating the function tracer context. A subsequent write via any previously opened file descriptor reaches func_set_flag() and faults at offset +0xd on a zero-page access, as confirmed by the crash register dump (RAX=0, RIP: func_set_flag+0xd). CPE data identifies the Linux kernel (cpe:2.3:a:linux:linux:*) in versions from commit 76680d0d2825900f23bf35290ab2b80bdf3a8e4a up to but not including the fix commits. The patch is a one-line reorder moving the early-return guard above the dereference.

RemediationAI

Apply the vendor-released stable kernel patches at https://git.kernel.org/stable/c/69f17ac132a38974cf1defb480cef6b79d1ab768 or https://git.kernel.org/stable/c/c3e94604675e3db186111b8942650d86577df9b0, upgrading to Linux 7.1.4, 6.19, or 7.2-rc3 as applicable to your stable series. If immediate patching is not feasible, restrict or remove non-root access to tracefs by remounting with mode 700 (mount -o remount,mode=700 /sys/kernel/debug) or unmounting debugfs entirely (umount /sys/kernel/debug); be aware this will break ftrace-based profiling tools, bpftrace, perf's ftrace backend, and similar observability tooling. Alternatively, prevent loading of the function tracer module (modprobe -r function_trace) if your kernel supports it as a module, which eliminates the vulnerable code path.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected

Share

EUVD-2026-48795 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy