Someone left the vault door open and the guards asleep, and thieves are already inside mining your gold
CVE-2026-105134 is an OS command injection / path-traversal flaw in Ahsay AhsayCBS — a centralized backup management console used primarily by MSPs and system integrators. The vulnerable endpoint is /rps/api/json/UpdateReceivers.do in the Replication Receiver component, where attacker-controlled headers (UserHome, TopDir) pass through a path sanitizer that escapes % and : but leaves ../ completely untouched. An attacker chains this with CVE-2026-105133, a trivial authentication bypass ("FromServlet":"Y" in the JSON body skips checkSysPwd() entirely), to create a rogue replication receiver, upload a JSP webshell via directory traversal into the Tomcat webapps/rps directory, and execute arbitrary commands as NT AUTHORITY\SYSTEM on Windows or root on Linux. Affected versions span all AhsayCBS v7 through v10.3.4. The correct fix is hotfix v10.3.4.45 (for v10) or v9.15.2.70 (for v7–v9), released October 12, 2026 — note that the initially published 'fix' version 10.3.4.0 was incomplete and remains exploitable.
The vendor CVSS 10.0 is earned and accurate. This is a zero-click, unauthenticated, remotely exploitable chain that runs as the highest system privilege on a backup control plane. The S:C (Changed scope) is appropriate: a single compromised AhsayCBS console manages backup jobs, credentials, and data for potentially dozens of downstream client organizations in MSP deployments. Huntress observed active exploitation within 72 hours of disclosure, CISA added it to KEV on October 14, and Horizon3 published a full PoC. The only quibble is that the CVSS 10.0 technically scores CVE-2026-105134 as standalone-exploitable without authentication, when it actually depends on the companion auth bypass (CVE-2026-105133) — but since the auth bypass is trivially chainable and the PoC automates both in a single script, the practical severity is indistinguishable from a true CVSS 10.0.
5 steps from start to impact.
Discover internet-facing AhsayCBS instance
http.title:"AhsayCBS") or broad HTTP scanning to identify AhsayCBS management consoles exposed to the internet. AhsayCBS runs on Tomcat with an embedded JRE and typically listens on ports 443/8443. MSP deployments routinely expose the console for remote client management.- AhsayCBS management interface reachable from the internet or attacker's network position
- Well-configured deployments restrict management interface to VPN or allowlisted IPs — but MSP use cases frequently require broad access
http.title:"AhsayCBS" identifies exposed instances. GreyNoise may tag scanning activity targeting /rps/api/json/ endpoints.Bypass authentication via CVE-2026-105133
/rps/api/json/*.do endpoint with "FromServlet":"Y" in the request body. The JSONApi.execute() base class reads this flag directly from user-supplied JSON and sets an internal boolean that causes checkSysPwd() to be skipped entirely. No credentials, tokens, or session cookies are required. Tool: Horizon3 PoC (horizon3ai/AhsayCBS-Auth-Bypass-RCE).- HTTP(S) connectivity to the AhsayCBS API
- None — the bypass is a single JSON field injection with no complexity or race conditions
FromServlet in API request bodies. WAF rules matching FromServlet in POST payloads to /rps/api/json/ can block this.Create a rogue replication receiver
UpdateReceivers.do with Id=0 to create a new V7 replication receiver under their control. They specify login credentials, a password, and a SystemHome directory. The receiver creation is a legitimate API action repurposed as an attack primitive — it gives the attacker a credentialed upload channel for the next step. Tool: Horizon3 PoC automates this step.- Successful auth bypass from step 2
- None — the API action is fully functional and does not validate the caller's authorization level beyond the already-bypassed authentication
UpdateReceivers.do calls creating receivers with Id=0.Upload JSP webshell via path traversal
X-RSW-Request-* headers). The getReplicatedPath() function constructs destination paths from attacker-controlled UserHome and TopDir headers. The path sanitizer (FileList.a()) only escapes % and :, leaving ../ intact. By setting UserHome to ../../webapps/rps, the uploaded .jsp file lands directly in the web-accessible Tomcat directory. Tool: Horizon3 PoC delivers status.jsp webshell.- Rogue receiver created in step 3
- AhsayCBS file system layout follows default installation paths
- Custom installation paths could break the traversal — but defaults are used in the vast majority of deployments
.jsp file creation in AhsayCBS webapps/ directories. Huntress Sigma rules cover this artifact.Execute commands as SYSTEM/root
/rps/status.jsp (or similar). On Windows, AhsayCBS runs as NT AUTHORITY\SYSTEM; on Linux, as root. The attacker has full operating system control. Observed post-exploitation includes XMRig miner deployment (edge.exe), persistence via MicrosoftEdgeUpdateSvc Windows service, and PowerShell-based defense evasion (Taskgmr.ps1). Tool: Any browser or curl for webshell access; Horizon3 PoC automates execution + cleanup.- Webshell successfully placed in step 4
- EDR on the host may detect webshell execution or child processes spawning from
cbssvcX64.exe— but many backup servers lack EDR agents
cbssvcX64.exe (Windows) or CBS JVM (Linux). Four Sigma rules from Huntress cover the full chain. File integrity monitoring on webapps directories..jsp files in webapps/rps/ or webapps/obs/ directories, (2) rogue replication receivers in CBS admin, (3) MicrosoftEdgeUpdateSvc Windows service, (4) processes edge.exe/msedge.exe running from non-standard paths, (5) cbssvcX64.exe spawning cmd.exe/powershell.exe, (6) connections to xmr.kryptex[.]network:8029. If any IOCs are found, reimage from trusted backups and rotate all credentials stored in CBS./rps/api/json/*.do endpoints and reject any request containing the string FromServlet. This breaks the auth bypass (CVE-2026-105133) that enables the chain. This is a stopgap — not a substitute for patching — and may break legitimate replication workflows if the application uses this field internally.cbssvcX64.exe, and post-exploitation activity like XMRig deployment. This does not prevent initial exploitation but limits post-compromise dwell time and damage.- Network segmentation alone does not help if the AhsayCBS console must remain internet-facing for MSP client access — the attack chain works over the same HTTPS port used for legitimate management.
- Antivirus signature scanning is insufficient — the webshell is a simple JSP file that may not trigger static signatures, and the XMRig binary is frequently repacked to evade detection.
- Changing the default CBS admin password does not mitigate this chain — CVE-2026-105133 bypasses the password check entirely regardless of password strength.
- Upgrading to AhsayCBS 10.3.4.0 (without the .45 hotfix) does NOT fix the vulnerability — this was the vendor's incomplete initial patch and remains exploitable.
The supporting signals.
| In-the-Wild Status | Actively exploited. Huntress first observed exploitation October 7, 2026 at 23:20 UTC — 72 hours after NVD disclosure. Five organizations confirmed targeted within 24 hours. CISA added to KEV on October 14, 2026. Campaign deploys XMRig cryptominers and JSP webshells. |
|---|---|
| PoC Availability | Public, weaponized PoC. Horizon3 (Zach Hanley) published full exploit chain at github.com/horizon3ai/AhsayCBS-Auth-Bypass-RCE — automates auth bypass, receiver creation, webshell upload, command execution, and cleanup. A second lab repo exists at RayanAlmulhim/CVE-2026-105134-lab. |
| EPSS | 1.843% probability of exploitation in 30 days (79th percentile). Given that active exploitation is already confirmed, EPSS is lagging reality — treat as 100% exploited. |
| CISA KEV | Listed. Added October 14, 2026. Companion CVE-2026-105133 also listed same date. BOD 26-04 applies to FCEB agencies. |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0. Network-reachable, low complexity, no privileges, no user interaction, changed scope. CVSS 4.0 score: 9.3. The Changed scope reflects MSP multi-tenant blast radius. |
| Affected Versions | AhsayCBS v7 through v10.3.4 (inclusive). Initial 'fix' v10.3.4.0 was incomplete and remains exploitable. NVD incorrectly listed 10.3.4 as patched. |
| Fixed Versions | v10: hotfix 10.3.4.45 (released Oct 12, 2026). v7–v9: hotfix 9.15.2.70. v7/v8 must first upgrade to v9.15.0.0 then apply hotfix. Server reboot required after patching. |
| Threat Actor TTPs | Payload hosting on Alibaba Cloud OSS (imagefiles-backup.oss-ap-southeast-7.aliyuncs[.]com). XMRig miner as edge.exe, NSSM wrapper as msedge.exe, persistence via MicrosoftEdgeUpdateSvc service, WinRing0x64.sys kernel driver for hardware-level mining, mining pool xmr.kryptex[.]network:8029. Huntress notes Taskgmr.ps1 appears AI-assisted. |
| Scanning/Exposure | Shodan dork http.title:"AhsayCBS" identifies exposed consoles. AhsayCBS is niche (MSP-focused, smaller installed base than Veeam/Commvault) but deployments are frequently internet-facing by design. No published instance count available. |
| Researcher | Discovered in-the-wild and reported by Huntress (October 8, 2026). Technical root-cause analysis and PoC by Zach Hanley, Horizon3.ai. |
Sources.
- Horizon3 Technical Analysis — Zach Hanley
- Huntress Blog — Threat Actors Exploit AhsayCBS Flaws
- Huntress Support Advisory — October AhsayCBS
- CISA KEV Addition Alert — October 14, 2026
- GitHub Advisory GHSA-mxj3-2x8q-2rh9
- Rescana — AhsayCBS Exploit Chain Analysis
- Horizon3 PoC Repository
- ThreatFrontier — AhsayCBS Exploited, Patch Status
Why this verdict
- Unauthenticated remote RCE with zero friction: The chain requires two CVEs but both are trivially exploitable — the auth bypass is a single JSON field (
FromServlet:Y), and the path traversal/command injection requires no special conditions beyond default installation paths. The public Horizon3 PoC automates the entire sequence in a single script. There is no meaningful attacker friction at any step. - Active exploitation and KEV listing override any theoretical downgrade: Exploitation began October 7 — 72 hours post-disclosure. CISA KEV-listed October 14. The EPSS is lagging at 1.8% but the threat is confirmed present-tense. This is not theoretical risk.
- SYSTEM/root execution privilege: The CBS service runs as
NT AUTHORITY\SYSTEMon Windows androoton Linux by default. There is no privilege escalation step — the attacker lands at maximum OS privilege immediately. - Incomplete initial patch creates remediation confusion: Version 10.3.4.0 was incorrectly listed as the fix by NVD but remains exploitable. Defenders who patched to 10.3.4.0 believing they were safe are still vulnerable. Only hotfix 10.3.4.45 (v10) or 9.15.2.70 (v7–v9) actually closes the chain.
- Role multiplier — Backup/DR infrastructure (canonical high-value role): AhsayCBS is *definitionally* backup infrastructure. 100% of AhsayCBS installs occupy this high-value role. Compromise of a single AhsayCBS console grants access to all backup jobs, stored credentials, and backup data across every tenant/client managed through it. In MSP deployments, one compromised server can cascade to dozens of downstream organizations. The blast radius is supply-chain-scale: backup deletion enables ransomware, backup data exfiltration exposes regulated data across multiple clients, and credential harvesting enables lateral movement into client environments. The observed campaign is currently limited to cryptomining, but the access level trivially supports data theft, ransomware preparation, or supply-chain attacks. This floors the verdict at CRITICAL.
Why not higher?
There is no score higher than 10.0 / CRITICAL. The vendor assessment is accurate and the real-world conditions confirm it.
Why not lower?
Downgrading below CRITICAL would require evidence that either (a) the attack chain has meaningful friction — it does not; every step is trivial and automated — or (b) the target population is negligible — it is not; AhsayCBS is canonically backup infrastructure and MSP deployments amplify blast radius to supply-chain scale — or (c) exploitation is theoretical — it is confirmed active with KEV listing. The only observed campaign payload (cryptomining) is less severe than the *access level permits*, but noisgate scores on capability, not observed intent. A SYSTEM-level webshell on a backup server is one vssadmin delete shadows away from ransomware enablement.
Crowdsourced verification payload.
Run this script on each AhsayCBS host (Linux or Windows via WSL/Git Bash) as any user with read access to the CBS installation directory. Invoke with: bash check_ahsaycbs_cve2026105134.sh /opt/ahsaycbs (Linux) or bash check_ahsaycbs_cve2026105134.sh /c/AhsayCBS (Windows via Git Bash). No network access or elevated privileges required — it performs a local version check only.
#!/usr/bin/env bash
# check_ahsaycbs_cve2026105134.sh — CVE-2026-105134 local version checker
# Usage: bash check_ahsaycbs_cve2026105134.sh <CBS_INSTALL_DIR>
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN
set -euo pipefail
CBS_DIR="${1:-}"
if [[ -z "$CBS_DIR" ]]; then
echo "Usage: $0 <CBS_INSTALL_DIR>"
echo " e.g. $0 /opt/ahsaycbs"
echo " e.g. $0 /c/AhsayCBS"
exit 2
fi
# Look for version info in known locations
VERSION_FILE=""
for candidate in \
"$CBS_DIR/system/version.txt" \
"$CBS_DIR/system/conf/version.properties" \
"$CBS_DIR/conf/version.txt" \
"$CBS_DIR/version.txt"; do
if [[ -f "$candidate" ]]; then
VERSION_FILE="$candidate"
break
fi
done
if [[ -z "$VERSION_FILE" ]]; then
echo "[UNKNOWN] Could not locate AhsayCBS version file in $CBS_DIR"
echo " Manually check: CBS Admin Console > About, or look for version.txt"
exit 2
fi
VERSION_RAW=$(cat "$VERSION_FILE" | grep -iE '(version|build)' | head -5)
echo "Detected version info from $VERSION_FILE:"
echo "$VERSION_RAW"
echo "---"
# Extract version number (e.g., 10.3.4.45 or 9.15.2.70)
VER=$(echo "$VERSION_RAW" | grep -oE '[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?' | head -1)
if [[ -z "$VER" ]]; then
echo "[UNKNOWN] Could not parse version number from $VERSION_FILE"
exit 2
fi
echo "Parsed version: $VER"
# Version comparison function
version_gte() {
# Returns 0 if $1 >= $2
printf '%s\n%s' "$2" "$1" | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n -C
}
MAJOR=$(echo "$VER" | cut -d. -f1)
if [[ "$MAJOR" -ge 10 ]]; then
# v10 branch: need >= 10.3.4.45
if version_gte "$VER" "10.3.4.45"; then
echo "[PATCHED] AhsayCBS $VER >= 10.3.4.45 — CVE-2026-105134 is fixed."
exit 0
else
echo "[VULNERABLE] AhsayCBS $VER < 10.3.4.45 — CVE-2026-105134 applies!"
echo " Action: Apply hotfix 10.3.4.45 immediately and reboot."
exit 1
fi
elif [[ "$MAJOR" -ge 7 ]]; then
# v7-v9 branch: need >= 9.15.2.70
if version_gte "$VER" "9.15.2.70"; then
echo "[PATCHED] AhsayCBS $VER >= 9.15.2.70 — CVE-2026-105134 is fixed."
exit 0
else
echo "[VULNERABLE] AhsayCBS $VER < 9.15.2.70 — CVE-2026-105134 applies!"
echo " Action: Upgrade to 9.15.0.0 (if on v7/v8), then apply hotfix 9.15.2.70."
exit 1
fi
else
echo "[UNKNOWN] AhsayCBS major version $MAJOR is outside known affected range (v7-v10)."
exit 2
fi
# Also check for webshell IOCs
echo "\n--- IOC Check ---"
WEBSHELL_FOUND=0
for webdir in "$CBS_DIR/webapps/rps" "$CBS_DIR/webapps/obs"; do
if [[ -d "$webdir" ]]; then
SUSPECT=$(find "$webdir" -name '*.jsp' -newer "$webdir/WEB-INF/web.xml" 2>/dev/null || true)
if [[ -n "$SUSPECT" ]]; then
echo "[WARNING] Suspicious JSP files newer than web.xml in $webdir:"
echo "$SUSPECT"
WEBSHELL_FOUND=1
fi
fi
done
if [[ $WEBSHELL_FOUND -eq 0 ]]; then
echo "No suspicious JSP files detected in webapps directories."
fi