Skip to main content

Linux Kernel CVE-2026-90347

| EUVDEUVD-2026-82008 HIGH
2026-09-17 Linux GHSA-rg84-frxc-rfcx
8.4
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Local unprivileged shell access
  2. Delivery
    Install seccomp SECCOMP_RET_TRACE filter and attach ptrace tracer
  3. Exploit
    Modify tracee x0 at syscall-entry stop
  4. Execution
    orig_x0 left stale during filter re-evaluation
  5. Impact
    Syscall runs with disallowed argument, evading seccomp/audit

Vulnerability Assessment

Exploitation Conditions

Requires local access and the attacker to be a ptrace tracer of the target process (feasible for one's own children under default YAMA ptrace_scope), AND a seccomp filter that uses SECCOMP_RET_TRACE so that syscall-entry traps re-run the filter after a tracer modification. Exploitation is limited to the arm64 architecture and to deployments that actually rely on seccomp argument filtering or audit for security decisions; it does not affect default configurations lacking a SECCOMP_RET_TRACE tracer, and there is no remote or unauthenticated path (PR:L, AV:L). The consequence is bypass of the first-argument policy check, not direct code execution or memory corruption.

Impact

This is a genuine seccomp/audit security-control bypass on arm64 Linux, but the raw metrics overstate it. The vendor CVSS 3.1 base of 8.4 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N) treats the flaw as if it directly reads and modifies sensitive data. In reality the bug keeps 'orig_x0' out of sync with x0 after a tracer updates x0 during a SECCOMP_RET_TRACE ptrace stop, so seccomp re-evaluation and audit see a stale first argument while the syscall executes with the new one - this defeats argument-based seccomp filtering and audit logging (an integrity/control-bypass problem), not a memory-corruption or information-leak primitive, so the C:H component is questionable and C:L/I:H is more honest. No exploitation-probability signals reinforce urgency: EPSS is absent, this is NOT in CISA KEV (no confirmed active exploitation), and no public PoC is referenced. All exploitation is local (AV:L) and requires the attacker to already hold ptrace capability over the tracee plus a seccomp SECCOMP_RET_TRACE configuration, which sharply narrows realistic impact versus a network-facing 8.4. The 'Information Disclosure' tag conflicts with the actual behavior (a filter/audit bypass) and should be treated with caution. Net: a real defense-in-depth weakness worth patching in sandbox/container hosts, but a lower operational priority than its 8.4 suggests - closer to a mid-7 severity, with no evidence of in-the-wild use.

Exploit ScenarioDerived

A local unprivileged user constructs a sandbox that combines a seccomp SECCOMP_RET_TRACE filter with an attacker-controlled ptrace tracer, then, at the syscall-entry stop, rewrites the tracee's x0 register. Because 'orig_x0' is not resynchronized before the seccomp filter is re-evaluated, the argument-based filter and audit subsystem inspect the old value while the kernel executes the syscall with the substituted first argument, bypassing the intended policy. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 18, 2026

Seccomp argument filtering can be bypassed on arm64 Linux kernels because 'orig_x0' is not resynchronised with the register value (x0) carried in 'pt_regs' when a ptrace tracer rewrites the first syscall argument at syscall-entry time. A local attacker who is permitted to ptrace the target process (feasible for one's own children under the default YAMA ptrace_scope=1) and who is facing a seccomp filter that uses SECCOMP_RET_TRACE can therefore change argument zero between the tracer's update and the filter's re-evaluation, causing the seccomp policy - and any audit record derived from it - to be evaluated against stale data and to permit a syscall that the policy was meant to deny. This is an incomplete fix of the earlier upstream change e057b9477232 and affects arm64 kernels going back to Linux 4.8; there is no public exploit identified at time of analysis, no CISA KEV listing, and the impact is a security-control bypass rather than memory corruption or direct code execution, which is why the independently assessed vector (C:L/I:H) is lower on confidentiality than the raw 8.4 score.

RemediationAI

Vendor-released patch: update to a kernel that contains the arm64 ptrace fix - the stable backports 88b839ce497ccb1ff92f7ae742c78dd2937ba572 and f433869f23841a50455c4087d85540d5b4d37cde, corresponding to the remediated releases EUVD lists as 7.2.6 and 7.3-rc1 (see https://git.kernel.org/stable/c/88b839ce497ccb1ff92f7ae742c78dd2937ba572 and the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-90347). Because the vulnerable behaviour only matters when a SECCOMP_RET_TRACE tracer is combined with seccomp argument filtering, a viable interim mitigation on arm64 is to stop relying on argument 0 (x0) for security decisions in SECCOMP_RET_TRACE filters - for example by converting those rules to SECCOMP_RET_ERRNO/SECCOMP_RET_KILL or by enforcing the decision in an LSM such as AppArmor/SELinux instead - with the trade-off that you lose seccomp-based syscall emulation and tracer-mediated allow/deny semantics that those filters provided. Tightening YAMA by setting kernel.yama.ptrace_scope to 2 or 3 blocks non-parent tracing, but note the default scope of 1 already permits tracing your own children, so this only helps against tracing of unrelated processes and will break legitimate debuggers, profilers and sandboxes. Dropping CAP_SYS_PTRACE from sandboxed or untrusted workloads (for example via container capability sets or systemd RestrictNamespaces/CapabilityBoundingSet=) removes the tracer side of the exploit at the cost of losing in-process debugging and some crash-analysis tooling. Prioritise patching over these controls, since none of them fully closes the orig_x0 desynchronisation.

Affected VersionsENISA

Linux a5cd110cb8369d6b37ef5ccfe56b3fa1338c9615 <88b839ce497ccb1ff92f7ae742c78dd2937ba572
Linux patch: 7.2.6
Linux patch: 7.3-rc1
Linux patch: 0
Linux 4.8
Linux a5cd110cb8369d6b37ef5ccfe56b3fa1338c9615 <f433869f23841a50455c4087d85540d5b4d37cde

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

On arm64, syscall entry stores the user register file in 'struct pt_regs', where x0 holds the first syscall argument and orig_x0 is a preserved copy used by seccomp and audit logic. The upstream fix e057b9477232 tried to ensure that a tracer modifying x0 through PTRACE_SETREGSET would also be reflected in the value that seccomp evaluates, addressing a long-standing hole in which a tracing process could rewrite the first argument without that rewrite being subjected to seccomp or audit checks. That fix was incomplete: it updated x0 but not orig_x0 when a SECCOMP_RET_TRACE seccomp-ptrace exit handed control to the tracer, so the filter was re-evaluated using the stale orig_x0 while the syscall itself proceeded with the tracer-supplied x0. The flaw is fundamentally a synchronisation/state-coherency defect between two kernel subsystems (seccomp and ptrace) rather than a memory-safety bug - it is an access-control decision made on inconsistent state, in the class of incorrect-authorization / security-check-bypass issues (a CWE identifier was not supplied in the source data). The upstream resolution avoids bolting extra hooks onto the core seccomp path and instead moves the synchronisation into the ptrace GPR and syscall-setting code so that orig_x0 tracks x0 whenever the task is stopped on the syscall-entry path. CPE records (cpe:2.3:a:linux:linux) mark the kernel as affected across versions, and ENISA EUVD tracks it as EUVD-2026-82008 with the arm64 commit a5cd110cb8369d6b37ef5ccfe56b3fa1338c9615 identified as the introduction point.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 8.4 HIGH
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
vuln.today AI 7.3 HIGH

Local ptrace+seccomp setup is within attacker control (AV:L/AC:L/PR:L); bypassing a sandbox security control crosses a trust boundary (S:C) with high integrity impact but no direct leak or DoS (C:L/I:H/A:N).

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

4
CVSS changed
Sep 18, 2026 - 18:22 NVD
8.4 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:08 cve.org
HIGH 8.4
CVE Published
Sep 17, 2026 - 16:08 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

arm64: ptrace: Keep 'orig_x0' in-sync with x0 on syscall entry

Commit e057b9477232 ("arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates") attempted to resolve a long-standing issue with syscall entry tracing, where a tracer is able to manipulate the first syscall argument without being subjected to seccomp or audit checking.

Unfortunately, that fix was incomplete [1], as it failed to update 'orig_x0' between a tracer updating x0 during a seccomp ptrace exit (SECCOMP_RET_TRACE) and the seccomp filter being re-evaluated.

Rather than add hooks to the core seccomp code, instead move the synchronisation code into the ptrace GPR and syscall setting code so that 'orig_x0' is kept up to date with x0 whenever we're stopped on the syscall entry path.

Executive ViewAI

Why It Matters

A flaw in arm64 Linux kernels (versions 4.8 and later) allows the seccomp syscall-filtering mechanism to be bypassed, meaning security policies that workloads and container platforms rely on to restrict system calls may silently permit operations they were configured to block. Organizations running arm64 Linux on cloud instances, container hosts, or multi-tenant compute are exposed wherever a local process can attach a ptrace tracer to a child process - a low bar on default-configured systems. While there is no public exploit identified at time of analysis, the exposure is a weakening of a foundational isolation control rather than a simple application bug, so platform and container teams should treat it as a hardening priority rather than an emergency.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
High
arm64 Linux with seccomp sandboxing is pervasive across Android, cloud ARM, and containers
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

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