Exim 4.98 build
Exim 4.98 is cloned from GitHub, compiled with SQLite DBM support (USE_SQLITE=yes) and debug flags, and installed. The build is configured to run as user exim-demo.
docker_lab/Dockerfile:7-26File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
A Docker-based lab that builds Exim 4.98 from source with SQLite DBM support and a custom runtime configuration, intended to demonstrate CVE-2025-26794, a blind SQL injection in Exim's SQLite hints database.
docker_lab/Dockerfile:1-36README.md:1-127The README explicitly states the repository is for CVE-2025-26794, describes the vulnerability, and provides a local Docker lab to reproduce it. The Dockerfile builds Exim with SQLite support and copies a configuration that enables the ETRN command, matching the vulnerability requirements.
README.md:1-3README.md:85-90docker_lab/Dockerfile:20-22Exim 4.98 is cloned from GitHub, compiled with SQLite DBM support (USE_SQLITE=yes) and debug flags, and installed. The build is configured to run as user exim-demo.
docker_lab/Dockerfile:7-26A custom Exim configuration file is copied into the container. It defines an ACL for the ETRN command (acl_smtp_etrn) that accepts all ETRN requests, which is required for the SQL injection exploit.
docker_lab/Dockerfile:32docker_lab/configure:310-312A shell script that starts the Exim daemon in debug mode (-d) listening on port 25 and processing the queue every 30 minutes. It also contains a commented-out gdb command and a commented-out Exim expansion test.
docker_lab/start-exim.sh:1-3A Python script that connects to an Exim server on port 25, sends a benign ETRN command, then sends a time-based blind SQL injection payload via ETRN, and measures the response time to determine if the target is vulnerable.
docker_lab/test.py:1-60A shell script that builds the Docker image, removes any existing container, runs a new container with SYS_PTRACE capability, seccomp unconfined, port 25 published, and then opens an interactive bash shell inside the container.
docker_lab/docker.sh:1-4A shell script that executes an interactive bash shell in the running 'exim' container.
docker_lab/connect_docker.sh:1Supported by supplied evidence
The README describes a blind SQL injection in Exim 4.98 when SQLite is used as the DBM and the ETRN command is enabled. The Dockerfile builds Exim 4.98 with USE_SQLITE=yes, and the provided configure file enables the ETRN ACL. The start-exim.sh script starts Exim with debug output, and test.py demonstrates a time-based blind SQL injection payload via the ETRN command. All visible evidence aligns with the CVE description.
README.md:1-3docker_lab/Dockerfile:20-22docker_lab/configure:310-312docker_lab/test.py:30-45docker_lab/Dockerfile:20-22docker_lab/configure:310-312docker_lab/docker.sh:3docker_lab/docker.sh:1-4docker_lab/start-exim.sh:1README.md:93-95README.md:96-98README.md:98docker_lab/test.py:30-45All visible behavior is directed at the contained lab target (Exim 4.98 with SQLite). The Dockerfile builds and runs Exim locally, the test script connects to localhost:25, and the start script only launches the Exim daemon. There is no evidence of host escape, external connections, persistence, credential theft, or destructive actions beyond the intended vulnerability demonstration.
docker_lab/Dockerfile:1-36docker_lab/docker.sh:1-4docker_lab/test.py:1-60This 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.