# CVE-2026-70387: OnePlus OxygenOS arbitrary command execution in olc2 logging HAL

Source: https://junglewise.ai/threats/cve-2026-70387-exposed-dangerous-method-or-function-and-incorrect-authorization  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-21. Updated: 2026-10-21  
License: CC BY 4.0 with a link back

CVE-2026-70387 · Severity: info · Published 2026-10-21

OnePlus OxygenOS contains a logging service (olc2 HAL) that runs system commands with root privileges. An unprivileged app can chain two vulnerabilities together to gain complete device control: first exploiting an audio debug service to achieve uid-0 execution, then calling the logging service to run arbitrary commands as root with all Linux capabilities. An attacker can fully compromise the device without user interaction or special permissions.

Technologies: [Oneplus Oxygenos](https://junglewise.ai/threats/technologies/oxygenos). Vendors: [Oneplus](https://junglewise.ai/threats/vendors/oneplus).

## Quick answers

**Is CVE-2026-70387 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-70387 being exploited in the wild.

**How severe is CVE-2026-70387?** Informational severity, published 21 October 2026.

**Which products and versions are affected?** Oneplus Oxygenos 16.1.0 before 16.1.10.500, 16.0.0 before 16.0.5.1200, 15.0.0 before 15.0.0.2000.

**Is there a fix for CVE-2026-70387?** Yes: fixed in OxygenOS 16.0.10.500 (EX01) and later versions per vendor patches. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-70387 attacked?** It is attacked with local access, in an operating system.

**Am I affected by CVE-2026-70387?** Check whether you run Oneplus Oxygenos at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- Fixed in OxygenOS 16.0.10.500 (EX01) and later versions per vendor patches

## Technical details

The olc2 logging HAL exposes a binder method doShell() that fork()s and calls execl("/vendor/bin/sh", "sh", "-c", cmd, NULL) with a caller-supplied command string, protected only by a check that getCallingUid() == 0. An unprivileged app (untrusted_app domain) can first exploit CVE-2026-70388 in the AtlasService audio debug feature to achieve uid-0 execution in the dumpstate SELinux domain, which has binder access to the olc2 HAL. Once uid-0, the app calls doShell() to execute arbitrary commands, with the spawned shell running in the u:r:vendor_qti_init_shell:s0 context holding all Linux capabilities. The vulnerability exists in OxygenOS 16.1.0–16.1.10.500, 16.0.0–16.0.5.1200, and 15.0.0–15.0.0.2000.

## Affected products

- OnePlus OxygenOS 16.1.0 before 16.1.10.500, 16.0.0 before 16.0.5.1200, 15.0.0 before 15.0.0.2000

## Timeline

- 2026-09-24: disclosed: Initial disclosure of vulnerability chain via nns.ee blog
- 2026-10-21: advisory: CVE-2026-70387 published

## References

- [https://blog.nns.ee/2026/09/24/oneplus-root/](https://blog.nns.ee/2026/09/24/oneplus-root/)

## Related threats

- [OnePlus OxygenOS privilege escalation via atlasservice and audio debug service](https://junglewise.ai/threats/cve-2026-70386-improper-neutralization-of-special-elements-used-in-an-os-command)
- [OnePlus OxygenOS SELinux enforcement bypass in ABOOT](https://junglewise.ai/threats/cve-2017-5554-oneplus-oxygenos-selinux-enforcement-bypass-in-aboot)
