---
id: CVE-2026-70387
title: OnePlus OxygenOS exposed dangerous method vulnerability
summary: >-
  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
  cal…
severity: high
cvss: 8.4
cvssVector: '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'
cvssSource: cna
cwe:
  - CWE-749
  - CWE-863
vendor: OnePlus
product: OxygenOS
affected:
  - OxygenOS >= 16.1.0 < 16.1.10.500
  - OxygenOS >= 16.0.0 < 16.0.5.1200
  - OxygenOS >= 15.0.0 < 15.0.0.2000
published: '2026-10-21'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T09:07:56.492Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-70387'
references:
  - url: 'https://blog.nns.ee/2026/09/24/oneplus-root/'
tags:
  - cve.org
ingestedAt: '2026-10-21T09:46:15.391Z'
---

## Overview

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.

## Affected

- `OxygenOS >= 16.1.0 < 16.1.10.500`
- `OxygenOS >= 16.0.0 < 16.0.5.1200`
- `OxygenOS >= 15.0.0 < 15.0.0.2000`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
