CVE-2025-22046
NoneCVSS
—
EPSS
0.2%
Published
Apr 16, 2025
CISA due date
—
Cloudanix analysis
A Linux kernel update strengthens checks on certain internal debugging addresses to stop potential misuse that could allow unexpected code to run.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw permits a uretprobe syscall trampoline check to accept addresses near the bottom of the address space when uretprobes are not configured, bypassing intended validation.
Why it matters to the business
Linux systems using uprobes face a low-probability risk of unauthorized syscall invocation, potentially enabling limited local privilege escalation or stability issues; low urgency given absence from KEV and static low EPSS over 560 days since publication.
How an attack unfolds
An attacker with local access crafts a scenario where trampoline_check_ip returns a low address allowed by mmap minimums, then invokes the uretprobe syscall without active probes to bypass the hardened check and execute unintended code paths.
How to fix it
Apply the kernel fix from commit c35771342e47d58ab9433f3be1c3c30f2c5fa4f3 or update affected packages such as libsoup to 2.72.0-8.el9_4.1 on RHEL 9.4 EUS.
How to confirm the fix worked
Confirm the presence of commit c35771342e47d58ab9433f3be1c3c30f2c5fa4f3 in the running kernel source or verify package versions match the fixed releases for libsoup components.
Typical attack path
- Obtain local execution context on an affected Linux kernel
- Configure or trigger uprobe-related syscall paths
- Supply input that causes trampoline_check_ip to evaluate a low address
- Invoke uretprobe syscall before probes are active to bypass validation
How to detect it
Examine kernel logs for uretprobe or uprobe syscall anomalies and review process activity involving low-address mappings or trampoline setups prior to the fix date.
What your security team should do
- Prioritize kernel updates containing the trampoline hardening on all systems using uprobes
- Review and restrict mmap minimum address configurations where feasible
- Monitor upstream kernel changelogs for related uprobe changes
The record
In the Linux kernel, the following vulnerability has been resolved: uprobes/x86: Harden uretprobe syscall trampoline check Jann reported a possible issue when trampoline_check_ip returns address near the bottom of the address space that is allowed to call into the syscall if uretprobes are not set up: https://lore.kernel.org/bpf/202502081235.5A6F352985@keescook/T/#m9d416df341b8fbc11737dacbcd29f0054413cbbf Though the mmap minimum address restrictions will typically prevent creating mappings there, let's make sure uretprobe syscall checks for that.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:13 | linux | 0 | No fix |
| Debian:13 | linux | 0 | 6.12.25-1 |
| Linux | Kernel | 6.11.0 | 6.12.23 |
Related vulnerabilities
- CVE-2025-39885 In the Linux kernel, the following vulnerability has been resolved: ocfs2: fix recursive… Also affects linux
- CVE-2025-39883 In the Linux kernel, the following vulnerability has been resolved: mm/memory-failure… Also affects linux
- CVE-2025-39884 In the Linux kernel, the following vulnerability has been resolved: btrfs: fix subvolume… Also affects linux
- CVE-2025-39886 In the Linux kernel, the following vulnerability has been resolved: bpf: Tell memcg to… Also affects linux
- CVE-2025-39876 In the Linux kernel, the following vulnerability has been resolved: net: fec: Fix… Also affects linux
- CVE-2025-39880 In the Linux kernel, the following vulnerability has been resolved: libceph: fix invalid… Also affects linux
- CVE-2025-39881 In the Linux kernel, the following vulnerability has been resolved: kernfs: Fix UAF in… Also affects linux
- CVE-2025-39882 In the Linux kernel, the following vulnerability has been resolved: drm/mediatek: fix… Also affects linux