The bouncer stamps your hand before checking your ID, and the VIP room door reads the stamp, not your face
CVE-2026-67279 is a state-machine flaw in MikroTik RouterOS's SSH server (all versions from 6.0.0 through 6.49.20, 7.0.0 through 7.23.3, and 7.24.0–7.24.1). When a client initiates an SSH key renegotiation (SSH_MSG_KEXINIT) *before* completing user authentication, the server incorrectly advances to the connection protocol — the stage where session channels and exec requests are allowed. An unauthenticated client can then open a session channel and issue exec commands that create, overwrite, or reconstruct files in RouterOS's managed file namespace, including support bundles, diagnostic exports, and configuration-adjacent data. MikroTik patched silently on September 3, 2026 in versions 6.49.21, 7.23.4, and 7.24.2. CERT Polska publicly disclosed the flaw on September 5.
The CNA (CERT Polska) published a CVSS 4.0 score of 6.9 MEDIUM via enrichment data, rating confidentiality and integrity impacts as Low and availability as None. Taken in isolation, that might be fair — the exec primitive is limited to the managed file namespace, not arbitrary command execution. But the CNA score ignores two critical real-world factors. First, this vulnerability is actively exploited in the wild as part of the MikroTrick chain (CVE-2026-67279 + CVE-2026-86060), which converts the unauthenticated session into full administrative control. Second, every single RouterOS installation is a network edge device — a router, firewall, or wireless gateway — meaning any file-write primitive on the device threatens the entire network segment behind it. Shadowserver counted 122,500 devices with SSH exposed in a single 24-hour scan window. A MEDIUM label on an unauthenticated, zero-click, network-reachable flaw in perimeter infrastructure that is being chained to full takeover in active campaigns does not match reality.
5 steps from start to impact.
Identify exposed RouterOS SSH
SSH-2.0-ROSSSH, making fingerprinting trivial. Tools like Shodan, Censys, or FOFA make target enumeration a bulk operation.- Target RouterOS device has SSH exposed to the internet or attacker-reachable network
- MikroTik's default configuration does not expose SSH externally — an admin must have enabled it
- Organizations with proper firewall management restrict SSH to management VLANs
Initiate SSH handshake and trigger pre-auth rekey
SSH_MSG_USERAUTH_REQUEST, the attacker sends a new SSH_MSG_KEXINIT to trigger a rekey. The vulnerable RouterOS server processes the rekey and — due to the CWE-841 state-machine flaw — transitions to the connection protocol state (SSH_MSG_CHANNEL_OPEN is now accepted) without ever receiving SSH_MSG_USERAUTH_SUCCESS. No credentials, keys, or valid usernames are needed. The digiprosec/MicroTrick PoC automates this step.- Target runs RouterOS < 6.49.21, < 7.23.4, or < 7.24.2
- TCP connectivity to the SSH port
- None — the attack is unauthenticated and requires only a TCP connection
- No user interaction, no race condition, no memory corruption
Open session channel and execute file operations
SSH_MSG_CHANNEL_OPEN session) and sends an exec request. The server dispatches the command, allowing the attacker to create, overwrite, and reconstruct files in the RouterOS managed file namespace. This includes support bundles (.rsc, .rif), diagnostic exports, and configuration-adjacent files. The attacker can exfiltrate network topology data, plant scripts in the scheduler namespace, or corrupt existing configuration exports.- Steps 1–2 completed successfully
- The exec primitive is limited to the managed file namespace — not arbitrary shell commands
- Direct modification of the active running configuration requires the admin API, not file writes alone
.rif diagnostic files or new scheduler scripts.(Chain) Escalate to full admin via CVE-2026-86060
-2 through the SSH login helper, the attacker causes the helper to read trusted credentials from file descriptor 2 (the SSH terminal) instead of the credential store. The attacker writes a crafted identity record granting full administrative policy permissions. The result is complete unauthenticated administrative control over the router — the attacker can modify firewall rules, add tunnels, install packages, pivot into the internal network, and persist across reboots.- CVE-2026-86060 is also unpatched on the same device (same fix versions apply)
- Steps 1–3 completed
- If CVE-2026-86060 is independently patched, this step fails and the attacker is limited to file-level access
- Some managed-service providers patch the two CVEs atomically since they share fix versions
-2 in /log print. Unexpected ops account with full admin policy is a near-conclusive IoC. Known attacker IPs: 82.192.72.4, 103.102.31.18.Post-compromise: persist, pivot, weaponize
ops), modifies firewall rules to maintain access, and may configure GRE/IPIP/L2TP tunnels for lateral movement into the network behind the router. Compromised MikroTik devices have historically been weaponized as botnet nodes (Mēris), cryptojacking proxies, and traffic interception points. The attacker controls all traffic transiting the device.- Step 4 completed — attacker has admin
- Post-compromise activity may trigger alerts in downstream SIEM if the organization monitors router config changes
- MikroTik's 'Dude' NMS or RANCID-style config backup tools can detect unauthorized changes
The supporting signals.
| In-the-Wild Exploitation | Active since September 2, 2026 — one day before MikroTik shipped patches. CERT Polska confirmed active attacks targeting internet-facing RouterOS SSH. The chain partner CVE-2026-86060 was added to CISA KEV on September 10 with a federal remediation deadline of September 13. |
|---|---|
| Proof-of-Concept | Public. digiprosec/MicroTrick (CVE-2026-67277 + CVE-2026-67279), dinosn/mikrotrick-poc (CVE-2026-67276 chain lab PoC). Multiple repos on GitHub automate the rekey bypass and chain steps. The MikroTrick chain is weaponized, not theoretical. |
| EPSS | 0.446% (37.4th percentile) — reflects that NVD has not yet fully analyzed this CVE and EPSS models lag on newly-disclosed vulns with limited CPE mapping. Expect this to climb as exploitation data feeds in. |
| CISA KEV Status | CVE-2026-67279 itself: Not listed. Its chain partner CVE-2026-86060 was added September 10, 2026. The two share identical fix versions, so patching one effectively patches both. |
| CVSS Vector (CNA) | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N — 6.9 MEDIUM (CERT Polska via vulnrichment). NVD status: *Awaiting Analysis*. noisgate considers the Low C/I impact underweighted given the network-edge deployment context. |
| Affected Versions | RouterOS 6.0.0 – 6.49.20 (Long-term), 7.0.0 – 7.23.3 (Long-term), 7.24.0 – 7.24.1 (Stable). Essentially every RouterOS release shipped in the last decade until the September 3 fix. |
| Fixed Versions | 6.49.21 (Long-term), 7.23.4 (Long-term), 7.24.2 (Stable), 7.25beta3 (Testing). Patches dropped silently on September 3; public advisory followed September 5. |
| Exposure / Attack Surface | Shadowserver Foundation: 122,500 devices with SSH exposed in a single 24-hour scan (September 5). Shodan: ~300,000 MikroTik SSH banners globally. MikroTik is the most widely deployed router platform in ISP/WISP and SMB edge roles worldwide. |
| Disclosure Date | 2026-09-05 (CERT Polska public advisory). Silent patch: 2026-09-03. First observed exploitation: 2026-09-02 (zero-day window of ≥1 day). |
| Reporting Researcher | CERT Polska (CERT.PL) — own research. The disclosure covered six RouterOS CVEs (CVE-2026-67276 through -67279, -67281, and -86060). |
Why this verdict
- Unauthenticated, zero-click, network-reachable — the attack requires only TCP connectivity to the SSH port. No credentials, user interaction, or complex timing. The CVSS 4.0 vector confirms AV:N/AC:L/AT:N/PR:N/UI:N. This is the lowest possible attacker friction for initial access.
- Active exploitation in the wild with weaponized tooling — attacks were observed on September 2, 2026, a day *before* the vendor shipped patches. Public PoC repositories automate the full chain. The companion CVE-2026-86060 is CISA KEV-listed. This is not theoretical.
- Role multiplier: network edge appliance (100% of installs) — MikroTik RouterOS runs exclusively on routers, firewalls, and wireless gateways. Every single installation is, by definition, a network edge device. Per the high-value role catalog, network edge appliances carry a verdict floor. On an ISP/WISP edge router, file manipulation can expose customer traffic, routing tables, and credentials. On an SMB gateway, it exposes the entire internal network. The blast radius is network-segment-scale at minimum, and ISP-fleet-scale at the high end.
- Chain amplifier (CVE-2026-86060) — while CVE-2026-67279 standalone provides file-level access in the managed namespace (Low C, Low I per CNA vector), in practice it is inseparable from CVE-2026-86060, which shares the same affected and fixed versions and is actively chained for full administrative takeover. Assessing this CVE in isolation as MEDIUM ignores how it is actually being weaponized.
- Massive exposed attack surface — 122,500+ devices with SSH directly internet-facing per Shadowserver, ~300,000 per Shodan. MikroTik is the dominant platform in ISP/WISP edge deployments globally, particularly in emerging markets. The reachable population is enormous.
- Downward pressure (standalone impact limitation) — the standalone exec primitive is constrained to the managed file namespace, not arbitrary command execution. Direct modification of the running configuration requires the admin API. This prevents the standalone CVE from reaching CRITICAL; the file-write-only impact caps the standalone blast radius below domain/fleet takeover.
Why not higher?
The standalone impact of CVE-2026-67279 is limited to file creation, overwrite, and reconstruction within RouterOS's managed file namespace — not arbitrary command execution or direct configuration modification. The CNA rates confidentiality and integrity impact as Low. Full administrative takeover requires chaining with CVE-2026-86060, which is a separate CVE with its own assessment. Elevating to CRITICAL would require the standalone chain to produce fleet-scale or domain-scale compromise, and file manipulation alone — while dangerous on a perimeter device — does not deterministically achieve that without the chain partner.
Why not lower?
Every RouterOS installation is a network edge device, establishing a HIGH floor for any unauthenticated, network-reachable vulnerability that enables file manipulation on the device. Dropping to MEDIUM would require evidence that the exposed population is negligibly small (<1% in the high-value role), but 100% of RouterOS installs are network devices and 122,500+ are internet-facing. Additionally, active in-the-wild exploitation as part of a weaponized chain, public PoC availability, and the companion CVE's CISA KEV listing all compound upward pressure that prevents any downgrade below HIGH.
What to do — in priority order.
- Restrict SSH access to management VLAN or IP allowlist immediately — The attack requires TCP connectivity to the SSH port. Use RouterOS's
/ip firewall filterto restrict SSH (port 22 or custom) to a management subnet or specific jump-host IPs. This eliminates the remote unauthenticated attack vector entirely. Because active exploitation evidence exists, deploy this control immediately — within hours, overriding the standard noisgate mitigation SLA of 30 days for HIGH. Example:/ip firewall filter add chain=input protocol=tcp dst-port=22 src-address=!10.0.0.0/24 action=drop - Upgrade to RouterOS 6.49.21, 7.23.4, or 7.24.2+ — The vendor patch eliminates the state-machine flaw entirely. Given active exploitation, treat this as an emergency patch cycle — apply within hours to days, not the standard 180-day noisgate remediation SLA for HIGH. Use MikroTik's
/system package update installor mass-deploy via The Dude / Ansible. Prioritize internet-facing devices first. - Hunt for compromise indicators on all RouterOS devices — Before and after patching, check every device for IoCs: SSH login attempts with username
-2, unexpected user accounts (especiallyopswith full admin policy), new scheduler scripts, unknown tunnels (GRE/IPIP/L2TP), modified firewall or NAT rules, and.rifdiagnostic files you did not create. Known attacker IPs:82.192.72.4,103.102.31.18. Run/user print,/system scheduler print,/interface printand diff against your known-good config backups. Any device showing IoCs must be treated as fully compromised — rebuild from clean firmware and config. - Disable SSH if not operationally required; use WinBox or the API instead — If your management workflow does not depend on SSH, disable the SSH service entirely (
/ip service set ssh disabled=yes). WinBox uses a different protocol and is not affected by this CVE. This is a zero-cost mitigation for many deployments. Deploy within hours given active exploitation. - Enable RouterOS logging and forward to SIEM — Ensure
/system loggingis configured to forward auth and system topics to a remote syslog/SIEM. This provides forensic visibility into exploitation attempts and post-compromise activity. Critical for detecting the-2username pattern and unauthorized account creation.
- Rate-limiting SSH connections — the exploit requires only a single TCP connection and a few SSH messages. Rate limiting does not prevent exploitation; it only slows brute-force password attacks, which this vulnerability does not use.
- Changing the SSH port to a non-standard port — security through obscurity provides negligible protection against targeted attacks and mass-scanning with tools like Masscan/ZMap that enumerate all open ports. Shodan and Censys index non-standard SSH ports.
- SSH key-only authentication (disabling password auth) — CVE-2026-67279 bypasses the *entire* authentication phase, not just password authentication. Key-only auth settings are irrelevant because the server never reaches the authentication stage before the attacker has a session channel.
- Upgrading to 7.25beta3 — while this version contains the fix, beta/testing channel firmware should not be deployed on production network infrastructure. Use the stable (7.24.2) or long-term (7.23.4 / 6.49.21) channels.
Crowdsourced verification payload.
Run from an auditor workstation with SSH access to the target MikroTik device. Requires ssh client and valid credentials. Usage: bash check_cve_2026_67279.sh 192.168.88.1 admin (optionally append a custom SSH port as a third argument). The script authenticates to the device, retrieves the RouterOS version, and compares it against fixed versions.
#!/bin/bash
# CVE-2026-67279 Check — MikroTik RouterOS SSH Pre-Auth Rekey Bypass
# Usage: bash check_cve_2026_67279.sh <router_ip> <ssh_user> [ssh_port]
# Exit codes: 0=PATCHED 1=VULNERABLE 2=UNKNOWN
set -uo pipefail
TARGET="${1:?Usage: $0 <router_ip> <ssh_user> [ssh_port]}"
USER="${2:?Usage: $0 <router_ip> <ssh_user> [ssh_port]}"
PORT="${3:-22}"
echo "[*] Connecting to ${TARGET}:${PORT} as ${USER}..."
RAW=$(ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o BatchMode=yes \
-p "$PORT" "${USER}@${TARGET}" \
':put [/system resource get version]' 2>/dev/null)
RC=$?
if [ $RC -ne 0 ] || [ -z "$RAW" ]; then
echo "UNKNOWN — could not retrieve RouterOS version from ${TARGET}:${PORT} (ssh exit code ${RC})"
exit 2
fi
# Strip channel label, e.g. "7.24.1 (stable)" -> "7.24.1"
VERSION=$(echo "$RAW" | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?' | head -1)
if [ -z "$VERSION" ]; then
echo "UNKNOWN — could not parse version from output: ${RAW}"
exit 2
fi
MAJOR=$(echo "$VERSION" | cut -d. -f1)
MINOR=$(echo "$VERSION" | cut -d. -f2)
PATCH=$(echo "$VERSION" | cut -d. -f3)
PATCH=${PATCH:-0}
echo "[*] Detected RouterOS version: ${VERSION}"
VULN=0
if [ "$MAJOR" -eq 6 ]; then
if [ "$MINOR" -lt 49 ]; then
VULN=1
elif [ "$MINOR" -eq 49 ] && [ "$PATCH" -lt 21 ]; then
VULN=1
fi
elif [ "$MAJOR" -eq 7 ]; then
if [ "$MINOR" -lt 23 ]; then
VULN=1
elif [ "$MINOR" -eq 23 ] && [ "$PATCH" -lt 4 ]; then
VULN=1
elif [ "$MINOR" -eq 24 ] && [ "$PATCH" -lt 2 ]; then
VULN=1
fi
else
echo "UNKNOWN — unexpected major version ${MAJOR}; manual review required"
exit 2
fi
# IoC spot-check: look for the '-2' username and 'ops' account
echo "[*] Checking for MikroTrick compromise indicators..."
USERS=$(ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -o BatchMode=yes \
-p "$PORT" "${USER}@${TARGET}" \
':put [/user find]' 2>/dev/null || echo "")
if echo "$USERS" | grep -qi 'ops'; then
echo "[!] WARNING: User 'ops' found — possible MikroTrick compromise indicator!"
fi
if [ "$VULN" -eq 1 ]; then
echo "VULNERABLE — RouterOS ${VERSION} is affected by CVE-2026-67279"
echo " Remediation: upgrade to 6.49.21 / 7.23.4 / 7.24.2+"
exit 1
else
echo "PATCHED — RouterOS ${VERSION} is not affected by CVE-2026-67279"
exit 0
fi- CERT Polska Advisory — Vulnerabilities in MikroTik RouterOS software
- CISA KEV Alert — CVE-2026-86060 Added September 10, 2026
- The Hacker News — MikroTrick Chain Analysis
- Cybernews — MikroTik RouterOS Vulnerabilities Expose 122,500 Routers
- SecurityWeek — MikroTik Patches Critical Flaws Chained to Hack Routers
- Hunting MikroTrick: Log Indicators and Forensic Checks
- SecurityOnline — MikroTrick PoC: RouterOS Admin Rights Exploited in Wild
- Strix.ai — CVE-2026-67279 CVSS 6.9 Details
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.