Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInstall unprivileged app on device
-
DeliveryPivot to uid-0 dumpstate via Vulnerability 1
-
ExploitInvoke olc2 HAL binder exec method
-
ExecutionShell spawned in vendor_qti_init_shell with all capabilities
-
ImpactExecute arbitrary commands as device root
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Dangerous method exposure prevention
|
| Exploitation Conditions | Exploitation requires local code execution on an affected OxygenOS device and a calling process with uid 0 in a SELinux domain that policy grants binder access to the olc2 logging HAL; the HAL's only authorization is getCallingUid()==0, with no command validation. The practical limiting factor is reaching such a uid-0 domain: the description identifies dumpstate as a qualifying domain reachable from an unprivileged app via a separate chained flaw (Vulnerability 1), so full exploitation depends on that chain. Further limits: the issue is local-only (binder IPC, no network vector), requires no user interaction, and applies only to OxygenOS builds below 16.1.10.500 / 16.0.5.1200 / 15.0.0.2000. Patched versions and non-chainable deployments are not exploitable by an unprivileged attacker. |
| Impact | CVSS 4.0 base score is 8.4 (High) with vector AV:L/AC:L/PR:H/UI:N and full confidentiality, integrity and availability impact (VC:H/VI:H/VA:H), classifying this as a high-impact local privilege-escalation issue rather than a remotely exploitable one. The attack vector is local (binder IPC), and the stated authorization barrier is PR:H because the direct caller must already be uid 0. However, the description materially weakens that barrier: SELinux policy exposes the olc2 HAL binder interface to a broad client attribute, and at least one qualifying uid-0 domain (dumpstate) is reachable from an unprivileged app through a separate chained flaw (Vulnerability 1), so the realistic entry point is lower than PR:H alone implies. No EPSS score and no KEV status are present in the input, and no POC=YES flag is set, so there is no structured signal of active or probabilistic exploitation to corroborate the CVSS severity. That said, the single reference is a detailed public technical writeup ('oneplus-root', nns.ee, 2026-09-24) that documents the full rooting chain, which in practice lowers the exploitation barrier and should be weighed above the absence of a POC flag. Net: a genuine, high-value local root chain for affected OnePlus devices, but not a mass/remote exploitation priority - reach requires local presence on the device and the chaining vulnerability. Missing EPSS/KEV data should be verified before deprioritizing. |
| Exploit ScenarioDerived | An attacker who can run code on an affected OnePlus device - via a malicious installed app chained through Vulnerability 1 to reach the uid-0 dumpstate context - invokes the olc2 logging HAL binder method with an attacker-supplied command string. The HAL's sole check is getCallingUid()==0, so it fork()s and execl()s /vendor/bin/sh, and the spawned shell lands in the u:r:vendor_qti_init_shell:s0 domain holding all Linux capabilities, yielding arbitrary command execution and effective device root. A detailed public technical writeup of this chain exists, so the technique is documented even though no structured POC flag is set in the input. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Arbitrary command execution in OnePlus OxygenOS on Android lets a uid-0 process in any SELinux domain granted binder access to the olc2 logging HAL execute caller-supplied shell commands through a privileged vendor shell. The HAL's sole authorization check is getCallingUid() == 0 and it does not validate the command string, so the practical attack path requires reaching a qualifying uid-0 domain; the described dumpstate route depends on a separate flaw that makes dumpstate reachable from an unprivileged app. The issue is local-only and affects OxygenOS 16.1.0 before 16.1.10.500, 16.0.0 before 16.0.5.1200, and 15.0.0 before 15.0.0.2000; no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: upgrade OxygenOS to 16.1.10.500 or later, 16.0.5.1200 or later, or 15.0.0.2000 or later, depending on the installed branch. If upgrading cannot be done immediately, restrict the olc2 logging HAL's binder access by removing dumpstate and other nonessential uid-0 domains from the broad client SELinux attribute, and add command validation or allowlisting in the HAL; this can break diagnostic logging and vendor bug-report collection. Also close the separate dumpstate reachability path used to reach a uid-0 domain from an unprivileged app, which may reduce available diagnostic data. Patching both the HAL authorization and the chained dumpstate issue is necessary to remove the full attack path. The supplied reference for technical details is https://blog.nns.ee/2026/09/24/oneplus-root/.
Affected VersionsENISA
Affected Packages
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
The olc2 logging HAL is an Android vendor HAL reached over binder IPC. Its exposed method calls fork() and then execl("/vendor/bin/sh", "sh", "-c", cmd, NULL), passing a caller-supplied command string directly to a shell; CWE-749 describes this exposed dangerous method/function pattern, and the authorization logic is also incorrect because uid 0 is treated as sufficient without validating the caller's SELinux domain or the command. SELinux policy grants binder access to the HAL to a broad client attribute, and a type_transition places the resulting shell in u:r:vendor_qti_init_shell:s0, a domain with all Linux capabilities. This is not a memory-safety bug; it is a local privilege-escalation and command-execution weakness in the vendor logging/diagnostic path. The CPE cpe:2.3:a:oneplus:oxygenos:*:*:*:*:*:*:*:* matches OxygenOS, and the assessed CVSS 3.1 vector AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H confirms local access, high privileges, no user interaction, and full confidentiality, integrity, and availability impact; the supplied CVSS 4.0 vector agrees on local/high-privilege prerequisites and full C/I/A impact. Exploitation is constrained by the need for local code execution plus a uid-0 caller in an allowed domain, with the dumpstate route chained to a separate vulnerability. The supplied "Information Disclosure" tag is narrower than the authoritative impact assessment, which rates confidentiality, integrity, and availability all High.
Know when Oxygenos gets its next vulnerability
- 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
CVSS:4.0/AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Binder IPC makes it local (AV:L/AC:L); the HAL requires a uid-0 caller via getCallingUid()==0 so PR:H; no user interaction; arbitrary command execution yields full C/I/A impact on the device.
Primary rating from Vendor (ENISA).
CVSS VectorVendor: ENISA
Lifecycle Timeline
2DescriptionCVE.org
Exposed dangerous method or function and Incorrect Authorization vulnerability in OnePlus OxygenOS on Android. The olc2 logging HAL exposes a binder method that fork()'s and calls execl("/vendor/bin/sh", "sh", "-c", cmd, NULL) with a caller-supplied command string. The only authorization check is getCallingUid() == 0. Because SELinux policy grants binder access to this HAL to a wide client attribute, any uid-0 process in any of those domains (including dumpstate, which is reachable from an unprivileged app via Vulnerability 1) obtains arbitrary command execution. The spawned shell lands in u:r:vendor_qti_init_shell:s0 SELinux context via a policy type_transition, a domain holding all Linux capabilities. This issue affects OxygenOS: from 16.1.0 before 16.1.10.500, from 16.0.0 before 16.0.5.1200, and from 15.0.0 before 15.0.0.2000.
Executive ViewAI
OnePlus handsets running OxygenOS 16.1.0, 16.0.0, and 15.0.0 builds contain a high-severity command injection flaw in the olc2 logging HAL, which executes caller-supplied commands through a privileged vendor shell and therefore erodes the isolation boundary that protects managed and BYOD handsets. Because the flaw can only be reached by a process that already holds uid-0 in a compatible SELinux domain - and the documented dumpstate route depends on a separate weakness being fixed elsewhere - it functions primarily as a privilege-escalation enabler inside an existing compromise rather than a standalone entry point, and no public exploit or active exploitation has been identified. Leadership should still care that no vendor patch is currently available, so any affected devices in the estate remain un-remediable and must be contained through policy and configuration controls until OnePlus firmware updates ship.
No vendor-released patch identified at time of analysis. Interim mitigations: block sideloaded and untrusted APKs via MDM/EMM and enforce Play Protect with OS integrity attestation; disable developer options, USB debugging, and ADB on managed devices; prioritize remediation of the separate flaw that makes dumpstate reachable from an unprivileged application, as that is the practical route to the required uid-0 context; monitor for anomalous privileged vendor-shell execution and unexpected binder traffic to the olc2 logging HAL; restrict affected handsets from sensitive data or high-value access until firmware at or above 16.1.10.500, 16.0.5.1200, or 15.0.0.2000 is confirmed available and applied.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
An issue was discovered in OxygenOS before 4.0.3 for OnePlus 3 and 3T. Rated critical severity (CVSS 9.8), this vulnerab
OxygenOS before version 4.0.2, on OnePlus 3 and 3T, has two hidden fastboot oem commands (4F500301 and 4F500302) that al
An issue was discovered on OnePlus devices such as the 3T. Rated high severity (CVSS 7.5), this vulnerability is remotel
An issue was discovered in OxygenOS before 4.1.0 on OnePlus 3 and 3T devices. Rated medium severity (CVSS 6.6), this vul
An issue was discovered on OnePlus One, X, 2, 3, and 3T devices. Rated medium severity (CVSS 5.9), this vulnerability is
An issue was discovered on OnePlus One and X devices. Rated medium severity (CVSS 5.9), this vulnerability is remotely e
An issue was discovered on OnePlus One, X, 2, 3, and 3T devices. Rated medium severity (CVSS 5.9), this vulnerability is
Local privilege escalation in OnePlus OxygenOS lets any installed Android app, with no declared permissions and no user
An issue was discovered in ABOOT in OnePlus 3 and 3T OxygenOS before 4.0.2. Rated high severity (CVSS 8.1), this vulnera
With OxygenOS before 4.0.3, when a charger is connected to a powered-off OnePlus 3 or 3T device, the platform starts wit
In OxygenOS before 4.0.3 on OnePlus 3 and 3T devices, an unauthorized attacker can cause a locked bootloader to partiall
EUVD-2026-107155
GHSA-cwgc-9268-23h4
NVD
CVE.org
EPSS
VulDB
Exploit-DB