CVE-2026-68171

Source
https://cve.org/CVERecord?id=CVE-2026-68171
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68171.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-68171
Downstream
Published
2026-08-10T11:59:40.623Z
Modified
2026-08-12T04:18:46.321049106Z
Summary
arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates
Details

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

arm64: syscall: Ensure saved x0 is kept in-sync with tracer updates

When seccomp support was originally added to arm64 in a1ae65b21941 ("arm64: add seccomp support"), seccomp was erroneously called before the ptrace syscall-enter-stop and therefore the tracer could trivially manipulate the syscall register state after the seccomp check had passed. This was subsequently fixed in a5cd110cb836 ("arm64/ptrace: run seccomp after ptrace") by moving the seccomp check after the tracer has run. Unfortunately, a decade later, that fix has been reported to be incomplete.

On arm64, both the first argument to a syscall and its eventual return value are allocated to register x0. In order to facilitate syscall restarting and querying of syscall arguments on the syscall exit path, the original value of x0 is stashed in 'struct ptregs::origx0' early during the syscall entry path and is returned for the first argument by syscallgetarguments(). Unlike 32-bit Arm, this stashed value is not directly exposed via ptrace() and so changes to register x0 made by the tracer on a syscall-enter-stop are not reflected in 'orig_x0'. This means that seccomp, syscall tracepoints and audit can observe a stale value for the register compared to the argument that will be observed by the actual syscall.

Re-sync 'origx0' from x0 on the syscall entry path following a potential ptrace stop (i.e. PTRACEEVENTMSGSYSCALLENTRY or SECCOMPRETTRACE). This behaviour is limited to native tasks (because compat tasks expose 'orig_r0' to ptrace) where the syscall is not being skipped (because x0 is updated to hold the return value of -ENOSYS in that case).

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68171.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
a5cd110cb8369d6b37ef5ccfe56b3fa1338c9615
Fixed
8000a5f4d1d192f5bb3e4f29e7606a9460d376df
Fixed
b7afd2a80593dde3f4a68c9a9f73752f9c340e85
Fixed
64ab0964c7db949abbd3c56268a220e2b77f7b9e
Fixed
e59c2476ef755221da31f4e26f6b89712ecf50f1
Fixed
e057b94772328221405b067c3a85fe479b915dc8

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68171.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
4.8.0
Fixed
6.6.148
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.101
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.42
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.1.6

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-68171.json"