← Back to Feed CACHED · 2026-07-09 08:24:03 · CACHE_KEY CVE-2026-50746
CVE-2026-50746 · CWE-284 · Disclosed 2026-07-02

A malicious actor with access to the network could exploit an Improper Access Control vulnerability found…

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

The building manager's control panel forgot to check who's holding the badge

CVE-2026-50746 is an improper access control flaw (CWE-284) in the UniFi Connect Application — Ubiquiti's smart-building management suite that orchestrates commercial lighting, EV chargers, digital signage, and door hardware. In versions ≤ 3.4.16 (NVD lists < 3.4.20 as affected), a command-execution code path is reachable *without* passing through the authentication gate. Any actor with network reachability to the Connect Application host can drop unauthenticated HTTP(S) at the exposed API and get arbitrary OS command execution as the service user on the underlying UniFi OS host. The vendor patched in 3.4.20.

The vendor CRITICAL / 10.0 label is defensible here — this is the rare case where CVSS matches operational reality. AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H is technically accurate: no creds, no clicks, and scope changes because the Connect Application typically runs on a UniFi OS console (UDM/UDM Pro/UDR/UNVR/Cloud Key) that also hosts network, camera, and access controllers. Compromise doesn't stop at Connect — it lands you on the appliance that runs your network edge and physical access. The only reason we don't push above vendor is that most Connect deployments sit on internal management VLANs rather than the public internet.

"Unauthenticated command injection on a management box that runs door access, lighting, and EV chargers. Patch this week."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Reach the Connect Application listener

Attacker needs an IP path to the UniFi OS host running Connect — typically the management VLAN, though Censys observes ~100,000 UniFi OS endpoints exposed to the public internet. Discovery is trivial via Shodan/Censys favicon and TLS-cert fingerprints for UniFi OS or via internal nmap of the mgmt subnet. No credentials, no user interaction.
Conditions required:
  • TCP reachability to the Connect Application HTTPS port on the UniFi OS host
  • Connect Application ≤ 3.4.16 installed and enabled
Where this breaks in practice:
  • Most enterprises restrict UniFi OS management UI to an isolated VLAN accessible only from IT jump hosts
  • Public exposure is common in SMB / retail but rarer in enterprise IT-managed deployments
Detection/coverage: Shodan / Censys queries for UniFi OS cert CN identify exposure; internal Nessus plugin coverage for Ubiquiti UniFi banner detection is partial
STEP 02

Hit the unauthenticated API endpoint

Ubiquiti's advisory (SAB-066) describes an access-control gap where a Connect endpoint that should require authentication is reachable anonymously. Attacker sends a crafted HTTP(S) request directly to the vulnerable route — no session cookie, no API token, no MFA challenge. Expect a public PoC to appear within days now that the diff between 3.4.16 and 3.4.20 is available.
Conditions required:
  • Knowledge of the vulnerable route (trivial from patch diff)
  • TLS accepts self-signed or valid cert
Where this breaks in practice:
  • WAF in front of the mgmt UI (rare for UniFi appliances)
  • Reverse proxy path rewriting (uncommon in default deployments)
Detection/coverage: No public Suricata / Snort rule yet as of 2026-07-09; watch Emerging Threats feed
STEP 03

Command injection on host

The vulnerable handler passes attacker-controlled input into an OS command construction — the exact vector Ubiquiti describes as command injection on the host device. Result: arbitrary shell execution as the Connect service account on UniFi OS (Linux-based). This is a native RCE, no memory-corruption gymnastics required.
Conditions required:
  • Step 2 delivered the injection payload
Where this breaks in practice:
  • Very little — UniFi OS runs a fairly permissive Linux userland with no meaningful sandbox around service accounts
Detection/coverage: Post-exploit: unexpected child processes of the Connect service, outbound connections from UDM/UDR to non-Ubiquiti IPs
STEP 04

Pivot to network + physical access control

Because Connect runs on a UniFi OS console alongside Network, Protect (cameras), and Access (doors) controllers, RCE on this host commonly means: read/modify firewall rules, mirror internal traffic, disable or replay camera feeds, and — the worst-case — unlock doors managed by UniFi Access. Scope:Changed in the CVSS vector is not marketing; it's real.
Conditions required:
  • Step 3 shell
  • Host also runs Network / Access / Protect controllers (common default on all-in-one UDM/UDR deployments)
Where this breaks in practice:
  • Segmented deployments where Connect runs on a dedicated appliance limit blast radius
  • SIEM ingestion of UniFi audit logs may flag rule changes
Detection/coverage: Config drift on network rules; syslog gaps on the console; Access door-unlock events outside business hours
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNot confirmed exploited as of 2026-07-09; Ubiquiti has declined to comment on pre-disclosure exploitation of the SAB-066 bundle
KEV listedNo (as of 2026-07-09) — watch CISA feed given the exposure population
EPSS0.00826 (~30th–40th percentile) — expected to spike once a PoC lands
Public PoCNone published — patch diff between 3.4.16 and 3.4.20 is available and analysis is trivial; expect PoC within days
CVSS 3.1AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0 CRITICAL — Scope:Changed reflects impact on other UniFi controllers co-hosted on UniFi OS
Affected versionsUniFi Connect Application ≤ 3.4.16 (NVD lists < 3.4.20)
Fixed version3.4.20 and later — released via Ubiquiti's normal update channel; SAB-066 advisory
Exposure telemetry~100,000 UniFi OS endpoints exposed to the internet per Censys (July 2026); subset run Connect Application
Disclosed2026-07-02 as part of Ubiquiti's SAB-066 batch (25 CVEs across UniFi Connect, Talk, Access, Protect, and UniFi OS)
Reported byUbiquiti did not credit an external researcher in the SAB-066 disclosure — likely internal / bug-bounty triage
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to CRITICAL (9.6/10)

Verdict held at CRITICAL because the single decisive factor is unauthenticated command execution on a management appliance that co-hosts network, camera, and physical-access controllers — the affected component is canonically a high-value-role device where compromise ends in fleet-scale network and physical-access takeover. Public exposure of ~100,000 UniFi OS endpoints (Censys) makes this a real-world reachable chain, not a lab curiosity.

HIGH vendor severity accuracy
HIGH affected version range
MEDIUM in-the-wild exploitation timing
HIGH installed-base exposure telemetry

Why this verdict

  • Unauthenticated + network-reachable + RCE: no credentials, no clicks, low complexity — the three ingredients that make a bug worth waking up for.
  • Role multiplier — network edge appliance: UniFi OS is canonically an edge / management-plane device. Chain succeeds → attacker owns firewall rules, VPN config, and (where UniFi Access is deployed) door-unlock authority. Blast radius = site network + physical access. Floor is CRITICAL.
  • Role multiplier — smart-building / OT-adjacent role: Connect specifically manages EV chargers, lighting, and building automation. In deployments where Connect drives real hardware, the chain reaches operational impact — not just IT.
  • Exposure telemetry does not save you: even if only a fraction of the ~100,000 exposed UniFi OS endpoints run Connect, the absolute count of externally reachable targets is in the tens of thousands — internet-scan-and-pop is economical.
  • Patch diff availability: 3.4.16 vs 3.4.20 is a trivial reverse. PoC and mass-scan tooling are on a days-to-weeks clock, not months.

Why not higher?

There is no severity bucket higher than CRITICAL. If there were, we'd still hold at CRITICAL: no confirmed in-the-wild exploitation yet, EPSS is still low, and enterprise deployments frequently restrict the Connect UI to an internal management VLAN — the population of *internet-exposed* Connect instances is a subset of the 100,000 UniFi OS endpoints, not the full number.

Why not lower?

Downgrading to HIGH would require either a meaningful auth prerequisite or a narrow blast radius — neither applies. The bug is pre-auth, the affected component is a management appliance with fleet-scale physical-and-network authority, and public exposure is measured in tens of thousands. Any of the standard downgrade levers (needs creds, needs UI click, one-tenant blast radius, sub-1% exposure) is absent here.

05 · Compensating Control

What to do — in priority order.

  1. Block Connect Application ports at the perimeter today — Confirm no WAN-side ACL permits inbound to the UniFi OS management ports (TCP 443/8443/8843) on any UDM/UDR/UNVR/Cloud Key running Connect. Push this via your edge firewall change window within the noisgate CRITICAL mitigation SLA of ≤3 days.
  2. Restrict Connect UI to a mgmt jump-host subnet — Add an interface ACL on the UniFi OS host itself limiting the Connect Application listener to your IT admin CIDR. Belt-and-braces in case perimeter rules are bypassed by a compromised internal host. Same 3-day window.
  3. Upgrade to UniFi Connect Application 3.4.20 or later — Roll the vendor patch fleet-wide within the noisgate CRITICAL remediation SLA of ≤90 days. Ubiquiti pushes via the standard Applications update channel; auto-update is safe for this release per SAB-066 notes but validate in a canary group first if you have >50 sites.
  4. Enable syslog forwarding from UniFi OS to your SIEM — Ship audit logs, admin actions, and Access door-unlock events to Splunk / Sentinel / Elastic so any post-compromise config or door-state change is visible. Do this in parallel with the patch — value outlives this CVE.
  5. Rotate Connect and Access API tokens post-patch — If any Connect deployment was internet-reachable prior to 3.4.20, assume tokens and integration credentials may have been read post-RCE and rotate them once patched.
What doesn't work
  • MFA on the Connect UI — the vulnerable path is *unauthenticated*, so MFA is never reached.
  • Strong admin passwords / password rotation — same reason; credentials are irrelevant when the endpoint skips auth entirely.
  • EDR on Windows admin workstations — the exploit lands on the UniFi OS Linux host, not on admin endpoints; workstation EDR sees nothing.
  • IDS signatures for known UniFi CVEs — no public signature exists for CVE-2026-50746 yet; relying on stock ET rules is a false sense of coverage.
06 · Verification

Crowdsourced verification payload.

Run this on an auditor workstation or jump host that can reach your UniFi OS consoles' management IPs. It queries the Connect Application's version endpoint over HTTPS and compares against the patched version 3.4.20. Invoke as ./check-cve-2026-50746.sh 10.0.0.1 for a single host, or pipe an inventory: cat unifi-ips.txt | xargs -n1 ./check-cve-2026-50746.sh. No credentials required.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# noisgate check for CVE-2026-50746 — UniFi Connect Application unauth RCE
# Usage: ./check-cve-2026-50746.sh <host-or-ip> [port]
# Exits: 0 PATCHED, 1 VULNERABLE, 2 UNKNOWN
set -u

HOST="${1:-}"
PORT="${2:-443}"
FIXED="3.4.20"

if [[ -z "$HOST" ]]; then
  echo "usage: $0 <host> [port]" >&2
  exit 2
fi

# Query Connect Application info endpoint; UniFi OS surfaces app versions via /api/applications
RESP=$(curl -ksS --max-time 8 "https://${HOST}:${PORT}/api/applications" 2>/dev/null || true)

if [[ -z "$RESP" ]]; then
  echo "${HOST} UNKNOWN (no response from UniFi OS API)"
  exit 2
fi

# Extract Connect app version (JSON field name varies by UniFi OS release)
VER=$(echo "$RESP" | grep -oE '"(name|slug)"\s*:\s*"connect"[^}]*"version"\s*:\s*"[0-9.]+"' \
      | grep -oE '"version"\s*:\s*"[0-9.]+"' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)

if [[ -z "$VER" ]]; then
  echo "${HOST} UNKNOWN (Connect Application not installed or API shape differs)"
  exit 2
fi

# Semver compare: is VER >= FIXED ?
newest=$(printf '%s\n%s\n' "$VER" "$FIXED" | sort -V | tail -1)
if [[ "$VER" == "$FIXED" || "$newest" == "$VER" && "$VER" != "$FIXED" ]]; then
  echo "${HOST} PATCHED (Connect ${VER} >= ${FIXED})"
  exit 0
else
  echo "${HOST} VULNERABLE (Connect ${VER} < ${FIXED}) — CVE-2026-50746"
  exit 1
fi
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: (1) inventory every UniFi OS console (UDM/UDM Pro/UDR/UNVR/Cloud Key) and identify which run the Connect Application at ≤ 3.4.16 — use the verification script above against your mgmt CIDR. (2) Within the noisgate mitigation SLA of ≤ 3 days (CRITICAL), block WAN-side access to UniFi OS management ports and restrict Connect UI to your admin jump-host subnet on the host itself. (3) Within the noisgate remediation SLA of ≤ 90 days, roll UniFi Connect Application to 3.4.20+ fleet-wide via the standard Applications update channel, canary-first if you have >50 sites. If any Connect instance was internet-reachable pre-patch, treat it as potentially compromised: rotate integration tokens, review Access door-unlock logs and Network firewall-rule diffs for the exposure window, and forward UniFi OS syslog to SIEM permanently. Do not wait on KEV listing — patch diff is public and PoC development is on a days-to-weeks clock.

Sources

  1. SOCRadar — CVE-2026-50746 in UniFi Connect
  2. The Hacker News — Ubiquiti patches critical UniFi flaws
  3. BleepingComputer — max severity UniFi OS vulnerability
  4. Security Affairs — Ubiquiti patches critical UniFi OS flaws
  5. Tech Times — CVSS 10.0 flaw exposes 100,000 endpoints (Censys)
  6. Cybersecurity News — 25 UniFi ecosystem vulnerabilities
  7. BeyondMachines — patches following active exploitation reports
  8. Ubiquiti Security Advisories (SAB-066)
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.