Skip to main content

Acode CVE-2026-68928

| EUVDEUVD-2026-83444 HIGH
Exposed Dangerous Method or Function (CWE-749)
2026-09-18 GitHub_M
8.6
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Install zero-permission local app
  2. Delivery
    Bind exported TerminalService (no caller check)
  3. Exploit
    Send MSG_EXEC with crafted cmd
  4. Execution
    Acode runs sh -c in its UID
  5. Impact
    Exfiltrate private data, remote credentials, SAF grants

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Dangerous method exposure prevention
Exploitation Conditions

Requires a second, attacker-controlled Android application already installed on the same device as a vulnerable Acode build (1.11.6 through 1.12.6); that app needs NO Android permissions of its own. The specific enabling condition is Acode's terminal plugin declaring TerminalService with android:exported="true" and no binding permission, combined with TerminalService.java not verifying the caller's identity - so any app can bind it and send MSG_EXEC. Limiting factors: exploitation is purely local (no network/remote vector), the victim must have installed both Acode and the malicious app, and updating to Acode 1.12.7 (which sets exported="false") fully closes the exposure. Impact is bounded to whatever Acode's UID can reach - its private data, stored remote credentials, SAF grants, and granted runtime permissions.

Impact

This is a legitimately high-priority local privilege/data-exposure flaw despite no EPSS, KEV, or public POC being present. The CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H = 8.6) is internally consistent with the description: exploitation is LOCAL (a malicious app must be co-resident on the device), requires no privileges in Acode (PR:N - a zero-permission Android app suffices), and crosses a trust boundary (S:C - the attacking app escapes its own sandbox to execute in Acode's UID). The fix is confirmed by vendor PR #2442 and commit 0a5237a3, which simply flip android:exported from true to false, corroborating the root cause (CWE-749, exposed dangerous method). The one signal to weigh carefully is UI:R: the vendor sets User Interaction Required, but the description states the command runs 'without additional interaction at attack time,' so the 'interaction' is really the victim installing the malicious app once - not per-attack consent. No exploitation-status data (EPSS/KEV/POC) is provided, so real-world exploitation is unproven; the risk is high impact but gated by the local-access precondition, making it a targeted/opportunistic concern (malicious or trojanized companion apps) rather than a mass-exploitable remote bug. SSVC-style: exploitation=none observed, automatable=no (requires local co-residence), technical impact=total (arbitrary command execution in Acode's UID).

Exploit ScenarioDerived

A user installs any innocuous-looking, zero-permission app alongside Acode. That app silently binds Acode's exported TerminalService, sends an MSG_EXEC message with an attacker-controlled command, and Acode runs it via ProcessBuilder ('sh -c') inside its own UID - exfiltrating Acode's private files, cached remote/SSH/FTP credentials, and Storage Access Framework grants. No public exploit code is identified at time of analysis, but the primitive is trivial to reproduce from the advisory and one-line plugin.xml diff.

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 – Sep 18, 2026

Command injection within Acode on Android lets any locally installed application execute arbitrary shell commands inside Acode's own sandboxed UID, exposing private app data, stored remote credentials, Storage Access Framework grants and granted runtime permissions. The flaw affects builds from 1.11.6 up to but not including 1.12.7, where the terminal plugin exports com.foxdebug.acode.rk.exec.terminal.TerminalService without a binding permission and TerminalService.java performs no caller verification, so a zero-permission hostile app can bind the service and pass an attacker-controlled cmd value via MSG_EXEC. Exploitation is strictly local and requires the victim to already have run a malicious app alongside a vulnerable Acode release; no public exploit code has been identified at time of analysis and there is no CISA KEV listing or EPSS signal reported.

RemediationAI

Upgrade Acode to version 1.12.7 or later (vendor-released patch), which sets android:exported="false" on TerminalService as shown in upstream pull request 2442 and commit 0a5237a3b140562dac877868137a784d6531894d; the fix is distributed through the v1.12.7 release at https://github.com/Acode-Foundation/Acode/releases/tag/v1.12.7 and Google Play, and the vendor advisory is GHSA-wm94-wp33-43gx. Where updating is not immediately possible, treat the device as having a shared trust boundary: remove or avoid installing untrusted sideloaded apps alongside Acode, since exploitation requires a hostile app already present on the device, and consider whether the terminal plugin can be disabled or omitted in that build to eliminate the exported service - noting the trade-off that this removes terminal functionality entirely for all users of the app. Because commands run inside Acode's UID, also rotate any remote credentials stored in Acode (Git/SFTP/FTP hosts), review and revoke Storage Access Framework folder grants that may have been abused, and check which runtime permissions Acode holds for signs of unexpected use; note that these are after-the-fact containment steps and do not close the hole, since only the 1.12.7 update does. There is no network-facing workaround because the vector is local Binder IPC, not a remote port or endpoint.

Affected VersionsENISA

Acode 1.11.6, < 1.12.7

Affected Packages

euvd acode_1_11_6 fix: 1.12.7

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 root cause class is CWE-749 (Exposed Dangerous Method or Function): Acode's terminal plugin declares its Android bound service com.foxdebug.acode.rk.exec.terminal.TerminalService in src/plugins/terminal/plugin.xml with android:exported="true" and no android:permission binding guard, and src/plugins/terminal/src/android/TerminalService.java does not check the identity of the binding caller (no package/signature validation). Because Android bound services are reachable over Binder IPC by any process on the device when exported without a permission, a hostile app simply binds the service and delivers an MSG_EXEC message whose cmd field is attacker-controlled. The terminal implementation feeds that string to ProcessBuilder using sh -c, meaning the command executes under Acode's UID with Acode's full privilege set rather than the attacker app's minimal one. The CPE entry cpe:2.3:a:acode-foundation:acode:*:*:*:*:*:*:*:* confirms the Acode application as the affected component; the CVSS vector AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H reflects a local attack that needs no attacker privileges, requires the user to have introduced the malicious app (UI:R), and crosses a privilege boundary (scope change) from the attacker app's context into Acode's sandbox. The upstream fix in pull request 2442 flips the declaration to android:exported="false", which removes the service from the cross-app Binder attack surface entirely.

Know when Acode 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 (GitHub_M) PRIMARY 8.6 HIGH
AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H
vuln.today AI 8.6 HIGH

Local co-resident app with no Acode privileges (AV:L/PR:N), trivially reliable (AC:L); binding the exported service escapes the attacker app's sandbox into Acode's UID (S:C) yielding full C/I/A over Acode's data.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 18, 2026 - 22:03 EUVD
CVE Published
Sep 18, 2026 - 20:40 cve.org
HIGH 8.6

DescriptionCVE.org

Acode is a powerful text and code editor for Android. From 1.11.6 until 1.12.7, com.foxdebug.acode.rk.exec.terminal.TerminalService is declared as an exported service in src/plugins/terminal/plugin.xml without a binding permission, and src/plugins/terminal/src/android/TerminalService.java does not verify the caller. Any installed Android application can bind the service and send MSG_EXEC with an attacker-controlled cmd value, which the terminal implementation passes to ProcessBuilder with sh -c inside Acode's UID. This allows a zero-permission local application to execute commands with access to Acode private data, remote credentials, Storage Access Framework grants, and runtime permissions without additional interaction at attack time. This issue is fixed in version 1.12.7.

Technical POC Analysis

CWE-749 (Exposed Dangerous Method or Function), tagged alongside CWE-862 (Missing Authorization) and CWE-926 (Improper Export of Android Application Components).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Organizations that allow Acode on Android devices risk exposure of stored credentials, private app data, and granted permissions because the app's terminal service can be abused by any locally installed application to execute commands within Acode's sandbox. The vulnerability affects Acode versions 1.11.6 through 1.12.6, and no public exploit identified at time of analysis; exploitation requires a malicious app already present on the device. Leadership should prioritize identifying and removing vulnerable Acode installations from managed and BYOD fleets, as no vendor-released patch identified at time of analysis.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include removing Acode from managed devices, enforcing MDM policies to block installation of affected versions (1.11.6 to 1.12.6), restricting app installation to trusted sources, deploying mobile threat defense to detect malicious apps, and monitoring for a vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular open-source Android code editor, large install base but not infrastructure
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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