{"id":"CVE-2026-70386","kind":"vulnerability","aliases":["CVE-2026-70386"],"related":[],"title":"OnePlus OxygenOS: any installed app gets root shell via atlasservice","description":"Improper neutralization of special elements used in an OS command ('OS command injection') and Missing Authorization vulnerability in OnePlus OxygenOS on Android. Any locally installed Android application, with no permissions declared \nand no user interaction beyond launching it, can execute arbitrary shell\n commands as uid 0 in the u:r:dumpstate:s0 SELinux domain. Two defects \ncombine: (a) OnePlus's atlasservice binder interface accepts \nsetEvent(String8 name, String8 value) from any caller without \nauthorization, and (b) one event handler \n(OplusAtlasLogWriter::handleEvent, matching event name \natlas_event_multimedia_audio_dumpsys) copies the caller-supplied value \ninto the system property oplus.audio.dumpinfo.type and starts the root \ninit service audiodumpinfo, which passes that property value unsanitized\n to system(). 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.","summary":"OnePlus's atlasservice binder accepts events from any app without authorization, and one handler passes a caller-supplied value into a root shell command. A locally installed Android app with no permissions can run arbitrary shell commands as root (uid 0).","severity":"high","cvss":8.5,"epss":0.01221,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["android","mobile-fleet","oneplus","oxygenos","vendor"],"not_affected_if":["non-oneplus-device","patched-oxygenos"],"how_to_check":"- Check the OxygenOS version under Settings > About phone; affected builds are `16.1.0` to before `16.1.10.500`, `16.0.0` to before `16.0.5.1200`, and `15.0.0` to before `15.0.0.2000`.\n- Confirm the device is a OnePlus model running OxygenOS; the sources do not list specific models.","fix":"- Update OxygenOS to `16.1.10.500`, `16.0.5.1200`, or `15.0.0.2000` or later, depending on the release line in use.\n- The sources do not name a fix for devices no longer receiving updates.","status":"open","published_at":"2026-10-21T09:17:07+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-25T03:00:21+00:00","updated_at":"2026-10-25T03:00:21+00:00","category":"vendor","confidence":0.8,"triage":{"at":"2026-10-25T03:00:21Z","model":"claude-haiku-5-5","output":{"fix":"- Update OxygenOS to `16.1.10.500`, `16.0.5.1200`, or `15.0.0.2000` or later, depending on the release line in use.\n- The sources do not name a fix for devices no longer receiving updates.","reach":"local","title":"OnePlus OxygenOS: any installed app gets root shell via atlasservice","impact":"high","summary":"OnePlus's atlasservice binder accepts events from any app without authorization, and one handler passes a caller-supplied value into a root shell command. A locally installed Android app with no permissions can run arbitrary shell commands as root (uid 0).","category":"vendor","nicknames":[],"who_cares":["android","oneplus","oxygenos","mobile-fleet"],"confidence":0.8,"needs_auth":"no","worst_case":"Any installed app gains root shell on the phone.","analyst_note":"Confirm affected device models and whether fixes exist for unsupported OxygenOS releases; check the OnePlus security bulletin for CVE-2026-70386.","how_to_check":"- Check the OxygenOS version under Settings > About phone; affected builds are `16.1.0` to before `16.1.10.500`, `16.0.0` to before `16.0.5.1200`, and `15.0.0` to before `15.0.0.2000`.\n- Confirm the device is a OnePlus model running OxygenOS; the sources do not list specific models.","needs_analyst":true,"not_affected_if":["patched-oxygenos","non-oneplus-device"],"who_is_affected":"Owners of OnePlus phones running the affected OxygenOS builds are exposed, since any app installed on the device can use the flaw without asking for permissions. Fleet owners managing OnePlus Android devices should inventory builds; devices on other Android vendors and patched OxygenOS builds are not affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000695,"input_tokens":3630,"output_tokens":664,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-70386':13A,16A '0':65B,111C '15.0.0':195C '15.0.0.2000':197C '16.0.0':190C '16.0.5.1200':192C '16.1.0':186C '16.1.10.500':188C 'accept':28B,129C 'affect':183C 'android':17B,52B,87C,91C 'app':5A,32B,53B 'applic':92C 'arbitrari':59B,106C 'atlas':150C 'atlasservic':10A,26B,126C 'audio':153C 'audiodumpinfo':172C 'author':34B,81C,139C 'b':141C 'beyond':101C 'binder':27B,127C 'caller':41B,137C,158C 'caller-suppli':40B,157C 'combin':122C 'command':48B,61B,75C,77C,108C 'copi':155C 'cve':11A,14A 'declar':96C 'defect':121C 'domain':119C 'dumpsi':154C 'dumpstat':116C 'element':70C 'event':29B,143C,148C,151C 'execut':105C 'fleet':20B 'get':6A 'handleev':146C 'handler':37B,144C 'improp':66C 'init':170C 'inject':78C 'instal':4A,51B,90C 'interact':100C 'interfac':128C 'issu':182C 'launch':102C 'local':50B,89C 'match':147C 'miss':80C 'mobil':19B 'mobile-fleet':18B 'multimedia':152C 'name':132C,149C 'neutral':67C 'one':36B,142C 'oneplus':1A,21B,24B,84C,124C 'oplus.audio.dumpinfo.type':165C 'oplusatlaslogwrit':145C 'os':74C,76C 'oxygeno':2A,22B,85C,184C 'pass':38B,174C 'permiss':56B,95C 'properti':164C,176C 'r':115C 'root':7A,46B,63B,169C 'run':58B 's0':117C 'selinux':118C 'servic':171C 'setev':130C 'shell':8A,47B,60B,107C 'special':69C 'start':167C 'string8':131C,133C 'suppli':42B,159C 'system':163C,180C 'two':120C 'u':114C 'uid':64B,110C 'unsanit':178C 'use':71C 'user':99C 'valu':43B,134C,160C,177C 'vendor':23B 'via':9A 'vulner':82C 'without':33B,138C","nicknames":[],"mitigations":[],"who_affected":"Owners of OnePlus phones running the affected OxygenOS builds are exposed, since any app installed on the device can use the flaw without asking for permissions. Fleet owners managing OnePlus Android devices should inventory builds; devices on other Android vendors and patched OxygenOS builds are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T09:17:07+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"a6d3dc9e-0591-4a13-bce7-0f5b31ff6158","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-70386","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-70386","severity":null,"published_at":"2026-10-21T09:17:07+00:00","modified_at":"2026-10-22T16:58:51+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-70386","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-70386","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}