PatchSiren cyber security CVE debrief
CVE-2026-46196 Linux CVE debrief
A logic error in the Linux kernel's tracepoint subsystem can leave syscall tracing permanently enabled across all tasks when memory allocation fails during probe installation. The vulnerability occurs in tracepoint_add_func() when a 0→1 transition invokes ext->regfunc() before func_add(), but func_add() fails (e.g., -ENOMEM from allocate_probes()) without triggering the matching ext->unregfunc(). For syscall tracepoints, this leaks sys_tracepoint_refcount and leaves SYSCALL_TRACEPOINT set on every task, forcing unnecessary syscall entry/exit overhead until reboot. The fix adds symmetric cleanup in the func_add() error path, mirroring the existing 1→0 transition handling.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- Unknown
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-28
- Original CVE updated
- 2026-05-28
- Advisory published
- 2026-05-28
- Advisory updated
- 2026-05-28
Who should care
Linux kernel maintainers, system administrators running custom kernel builds, performance engineers monitoring syscall overhead, and security teams tracking kernel resource leak conditions
Technical summary
The tracepoint_add_func() function in the Linux kernel performs a two-phase registration: first calling the subsystem's ext->regfunc() to prepare state, then func_add() to install the probe. When func_add() fails due to memory allocation failure (-ENOMEM), the error return path omitted ext->unregfunc(), leaving subsystem state inconsistent. For syscall tracepoints specifically, syscall_regfunc() increments a global refcount and sets a per-task flag; without the matching unregfunc(), these remain set indefinitely. The fix introduces conditional unregfunc() invocation in the func_add() failure path, using the same transition-detection logic as the normal unregistration path to ensure symmetry.
Defensive priority
medium
Recommended defensive actions
- Apply kernel updates from stable branches containing the fix commits
- Monitor for abnormal syscall tracepoint refcount values in /sys/kernel/debug/tracing
- Review custom tracepoint probe loading code for error handling patterns
- Validate memory pressure handling in production kernel deployments
Evidence notes
The vulnerability description and fix details are derived from the official CVE record and NVD source data. The issue was resolved in the Linux kernel stable branches with commits addressing the missing unregfunc() call in the error path.
Official resources
-
CVE-2026-46196 CVE record
CVE.org
-
CVE-2026-46196 NVD detail
NVD
-
Source item URL
nvd_modified
-
Source reference
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
416baaa9-dc9f-4396-8d5f-8c081fb06d67
2026-05-28