Dockerfile
Defines the container image: starts from ubuntu:20.04, installs build tools and netcat, clones Vim, checks out vulnerable tag v8.1.1364, builds and installs Vim, and copies the local directory into /root.
Dockerfile:1-15Vim < 8.1.1365 / Neovim < 0.3.6 - Arbitrary Code Execution
CVE-2019-12735 has a selected CVSS score of 8.6 (high); EIP currently links 1 catalogued exploit, 5 repository PoCs, and 2 lab environments.
getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.
A Docker environment based on Ubuntu 20.04 that builds Vim 8.1.1364 from source and copies in demonstration files for CVE-2019-12735, a modeline command injection vulnerability.
Dockerfile:1-15README.md:1-44The README explicitly references CVE-2019-12735, provides proof-of-concept steps, and the Dockerfile builds a vulnerable Vim version (v8.1.1364) to demonstrate the modeline command injection.
README.md:1-3Dockerfile:9Defines the container image: starts from ubuntu:20.04, installs build tools and netcat, clones Vim, checks out vulnerable tag v8.1.1364, builds and installs Vim, and copies the local directory into /root.
Dockerfile:1-15Sets alias vi=vim so that invoking vi runs the installed Vim.
.bashrc:1Enables modeline processing and sets backspace options, making Vim parse modelines in opened files.
.vimrc:1-2Contains a modeline that executes 'uname -a' via the :! command when Vim opens the file with modeline enabled.
demo1.txt:1Contains a modeline that sets up a reverse shell to 127.0.0.1:9999 using netcat and a named pipe.
demo2.txt:1C program that writes demo3.txt containing a modeline with a reverse shell payload to 127.0.0.1:9999, using escape sequences to hide the payload.
make_demo3.c:1-11A Python file containing a Vim modeline comment that sets expandtab, softtabstop, and shiftwidth options.
modeline_demo.py:1Explains CVE-2019-12735, provides proof-of-concept and remote shell steps, and references external exploit resources.
README.md:1-44Supported by supplied evidence
The README states the CVE was fixed after Vim 8.1.1365, and the Dockerfile checks out v8.1.1364, a vulnerable version. The provided payloads exploit modeline command injection, consistent with the CVE description.
README.md:1-3Dockerfile:9demo1.txt:1Dockerfile:1-15README.md:7-9README.md:15-18Dockerfile:1-15README.md:7-9README.md:7-9README.md:13-25All payloads target the local container (127.0.0.1) and are explicitly documented as part of the vulnerability demonstration. No evidence of host escape, external connectivity, persistence, or hidden malicious behavior is present.
demo1.txt:1demo2.txt:1make_demo3.c:5README.md:1-44This 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.
A single Dockerfile builds an Ubuntu 20.04 container with a vulnerable version of Vim (8.1.1364) and a proof-of-concept exploit file. The README states it is a study environment for CVE-2019-12735.
Dockerfile:1-15README.md:1-2The README explicitly states the repository is for studying the exploitation of CVE-2019-12735. The Dockerfile installs a vulnerable Vim version (8.1.1364) and creates a proof-of-concept file that triggers the vulnerability.
README.md:1-2Dockerfile:5-6Dockerfile:12-14Defines an Ubuntu 20.04 image, installs build tools, downloads and compiles Vim 8.1.1364, creates a non-root user, and writes a proof-of-concept exploit file.
Dockerfile:1-15Describes the lab as a Docker image for studying CVE-2019-12735 exploitation, lists affected software, provides build/run/attach instructions, and credits inspiration.
README.md:1-26Supported by supplied evidence
The README explicitly associates the lab with CVE-2019-12735. The Dockerfile installs Vim 8.1.1364, which is within the affected range (<8.1.1365) stated in the README, and creates a proof-of-concept file that triggers the modeline vulnerability.
README.md:1-2README.md:5-6Dockerfile:5-6Dockerfile:12-14README.md:9-12README.md:10-12README.md:10README.md:11README.md:12README.md:15The Dockerfile and README describe a self-contained vulnerability lab. The proof-of-concept command executes 'echo hacked; id; uname -a' inside the container, which is expected exploit demonstration behavior. No evidence of host escape, external connectivity, persistence, credential theft, or destructive actions beyond the lab target.
Dockerfile:12-14README.md:1-26This 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.