A Docker-based Proof-of-Concept for CVE-2024-42009, a stored XSS vulnerability in Roundcube Webmail. The README provides instructions to set up a vulnerable lab and send a crafted email that triggers JavaScript execution when a victim opens it.
Backdoor review
No backdoor observed in reviewed code
The supplied evidence consists solely of a README.md file describing a Proof-of-Concept for CVE-2024-42009, a stored XSS vulnerability in Roundcube. The README provides setup instructions using Docker, user creation commands, and a swaks command to send a crafted email that triggers an alert(1) in the victim's browser. No backdoor, concealed executable behavior, or operator-directed harm is present in the reviewed text. The artifact contains no executable source code; the only text file is the README, and the analysis scope confirms no executable source was identified.
The README explicitly describes itself as a 'working Proof-of-Concept (PoC)' and provides a complete, step-by-step guide to set up a vulnerable environment and execute an attack that triggers JavaScript execution in a victim's browser. The provided swaks command includes a crafted payload designed to exploit the vulnerability, which is the defining characteristic of an exploit.
README.md:5README.md:75-83
Requirements
A running Roundcube instance with vulnerable version (≤ 1.5.7 or ≤ 1.6.7) and configured mail server.README.md:13-14
An attacker must be able to send an email to a victim user on the target Roundcube instance.README.md:75-83
The victim user must open the malicious email in the Roundcube web interface.README.md:90-92
Observed behavior
Sets up a vulnerable Roundcube lab environment using Docker.README.md:30-45
Creates test user accounts (attacker and victim) on the mail server.README.md:51-56
Sends a malicious HTML email containing a crafted body tag with an 'onanimationstart' event handler to the victim.README.md:75-83
When the victim opens the email in Roundcube, the injected JavaScript executes, demonstrated by an alert popup.README.md:90-92
Safety-review evidence
Behaviors behind the backdoor verdict
Observables
Exploit Payload
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=alert(1) foo=bar">Foo</body>The README instructs the user to send this HTML body via swaks to trigger an XSS alert in the victim's Roundcube instance. This is the expected PoC behavior for the stated CVE.README.md:83
Docker Setup Commands
docker compose up -d; docker exec mailserver setup email add attacker@lab.local 'attacker123'; docker exec mailserver setup email add victim@lab.local 'victim123'Standard Docker commands to set up a local test environment. No hidden or malicious actions are indicated.README.md:44-55
Review boundaries
What the analysis did not establish
The analysis is based solely on the README.md file. The actual exploit payload, Docker configuration, and any other scripts are not included in the provided text evidence.
The evidence does not include the source code of the vulnerable Roundcube application or the specific sanitization logic that is bypassed.
The screenshots referenced in the README are not provided, so the visual proof of exploitation cannot be verified.
Only the README.md file was provided as readable text; 3 other files (including 2 non-text media files and 1 unclassified file) were not analyzed. The analysis scope reports no executable source code identified, but the complete artifact coverage is incomplete.
Model interpretation
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
A Docker Compose environment with a mail server (docker-mailserver) and a Roundcube webmail instance (version 1.6.7-apache) connected via a bridge network. The README describes it as a Proof-of-Concept for CVE-2024-42009, a stored XSS vulnerability in Roundcube.
docker-compose.yml:1-64README.md:1-8
Lab assessment
Vulnerability lab
The README explicitly states the repository demonstrates a PoC for CVE-2024-42009, a stored XSS in Roundcube. The Compose file sets up a mail server and a vulnerable Roundcube version (1.6.7) with configuration for local testing, matching the described vulnerability reproduction environment.
Uses docker-mailserver:latest image. Exposes SMTP (2525), IMAP (143), Submission (587), and IMAPS (993) ports. Configured with permissive network settings (POSTFIX_MYNETWORKS=0.0.0.0/0) and SYS_PTRACE capability. Mounts local directories for mail data, state, logs, and config.
docker-compose.yml:3-33
roundcube
vulnerable webmail client
Uses roundcube/roundcubemail:1.6.7-apache image, which is within the affected version range per README. Exposes port 8080 for HTTP access. Configured to connect to the mailserver service for IMAP and SMTP. Mounts local directories for config and SQLite database.
docker-compose.yml:35-58README.md:11-13
CVE assessment
How the supplied evidence relates each vulnerability
The README describes the vulnerability as a stored XSS in Roundcube caused by improper HTML sanitization and unsafe attribute reprocessing, affecting versions ≤1.6.7. The Compose file uses roundcube/roundcubemail:1.6.7-apache, which falls within the affected range. The provided exploitation steps use a crafted email body that matches the described attribute injection technique.
Requirements and sequence described by the evidence
Prerequisites
Docker and Docker Compose installed on the host.README.md:25-30
Clone the repository and start the lab with 'docker compose up -d'.README.md:25-30
Create test users (attacker and victim) using 'docker exec mailserver setup email add'.README.md:32-36
Access Roundcube at http://localhost:8080 with the provided credentials.README.md:38-46
Use swaks tool to send a malicious email from attacker to victim.README.md:48-56
Evidence-described exercise path
Start the Docker Compose environment.README.md:28-30
Create attacker and victim mail accounts.README.md:32-36
Log into Roundcube as the victim.README.md:38-46
Send a crafted HTML email from attacker to victim using swaks.README.md:48-56
Open the malicious email in the victim's Roundcube inbox to trigger the XSS.README.md:58-62
Safety-review evidence
Behaviors behind the stored safety assessment
No harmful behavior observed
The environment is a self-contained vulnerability lab. All visible behavior (port mappings, bind mounts, SYS_PTRACE capability, permissive network config) is consistent with setting up a local mail server and webmail client for testing the described XSS. No evidence of host escape, external connections, persistence, credential theft, or destructive actions beyond the lab target.
docker-compose.yml:1-64README.md:1-123
Review boundaries
What the analysis did not establish
Two binary screenshot files (swaks_PoC.png, XSS_PoC.png) are uninspected; their content cannot be verified.
The docker-mailserver image uses the 'latest' tag, so the exact version is not pinned.
The Compose file mounts host directories (mail-data, mail-state, mail-logs, config, roundcube-config, roundcube-db) which could be used to persist data beyond the container lifecycle, but this is typical for mail server state.
Model interpretation
This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.