Skip to main content

OnePlus OxygenOS CVE-2026-70387

| EUVDEUVD-2026-107155 HIGH
Exposed Dangerous Method or Function (CWE-749)
2026-10-21 ENISA GHSA-cwgc-9268-23h4
8.4
CVSS 4.0 · Vendor: ENISA
View

Attack ChainAIDerived

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

  1. Access
    Install unprivileged app on device
  2. Delivery
    Pivot to uid-0 dumpstate via Vulnerability 1
  3. Exploit
    Invoke olc2 HAL binder exec method
  4. Execution
    Shell spawned in vendor_qti_init_shell with all capabilities
  5. Impact
    Execute 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.

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

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

Alert me

AnalysisAIv1 – 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

OxygenOS 16.0.0 <16.0.5.1200
OxygenOS 16.1.0 <16.1.10.500
OxygenOS 15.0.0 <15.0.0.2000

Affected Packages

euvd oxygenos fix: 15.0.0.2000, 16.0.5.1200, 16.1.10.500

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

Vendor (ENISA) PRIMARY 8.4 HIGH
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
vuln.today AI 6.7 MEDIUM

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.

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (ENISA).

CVSS VectorVendor: ENISA

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 10:16 EUVD
CVE Published
Oct 21, 2026 - 09:07 cve.org
HIGH 8.4

DescriptionCVE.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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Medium
OnePlus's Android OS; major but single-vendor smartphone footprint, not ubiquitous
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.1%
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
CVE-2017-5624 CRITICAL POC
9.8 Mar 12

An issue was discovered in OxygenOS before 4.0.3 for OnePlus 3 and 3T. Rated critical severity (CVSS 9.8), this vulnerab

CVE-2017-5626 CRITICAL POC
9.8 Mar 12

OxygenOS before version 4.0.2, on OnePlus 3 and 3T, has two hidden fastboot oem commands (4F500301 and 4F500302) that al

CVE-2016-10370 HIGH POC
7.5 May 11

An issue was discovered on OnePlus devices such as the 3T. Rated high severity (CVSS 7.5), this vulnerability is remotel

CVE-2017-5623 MEDIUM POC
6.6 Mar 19

An issue was discovered in OxygenOS before 4.1.0 on OnePlus 3 and 3T devices. Rated medium severity (CVSS 6.6), this vul

CVE-2017-5948 MEDIUM POC
5.9 May 11

An issue was discovered on OnePlus One, X, 2, 3, and 3T devices. Rated medium severity (CVSS 5.9), this vulnerability is

CVE-2017-8851 MEDIUM POC
5.9 May 11

An issue was discovered on OnePlus One and X devices. Rated medium severity (CVSS 5.9), this vulnerability is remotely e

CVE-2017-8850 MEDIUM POC
5.9 May 11

An issue was discovered on OnePlus One, X, 2, 3, and 3T devices. Rated medium severity (CVSS 5.9), this vulnerability is

CVE-2026-70386 HIGH
8.5 Oct 21

Local privilege escalation in OnePlus OxygenOS lets any installed Android app, with no declared permissions and no user

CVE-2017-5554 HIGH
8.1 Jan 23

An issue was discovered in ABOOT in OnePlus 3 and 3T OxygenOS before 4.0.2. Rated high severity (CVSS 8.1), this vulnera

CVE-2017-5622 MEDIUM
5.9 Mar 26

With OxygenOS before 4.0.3, when a charger is connected to a powered-off OnePlus 3 or 3T device, the platform starts wit

CVE-2017-5625 MEDIUM
4.6 Apr 25

In OxygenOS before 4.0.3 on OnePlus 3 and 3T devices, an unauthorized attacker can cause a locked bootloader to partiall

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