The locksmith's master key just got cloned by anyone who can knock on the door
CVE-2026-40139 is a pre-authentication authentication-bypass (CWE-287) in the auth subsystem of BeyondTrust Remote Support — the appliance-based product used by IT and MSP support desks to launch privileged screen-share, file-transfer, and command-execution sessions on managed endpoints. An unauthenticated attacker who can reach the appliance's web interface over the network can forge or bypass the session-establishment handshake, land as a valid operator, and pivot into the *jump items* and *representative consoles* that already hold cached credentials to servers, workstations, and domain accounts. Affected builds are the Remote Support appliance lines shipped before the July 2026 hotfix train (the vendor advisory names the pre-fix RS 24.x / 25.x / 26.x branches — anything not on the July 6 release is presumed vulnerable).
The vendor's CRITICAL / 9.8 rating matches reality and, if anything, understates the operational impact. BeyondTrust RS is a canonical high-trust identity-adjacent component: exploiting the appliance itself is the same class of blast radius as compromising a domain controller or PAM vault, because the product's *entire job* is to hold privileged reach into the fleet. This is the same product family that was weaponized against Treasury in the December 2024 incident (CVE-2024-12356), so the threat model here is well-established and the pattern of internet-exposed RS portals is real.
5 steps from start to impact.
Discover an internet-reachable RS appliance
/appliance, /login, distinctive favicon hash, Server: BeyondTrust). Many MSPs and enterprises expose the customer-facing portal so end users can request support sessions, which puts the vulnerable auth endpoint on the internet by design.- Network reachability to the RS appliance web tier
- TLS 443 open
- Some orgs put RS behind a WAF or restrict the /login and /api paths to VPN/ZTNA
- Customer-facing portal is often separated from the operator console
product:BeyondTrust and title matches; Nuclei templates published within days of vendor advisoryBypass authentication on the operator/API endpoint
- Reachable /login or session-init endpoint
- Appliance running pre-July-2026 firmware
- WAF signatures released by Cloudflare/F5 within 72h of disclosure block naive payloads
- Vendor's cloud-hosted RS tenants were patched by BeyondTrust on July 5 before public disclosure
Enumerate jump items and cached endpoint reach
curl / built-in RS REST API, plus the representative console SDK.- Valid operator session from step 2
- Deployment uses jump clients or vaulted creds (default for mature RS installs)
- Least-privilege operator groups may scope jump reach to a subset of endpoints
- Credential Vault add-on is optional — smaller deployments may not have cached creds
Launch privileged sessions into managed endpoints
- Jump clients installed with SYSTEM privileges (default)
- Endpoint reachable from the appliance
- EDR (CrowdStrike/SentinelOne/Defender) will flag Mimikatz/LSASS access; jump-client session launches are legitimate traffic and won't
- Application-control policies on DCs may block non-approved binaries
Establish persistence and pivot to domain
- Domain-joined endpoints reachable via jump clients
- Harvested credentials with lateral movement rights
- Tier-0 isolation (DCs not managed by RS) blocks this path — rare in practice
- Credential Guard + LSA protection blunts LSASS dumping
The supporting signals.
| In-the-wild status | No confirmed exploitation as of 2026-07-22 per BeyondTrust status page and CISA. However, the same product family was actively exploited (CVE-2024-12356, KEV-listed Dec 2024, US Treasury breach) — assume nation-state and ransomware crews are re-tooling now. |
|---|---|
| PoC availability | No public PoC on GitHub as of write-up; expect one within 14 days based on prior BeyondTrust RS bug cadence. Watch watchTowr Labs and Assetnote — both published deep write-ups on the 2024 chain. |
| EPSS | 0.00653 (~0.7%, low percentile) — reflects lack of public PoC, not lack of risk. EPSS lags disclosure by 2-4 weeks; recheck weekly. |
| KEV status | Not listed as of 2026-07-22. Given vendor history and pre-auth RCE class, expect CISA to add within days of first observed exploitation. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — network, no auth, no user interaction, full CIA impact. Vector matches reality. |
| Affected versions | BeyondTrust Remote Support appliance builds prior to the July 6, 2026 hotfix train. Vendor advisory names RS 24.x, 25.x, 26.x pre-fix branches. Cloud-hosted RS tenants were auto-patched July 5. |
| Fixed versions | Vendor July 6 hotfix — apply via appliance update channel. On-prem customers must schedule manually; cloud tenants already remediated. |
| Exposure data | Shodan shows ~8,000-12,000 internet-exposed BeyondTrust RS portals globally (historical baseline); Censys corroborates. Concentration in MSP, healthcare, and finance verticals. |
| Disclosure | 2026-07-06, coordinated disclosure by BeyondTrust PSIRT. |
| Reporter | Credit per vendor advisory — external researcher (unnamed at time of writing). |
noisgate verdict.
This stays CRITICAL because the affected component is canonically a high-value-role system — a privileged remote-access platform whose entire purpose is holding SYSTEM-level reach into thousands of managed endpoints, so a pre-auth bypass equals fleet compromise by design. The decisive factor is the role multiplier: identical bug class in the same product family was weaponized against US Treasury in December 2024 (CVE-2024-12356, KEV), and the 8-12k internet-exposed installed base means a real, targetable population.
Why this verdict
- Role multiplier — canonical high-value role: BeyondTrust RS *is* the privileged-access plane. The bug lives inside the component that legitimately holds SYSTEM reach into every managed endpoint. Chain ends in fleet compromise by design → floor is CRITICAL.
- Pre-auth + network-reachable:
AV:N/PR:N/UI:N— no credentials, no clicks. Any exposed portal is a one-shot target. - Historical precedent: Same product line, same bug class was exploited in the wild in December 2024 (CVE-2024-12356) and used to breach US Treasury OFAC/CFIUS workstations. Threat actors already have the tradecraft.
- Real installed base exposure: Shodan/Censys show thousands of externally reachable RS portals — customer-facing portal exposure is architecturally intended, so this isn't a misconfiguration edge case.
- No compensating friction breaks the floor: WAF and network segmentation are possible but rarely deployed in front of vendor-supplied appliances; EDR fires on post-exploitation, not on the initial auth bypass.
Why not higher?
CRITICAL / 9.8 is already the top of the CVSS v3.1 scale for this vector. No public PoC and no confirmed in-the-wild exploitation yet keep this from being an emergency-hours-not-days scramble — but that gap is measured in days, not months.
Why not lower?
Any downgrade would require either (a) evidence the exposed installed base is <1% — contradicted by Shodan data, or (b) that the appliance doesn't actually hold privileged endpoint reach — contradicted by the product's core function. Neither applies. Downgrade to HIGH would ignore the role multiplier that makes this a fleet-compromise chain.
What to do — in priority order.
- Restrict RS appliance web tier to VPN/ZTNA immediately — Deploy within 3 days per the noisgate mitigation SLA for CRITICAL. Put the operator console and API paths behind a corporate VPN, Cloudflare Access, Zscaler ZPA, or equivalent identity-aware proxy. Customer-facing session-request portal can be restricted to known partner IP ranges via WAF allowlist.
- Block known exploit patterns at WAF — Deploy vendor and Cloudflare/F5/AWS managed rule updates as they release. Rules typically land 48-72h post-disclosure; enable in
blockmode after 24h monitoring. - Alert on any new RS operator account creation and off-hours operator logins — Forward RS audit logs to SIEM. Baseline your operator population and alert on new accounts, new source IPs, or sessions initiated outside business hours. This catches post-exploit persistence.
- Rotate all credentials cached in RS Credential Vault — Assume compromise until you've confirmed the appliance was not exploited. Rotate any service accounts, local admin creds, and privileged accounts that RS holds — priority on domain-privileged creds.
- Deploy vendor hotfix — Apply the July 6 hotfix within 90 days per the noisgate remediation SLA for CRITICAL, but there's no reason to wait — this should be a same-week change for internet-exposed appliances.
- Audit jump-client inventory and reduce SYSTEM reach where possible — Even after patching, remove jump clients from Tier-0 assets (DCs, PKI, backup servers) unless there's an active business need. Reduces blast radius for the next RS bug.
- EDR on jump-target endpoints — the exploit runs against the appliance, not the managed endpoint. EDR only fires after the attacker uses legitimate jump-session functionality, at which point damage is done.
- MFA on operator accounts — the vuln bypasses authentication entirely. MFA is enforced after the auth check that's being skipped.
- Network IPS in front of managed endpoints — jump-client traffic is encrypted and vendor-blessed; IPS won't flag legitimate-looking session launches.
- Disabling the customer-facing portal alone — the vulnerable auth path is typically on the operator/API endpoint, which most orgs still expose to representatives working remotely.
Crowdsourced verification payload.
Run this from an auditor workstation with network reach to the RS appliance (VPN or admin subnet). Requires curl and openssl. Usage: ./check-rs.sh https://support.example.com — no credentials needed; the script only inspects the login page banner and TLS cert to identify build. For authoritative version detection, cross-reference the vendor's appliance /appliance/api/version endpoint if you have admin creds.
#!/usr/bin/env bash
# noisgate CVE-2026-40139 BeyondTrust Remote Support version check
# Usage: ./check-rs.sh <https-url>
# Output: VULNERABLE | PATCHED | UNKNOWN
set -u
TARGET="${1:-}"
if [[ -z "$TARGET" ]]; then
echo "usage: $0 https://support.example.com" >&2
exit 2
fi
# Fixed build (July 2026 hotfix train) — update as vendor publishes exact build numbers
FIXED_BUILD_MIN="26.1.1"
# Grab login page + headers
RESP=$(curl -sk --max-time 15 -D - "$TARGET/login" 2>/dev/null)
if [[ -z "$RESP" ]]; then
echo "UNKNOWN: no response from $TARGET"
exit 3
fi
# Confirm it's actually BeyondTrust RS
if ! echo "$RESP" | grep -qiE 'BeyondTrust|Bomgar|Remote Support'; then
echo "UNKNOWN: target does not appear to be BeyondTrust Remote Support"
exit 3
fi
# Try to extract build/version from footer or /appliance page
VER=$(curl -sk --max-time 15 "$TARGET/appliance" 2>/dev/null | \
grep -oiE 'version[^0-9]{0,10}[0-9]+\.[0-9]+\.[0-9]+' | head -1 | \
grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
if [[ -z "$VER" ]]; then
VER=$(echo "$RESP" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
fi
if [[ -z "$VER" ]]; then
echo "UNKNOWN: could not extract version from $TARGET — verify via admin console"
exit 3
fi
# Semver compare
vergte() { [ "$1" = "$(printf '%s\n%s' "$1" "$2" | sort -V | tail -1)" ]; }
if vergte "$VER" "$FIXED_BUILD_MIN"; then
echo "PATCHED: $TARGET reports $VER (>= $FIXED_BUILD_MIN)"
exit 0
else
echo "VULNERABLE: $TARGET reports $VER (< $FIXED_BUILD_MIN) — CVE-2026-40139"
exit 1
fi
If you remember one thing.
Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.