← Back to Feed CACHED · 2026-09-06 06:30:01 · CACHE_KEY CVE-2026-67276
CVE-2026-67276 · CWE-347 · Disclosed 2026-09-05

RouterOS does not compare the complete RSA public key when matching an SSH authentication request to an…

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

MikroTik left the deadbolt on but forgot to check the key's teeth — anyone with a photo of the key blank can walk in

CVE-2026-67276 is a cryptographic signature verification bypass in MikroTik RouterOS's SSH server, affecting all RouterOS 6.x before 6.49.21, all 7.x before 7.23.4 (long-term), and all 7.24.x before 7.24.2 (stable). When a client presents an RSA public key during SSH authentication, RouterOS matches it against the user's authorized keys by comparing only the key type and modulus — it ignores the public exponent entirely. Because signature verification uses the *client-supplied* key, an attacker who knows the modulus of any authorized RSA key can substitute exponent e=1. With e=1, signature verification computes sig^1 mod N = sig, meaning the attacker just sets the 'signature' equal to the expected padded hash. No private key is required. The attacker opens a full SSH command channel as the target user — typically admin. The same broken PKCS#1 v1.5 parsing also omitted padding-length checks and accepted trailing garbage, enabling a parallel Bleichenbacher-style e=3 cube-root forgery path independently discovered by researcher Nick Pratley.

The CERT-PL-assigned CVSS 4.0 score of 9.2 CRITICAL (AV:N/AC:H) is appropriate. The AC:H rating reflects the requirement that the attacker must already know the RSA modulus of an authorized key, which is a meaningful precondition — RSA public keys are by definition *public*, but the attacker must determine which specific key is authorized on the target device. In enterprise environments this friction is low: the same admin SSH key is routinely deployed across an entire fleet of managed MikroTik routers, and public keys are often discoverable in Git repos, config backups, or prior breach data. Combined with SSH being enabled by default on port 22, and hundreds of thousands of MikroTik devices being internet-facing per Shodan, the CRITICAL rating is warranted and we concur.

"Set exponent to 1, skip the private key, own the router. Patch now."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Identify target MikroTik device with SSH exposed

The attacker scans for MikroTik RouterOS banners on port 22 (or custom SSH ports). SSH is enabled by default on all RouterOS installations. Shodan and Censys index 500,000–900,000 MikroTik devices with management services exposed to the internet, making target acquisition trivial.
Conditions required:
  • Target RouterOS device has SSH reachable from attacker's network position
Where this breaks in practice:
  • Well-managed enterprises restrict SSH to management VLANs or VPN-only access
  • Some deployments use Winbox/API instead of SSH
Detection/coverage: Shodan, Censys, and GreyNoise track MikroTik SSH exposure. Banner grabbing reveals RouterOS version.
STEP 02

Obtain the RSA modulus of an authorized key

The attacker needs the RSA public key (specifically the modulus N) of a user authorized on the target device. RSA public keys are inherently public — they may be found in GitHub profiles, configuration management repos (Ansible/Oxidized backups), prior breach dumps, or extracted from other compromised devices in the same fleet where the same admin key is deployed. In enterprise environments, a single SSH key is commonly pushed to all managed routers.
Conditions required:
  • At least one user on the target has RSA public-key authentication configured
  • Attacker has obtained or can discover the RSA modulus of that authorized key
Where this breaks in practice:
  • Deployments using password-only auth are not vulnerable to this specific chain
  • Deployments using Ed25519 or ECDSA keys are not affected — only RSA keys are vulnerable
  • Finding the specific authorized key requires reconnaissance or prior access
Detection/coverage: No direct detection — this is passive reconnaissance
STEP 03

Craft forged SSH authentication with e=1

The attacker constructs a modified RSA public key using the legitimate modulus N but substituting exponent e=1. They initiate an SSH connection presenting this crafted key. During challenge-response, the signature verification computes sig^1 mod N = sig, so the attacker simply sets the signature bytes to equal the expected PKCS#1 v1.5 padded hash of the session data. This is arithmetic, not cryptography — no private key is involved. A modified Paramiko client can automate this in ~20 lines of Python.
Conditions required:
  • Attacker has the target modulus N
  • Target RouterOS is unpatched (< 6.49.21, < 7.23.4, < 7.24.2)
Where this breaks in practice:
  • Requires disabling rsa-sha2-512 algorithm negotiation to force ssh-rsa (SHA-1 path) on some RouterOS builds — adds minor implementation complexity
Detection/coverage: SSH auth logs on RouterOS would show successful public-key login — but from an unexpected source IP. Anomalous SSH login alerts (SIEM correlation) could catch this.
STEP 04

Full administrative SSH session established

The attacker now has a fully authenticated SSH shell as the target user, typically admin with full RouterOS privileges. From here they can modify firewall rules, add VPN tunnels for persistent access, intercept or redirect traffic, pivot into internal networks behind the router, exfiltrate routing tables and credentials, or deploy scheduled scripts for persistence. RouterOS admin is effectively root on the device.
Conditions required:
  • Steps 1-3 succeeded
Where this breaks in practice:
  • RouterOS audit logging (if enabled) records config changes
  • Network monitoring may detect unexpected outbound tunnels or config modifications
Detection/coverage: Post-compromise indicators: new users, scheduled scripts, modified firewall/NAT rules, unexpected VPN peers. MikroTik's patched versions include a 'Flagged' device status if compromise indicators are detected.
03 · Intelligence Metadata

The supporting signals.

In-the-wild exploitationNo confirmed active exploitation campaigns as of 2026-09-06. Not on CISA KEV. MikroTik's advisory states 'most configurations are not at risk' but the patched firmware includes automatic compromise-detection flagging, suggesting MikroTik is aware of potential exploitation.
Proof-of-conceptNick Pratley published a detailed technical writeup with a working PoC using modified Paramiko. The e=1 substitution attack is mathematically trivial to implement — expect weaponized tools within days.
EPSS scoreNot yet scored (CVE published 2026-09-05, EPSS updates lag 1-2 days). Expect high percentile given network-reachable unauthenticated RCE characteristics.
KEV statusNot listed as of 2026-09-06. Given the exposure surface and PoC availability, KEV listing is plausible if exploitation is confirmed.
CVSS vectorCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N — 9.2 CRITICAL. Network attack vector, high complexity (need authorized key modulus), no privileges required, full CIA impact on the vulnerable system.
Affected versionsRouterOS 6.x (all before 6.49.21), 7.0–7.23.3 (long-term), 7.24.0–7.24.1 (stable). Essentially all RouterOS versions in active use.
Fixed versions6.49.21 (long-term), 7.23.4 (long-term), 7.24.2 (stable), 7.25beta3. Silently released 2026-09-03, formally disclosed 2026-09-05.
Scanning/exposure dataShodan indexes 500,000–900,000 MikroTik devices with management services exposed to the internet. ~400,000 expose the RouterOS API specifically. SSH (port 22) is enabled by default.
Disclosure timelineReserved 2026-07-29 by CERT-PL. Patches silently shipped 2026-09-03. Public advisory 2026-09-05. Two-day silent patch window before disclosure.
Reporting researcherSławomir Rozbicki (CERT Polska / CERT.PL). Part of the 'MikroTrick' vulnerability cluster including CVE-2026-86060 and CVE-2026-67277.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.2/10)

MikroTik RouterOS is canonically a network-edge appliance — routers, firewalls, and VPN concentrators where compromise yields network-level control, traffic interception, and lateral pivot into every host behind the device. The single most decisive factor is the role multiplier: the affected component *is* the perimeter, with 500K–900K internet-facing instances and a trivially weaponizable authentication bypass that requires no credentials and no user interaction.

HIGH Vulnerability mechanism and exploitability assessment
HIGH Affected and fixed version ranges
MEDIUM Real-world exposure population (Shodan figures are estimates)
LOW Active in-the-wild exploitation status (too early to confirm)

Why this verdict

  • Unauthenticated network-reachable attack: The chain starts from the internet against SSH (enabled by default, port 22). No credentials, no user interaction, no prior foothold required — only knowledge of an authorized RSA public key modulus, which is by definition *public* information.
  • Trivial weaponization: Setting e=1 reduces RSA signature verification to identity (sig^1 mod N = sig). The 'forgery' is just copying the expected hash into the signature field. A working PoC exists and weaponized tooling is days away at most.
  • Role multiplier — network edge appliance, fleet-scale blast radius: MikroTik RouterOS is deployed as routers, firewalls, and VPN gateways. Compromise of a perimeter router yields traffic interception (BGP hijack, DNS poisoning, credential sniffing), lateral movement into every subnet behind it, and persistent backdoor access. ≥50% of RouterOS installations occupy this high-value role *by definition* — it's the product's primary purpose. With 500K–900K internet-facing devices per Shodan, the blast radius is massive. Verdict floor: CRITICAL.
  • Enterprise key reuse amplifies reach: Organizations routinely deploy a single SSH admin key across their entire MikroTik fleet. Compromising one device's key list (or finding the key in a Git repo/config backup) unlocks every router in the fleet simultaneously.
  • Minimal friction points: AC:H in the CVSS vector reflects needing the authorized key modulus, but this is a public value by design. The only real friction is whether the target uses RSA key auth (vs. password-only) and whether SSH is network-reachable — both conditions are met in a large share of deployments.

Why not higher?

CVSS 4.0 caps at 10.0 and this scores 9.2. The AC:H rating correctly reflects that the attacker must identify an authorized RSA modulus — not zero-click. There is no subsequent-system impact (SC/SI/SA:N), meaning the CVSS scope is limited to the router itself (though real-world blast radius extends to everything behind it). 9.2 is the appropriate ceiling.

Why not lower?

Downgrading below CRITICAL would require evidence that the exposure population or blast radius is narrow. Neither applies: 500K–900K internet-facing devices, SSH enabled by default, and the affected component IS the network perimeter. The 'need to know the RSA modulus' friction is negligible — RSA public keys are public by design and routinely reused across fleets. Password-only deployments are unaffected, but RSA key auth is standard practice for managed router fleets, which are exactly the high-value targets.

05 · Compensating Control

What to do — in priority order.

  1. Restrict SSH access to management VLAN or VPN-only immediately — Use RouterOS /ip firewall filter or /ip service set ssh address=<mgmt-subnet> to block SSH from untrusted networks. This eliminates the network-reachable attack vector entirely. Per noisgate mitigation SLA for CRITICAL, deploy within 3 days.
  2. Disable SSH and use Winbox with MAC-based or IP-restricted access — If SSH is not operationally required, disable it entirely (/ip service disable ssh). Winbox uses a different authentication path not affected by this CVE. Deploy within 3 days.
  3. Rotate to Ed25519 or ECDSA SSH keys — The vulnerability only affects RSA key matching. Replace all RSA authorized keys with Ed25519 keys (/user ssh-keys import). This eliminates the attack surface even on unpatched devices. Prioritize within 3 days for internet-facing devices.
  4. Audit for compromise indicators — On patched firmware (≥7.23.4, ≥6.49.21), check if the device is 'Flagged' status. On any version, inspect /system script, /user, /tool fetch, and /ip firewall for unauthorized entries. Run this audit on all MikroTik devices immediately.
  5. Monitor SSH authentication logs for anomalous logins — Forward RouterOS logs to SIEM and alert on SSH public-key logins from unexpected source IPs. This provides detection-in-depth while patching proceeds.
What doesn't work
  • Rate-limiting SSH connections does not help — the attack succeeds in a single authentication attempt, not a brute-force scenario.
  • Changing the SSH port provides negligible security — Shodan and masscan will find non-standard ports within hours, and the attacker only needs one successful connection.
  • MFA on RouterOS is not natively supported for SSH public-key auth, so you cannot layer a second factor on the vulnerable path.
  • Disabling password auth (forcing key-only) actually *increases* exposure to this specific CVE by ensuring RSA key auth is the active path.
06 · Verification

Crowdsourced verification payload.

Run this script from any Linux/macOS workstation that can reach the target MikroTik device on its SSH port. Requires ssh-keyscan (part of OpenSSH) and bash. No authentication needed. Usage: bash check_cve_2026_67276.sh <router-ip> [port]

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# CVE-2026-67276 checker — MikroTik RouterOS SSH RSA key exponent bypass
# Usage: bash check_cve_2026_67276.sh <host> [port]
# Requires: ssh-keyscan, bash 4+
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN

set -euo pipefail

HOST="${1:?Usage: $0 <host> [port]}"
PORT="${2:-22}"

# Step 1: grab the SSH banner to identify RouterOS version
BANNER=$(echo '' | timeout 5 nc -w3 "$HOST" "$PORT" 2>/dev/null | head -1 || true)

if [[ -z "$BANNER" ]]; then
  echo "UNKNOWN — could not connect to $HOST:$PORT"
  exit 2
fi

echo "Banner: $BANNER"

# RouterOS SSH banners look like: SSH-2.0-ROSSSH or include version info
if ! echo "$BANNER" | grep -qi 'mikrotik\|ROSSSH'; then
  echo "UNKNOWN — does not appear to be MikroTik RouterOS (banner: $BANNER)"
  exit 2
fi

# Step 2: try to extract version from banner or use API
# RouterOS doesn't always put version in SSH banner, so we check known fixed versions
# We'll attempt a version probe via the Winbox discovery if available
# Fallback: use SNMP or direct version check

# Try to get version via SNMP (if enabled, community=public)
VERSION=$(timeout 5 snmpget -v2c -c public "$HOST" 1.3.6.1.4.1.14988.1.1.4.4.0 2>/dev/null | grep -oP '"[^"]+"' | tr -d '"' || true)

if [[ -z "$VERSION" ]]; then
  # Try MikroTik MNDP discovery (UDP 5678) — not always available
  echo "INFO — Could not extract version via SNMP. Checking banner only."
  echo "UNKNOWN — RouterOS detected but version could not be determined remotely."
  echo "Manually verify: /system resource print (look for version >= 6.49.21 or >= 7.23.4 or >= 7.24.2)"
  exit 2
fi

echo "Detected RouterOS version: $VERSION"

# Parse major.minor.patch
MAJOR=$(echo "$VERSION" | cut -d. -f1)
MINOR=$(echo "$VERSION" | cut -d. -f2)
PATCH=$(echo "$VERSION" | cut -d. -f3)

# Version comparison
if [[ "$MAJOR" -eq 6 ]]; then
  # Fixed in 6.49.21
  if [[ "$MINOR" -lt 49 ]] || { [[ "$MINOR" -eq 49 ]] && [[ "${PATCH:-0}" -lt 21 ]]; }; then
    echo "VULNERABLE — RouterOS $VERSION is affected (fixed in 6.49.21)"
    exit 1
  else
    echo "PATCHED — RouterOS $VERSION is at or above 6.49.21"
    exit 0
  fi
elif [[ "$MAJOR" -eq 7 ]]; then
  # Fixed in 7.23.4 (long-term) and 7.24.2 (stable)
  if [[ "$MINOR" -lt 23 ]]; then
    echo "VULNERABLE — RouterOS $VERSION is affected (fixed in 7.23.4)"
    exit 1
  elif [[ "$MINOR" -eq 23 ]] && [[ "${PATCH:-0}" -lt 4 ]]; then
    echo "VULNERABLE — RouterOS $VERSION is affected (fixed in 7.23.4)"
    exit 1
  elif [[ "$MINOR" -eq 24 ]] && [[ "${PATCH:-0}" -lt 2 ]]; then
    echo "VULNERABLE — RouterOS $VERSION is affected (fixed in 7.24.2)"
    exit 1
  else
    echo "PATCHED — RouterOS $VERSION is at or above fixed version"
    exit 0
  fi
else
  echo "UNKNOWN — unexpected major version $MAJOR"
  exit 2
fi
07 · Bottom Line

If you remember one thing.

TL;DR
This is a textbook network-perimeter authentication bypass with a public PoC and trivial weaponization. Monday morning: (1) Immediately restrict SSH access on all MikroTik devices to management VLANs or VPN-only — this is your noisgate mitigation SLA action, due within 3 days for CRITICAL. (2) Rotate any RSA SSH keys to Ed25519 on all RouterOS devices to eliminate the attack surface entirely. (3) Begin firmware upgrades to 6.49.21 / 7.23.4 / 7.24.2 across your fleet, prioritizing internet-facing and perimeter devices first — this is your noisgate remediation SLA target, due within 90 days. (4) Audit every MikroTik device for compromise indicators: unexpected users, scheduled scripts, firewall rule changes, and VPN peer additions. If any device shows signs of compromise, treat it as a confirmed incident and isolate immediately. Do not wait for KEV listing — the PoC is public and the math is trivial.

Sources

  1. MikroTik September 2026 Security Advisory
  2. Nick Pratley — Reversing MikroTik's Silent Patch
  3. OffSeq Threat Radar — CVE-2026-67276
  4. THREATINT — CVE-2026-67276
  5. TheHackerWire — CVE-2026-67276
  6. MikroTik RouterOS Critical Vulnerabilities Overview
  7. CISA ICS Advisory — MikroTik RouterOS
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.