This is a loaded nail gun behind the workshop door, not one lying on the sidewalk
CVE-2026-49185 is a classic command-injection flaw in the Acer Connect M6E's embedded FieldX MDM path: an adb messaging topic feeds attacker-controlled payloads into Runtime.exec(). Acer says affected devices are Acer M6E routers running firmware M6E_AI_1.00.000019 or earlier, and the vulnerable surface appears to sit in the device-management/control plane rather than the ordinary consumer web UI alone.
There is no vendor CVSS baseline here, so this is a first-principles assessment. The raw impact is severe because successful reachability turns into command execution on a network appliance, but the decisive real-world friction is reachability: this CVE by itself does not prove unauthenticated internet exposure to the vulnerable topic. In practice, the attacker usually needs local network position, a prior foothold, or another control-plane bug to publish into that message path, so = ASSESSED AT MEDIUM is the defensible call.
4 steps from start to impact.
Reach the MDM message bus
adb message. In a realistic chain that means using an MQTT client such as mosquitto_pub or an equivalent custom client to reach the internal broker/topic layout implied by Acer's advisory.- Attacker has adjacent-network access to the router, code execution on the device, or another flaw that exposes the management broker/topic path
- FieldX MDM components are present and active on the target firmware
- This is not shown to be a generic unauthenticated WAN endpoint in the advisory for this CVE alone
- Many enterprise deployments keep portable hotspot/router management on the LAN side only
- A separate Acer issue documents missing broker ACLs, which implies this CVE often needs chaining for broad reachability
Publish a metacharacter payload
mosquitto_pub, paho-mqtt, or similar tooling, the attacker submits a crafted payload containing shell metacharacters or command separators to the vulnerable adb topic. Acer's description says the payload is passed directly into Runtime.exec(), so input validation/parameterization is the broken control here.- Ability to publish to the specific vulnerable topic
- Payload reaches the code path that invokes
Runtime.exec()
- Topic names and payload schema may need reversing or observation
- If device firmware expects a narrow message format, malformed payloads may fail before execution
Execute under the service account
- The service account has OS execution rights
- SELinux/AppArmor or equivalent policies do not block the specific child process or syscall path
- Privilege may stop short of full root depending on firmware hardening
- Embedded appliances often lack the rich toolchain attackers expect after initial exec
logcat, audit logs, or process lists from the device, unexpected child processes from the MDM service are the best signal. Most off-the-shelf vuln scanners will not validate this safely.Abuse the router as a foothold
sh, toybox, busybox, curl, or wget if present. On a travel/edge router, even non-root execution can still impact connected users by altering VPN or connectivity behavior.- Outbound network access or write access to relevant config stores
- Sufficient privileges to alter the functions the attacker wants to abuse
- Portable hotspot deployments often have a small blast radius per device
- Appliance resets and firmware updates may evict weak persistence
- A generic perimeter web scan does not meaningfully test this issue, because the vulnerable surface appears to be a message topic/control-plane path rather than a straightforward HTTP parameter.
- Relying on consumer NAT assumptions does not solve this by itself; Acer separately documented public IPv6 admin exposure on this product family, so 'it's behind NAT' is not a serious assurance argument.
- MFA on unrelated enterprise portals does not materially reduce this bug unless it specifically protects the path used to reach the device-management topic.
The supporting signals.
| In-the-wild status | No confirmed active exploitation found in public sources reviewed on 2026-06-04; not KEV-listed. |
|---|---|
| Proof-of-concept availability | No public PoC observed in public web/GitHub-facing sources reviewed on 2026-06-04. |
| EPSS | No FIRST EPSS score observed yet for CVE-2026-49185 as of 2026-06-04; newly published CVEs can lag before scoring. |
| KEV status | Absent from the CISA KEV catalog when checked on 2026-06-04. |
| CVSS vector reality check | No official CVSS vector is published. A *technical* worst-case working model would look like AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, but that overstates enterprise risk unless the attacker can already publish to the management topic. |
| Affected versions | Acer Connect M6E firmware M6E_AI_1.00.000019 or earlier per Acer advisory. |
| Fixed version | No fixed firmware version published yet. Acer says fixes will arrive in an upcoming OTA firmware update. |
| Exposure and scanning reality | No reliable public fingerprint evidence found in reviewed sources for broad Shodan/Censys/FOFA identification of this exact topic path. Important amplifier: Acer separately documents another issue where the web admin panel binds to public IPv6 :8080, but that is a different vulnerability, not proof this CVE is internet-reachable by itself. |
| Disclosure | 2026-06-04. |
| Reporter / research credit | Ta-Lun Yen according to Acer. |
Sources.
Why this verdict
- Direct command execution primitive: passing untrusted data into
Runtime.exec()is a high-consequence sink when reached. - Reachability is the whole story: the advisory does not show this as a generic unauthenticated WAN endpoint; the attacker likely needs adjacent-network access, a prior foothold, or another Acer control-plane flaw to publish into the topic.
- Population is narrow: this is a specific portable router model and firmware train, not a ubiquitous server package spread across your fleet.
- No active exploitation signal: no KEV listing, no public exploitation evidence, and no public PoC observed on 2026-06-04.
- Blast radius is usually per-device: compromise of one hotspot/router is serious, but it is not the same operational emergency as a centrally exposed identity, mail, or edge VPN platform.
Why not higher?
I am not taking this to HIGH or CRITICAL because the disclosed facts do not prove broad unauthenticated internet reachability for this CVE alone. The attack path appears to start from an internal management topic, and each prerequisite there compounds: adjacent access or prior foothold, topic knowledge, then successful payload delivery. That is real exploitability, but not mass-exploitation ergonomics.
Why not lower?
I am not dropping this to LOW because once the attacker reaches the vulnerable path, the sink is not subtle — it is direct OS-level command execution on a network device. Even if the service is not root, edge-device compromise can still enable interception, configuration tampering, user impact, and follow-on access.
Crowdsourced verification payload.
Run this on an auditor workstation or jump host after you have read the router's Software Version from Menu > Settings > Device Info on the device or its local admin UI. Invoke it as bash check_cve_2026_49185.sh M6E_AI_1.00.000019; no elevated privileges are required. It only performs a version-based exposure check because Acer has not published a fixed firmware version string yet.
#!/usr/bin/env bash
# check_cve_2026_49185.sh
# Version-based exposure check for Acer Connect M6E / CVE-2026-49185
# Usage: bash check_cve_2026_49185.sh M6E_AI_1.00.000019
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
set -u
AFFECTED_MAX="M6E_AI_1.00.000019"
INPUT="${1:-}"
normalize() {
local v="$1"
# Expect formats like M6E_AI_1.00.000019 or 1.00.000019
if [[ "$v" =~ ^M6E_AI_([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
printf "%03d%03d%06d\n" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "${BASH_REMATCH[3]}"
return 0
elif [[ "$v" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)$ ]]; then
printf "%03d%03d%06d\n" "${BASH_REMATCH[1]}" "${BASH_REMATCH[2]}" "${BASH_REMATCH[3]}"
return 0
fi
return 1
}
if [[ -z "$INPUT" ]]; then
echo "UNKNOWN - provide the device Software Version, e.g. M6E_AI_1.00.000019"
exit 2
fi
if ! N_INPUT=$(normalize "$INPUT"); then
echo "UNKNOWN - unrecognized version format: $INPUT"
exit 2
fi
if ! N_MAX=$(normalize "$AFFECTED_MAX"); then
echo "UNKNOWN - internal parser error"
exit 2
fi
# Acer advisory says firmware M6E_AI_1.00.000019 or earlier is affected.
if [[ "$N_INPUT" < "$N_MAX" || "$N_INPUT" == "$N_MAX" ]]; then
echo "VULNERABLE - $INPUT is within Acer's affected range (<= $AFFECTED_MAX)"
exit 1
fi
# Anything above the published affected ceiling is treated as patched/unaffected,
# but defenders should verify the actual release notes once Acer publishes them.
echo "PATCHED - $INPUT is above Acer's published affected range (> $AFFECTED_MAX)"
exit 0