PoC files

16 files

File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.

GitHub

Analysisdeepseek-v4-pro:cloud ·

Technical assessment

The artifact contains multiple Python scripts that demonstrate arbitrary code execution via eval injection in OpenStack Vitrage. The primary PoC (poc/poc.py) crafts a malicious query dictionary, calls the vulnerable create_predicate() function, and invokes the resulting lambda to trigger injected code that writes files, executes OS commands, and exfiltrates data. Two additional scripts demonstrate exploitation through dictionary key injection and compound logical operator queries.

Backdoor review

No backdoor observed in reviewed code

The supplied PoC for CVE-2026-28370 demonstrates an eval() injection vulnerability in OpenStack Vitrage. All reviewed Python scripts (poc.py, poc_vector2_key_injection.py, poc_vector3_logical_operator.py) perform exactly the disclosed exploit: they import the vulnerable library, craft malicious query dictionaries, and trigger arbitrary code execution to write marker files, execute OS commands, and read local files within the target Docker container. The code is clearly documented, its behavior matches the README and verification reports, and there is no evidence of concealed, unrelated, or operator-targeting malicious actions. The execution context is entirely within the target containers via `docker exec`, as disclosed.

ClassificationExploit
Model confidence98%
AuthenticationRequired
Languagespython
Target softwareOpenStack Vitrage
Attack typeseval injectionarbitrary code executionos command executiondata exfiltration
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The primary artifact is classified as an exploit because the Python scripts actively exercise the vulnerability to achieve arbitrary code execution, OS command execution, and data exfiltration, rather than merely detecting or reporting the vulnerability. The code imports the vulnerable function, crafts malicious payloads, triggers eval(), and verifies the side effects of the injected code.

poc/poc.py:1-42poc/poc.py:142-198poc/poc.py:204-248poc/poc.py:254-294

Requirements

  • Access to a vulnerable OpenStack Vitrage instance (versions before 12.0.1, 13.0.0, 14.0.0, 15.0.0) with the eval() call present in create_predicate().poc/poc.py:108-136
  • Ability to import and call the vitrage.graph.query.create_predicate function, either through authenticated API access or direct code execution on the host.poc/poc.py:34-37

Observed behavior

  • Crafts a malicious query dictionary with a single-quote breakout in the value to inject Python code.poc/poc.py:152-165
  • Calls create_predicate() which passes the crafted expression to eval(), creating a lambda containing the injected code.poc/poc.py:170-176
  • Invokes the returned lambda predicate on a fake vertex object, triggering the injected code to write a marker file to /tmp/poc_evidence/.poc/poc.py:178-198
  • Executes OS commands (id, whoami, hostname, uname -a) via __import__('os').popen() and writes the output to a file.poc/poc.py:204-248
  • Reads sensitive files (/etc/hostname, /etc/passwd) and writes their contents to an exfiltration file.poc/poc.py:254-294
  • Demonstrates exploitation through dictionary key injection by crafting a malicious key that breaks out of the string literal.poc/poc_vector2_key_injection.py:96-167
  • Demonstrates exploitation through compound logical operator queries (and, or, nested) by injecting code into sub-expressions.poc/poc_vector3_logical_operator.py:112-224
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Execution Context
All PoC scripts are designed to be run inside the target Docker containers via `docker exec`, as documented in README.md lines 90-98 and CVE-LAB.md lines 128-131.Establishes that the code execution targets the vulnerable Vitrage service host, not the operator's machine.README.md:90-98CVE-LAB.md:128-131
Exploit Behavior
The PoC scripts import the vulnerable `vitrage.graph.query` library and call `create_predicate()` with crafted payloads to achieve code execution, file writes, and data exfiltration on the target.This is the disclosed exploit behavior for CVE-2026-28370 and is not a backdoor.poc/poc.py:112poc/poc.py:162-163poc/poc.py:216-224poc/poc.py:264-269
Review boundaries

What the analysis did not establish

  • The evidence packet reports complete_artifact_coverage as false, indicating that not all files from the repository unit were included. The analysis is based on the 6 selected text files provided.
  • The evidence includes a CVE-LAB.md file that describes a bypass PoC (poc/bypass_poc.py) and other files (Dockerfiles, docker-compose.yml, etc.) that were not included in the text evidence, so their content could not be analyzed.
  • The text content of Dockerfile.vulnerable, Dockerfile.patched, and docker-compose.yml was not provided for review, but these are infrastructure definition files and their absence does not prevent analysis of the PoC's executable behavior.
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.

Docker lab environments

1
GitHub

CVE-2026-28370/docker-compose.yml

Created
Vuln labCVE-2026-28370Compose · mixed

1 Compose manifest · 2 Dockerfiles · 2 services

Lab screenshot for CVE-2026-28370/docker-compose.yml
Analysisdeepseek-v4-pro:cloud ·

Environment assessment

A Docker Compose lab for CVE-2026-28370, an eval() injection vulnerability in OpenStack Vitrage. It defines two services: a vulnerable target running Vitrage 12.0.0 and a patched target running Vitrage 12.0.1. Both containers sleep indefinitely and mount a read-only PoC directory for exploit testing.

CVE-2026-28370/docker-compose.yml:1-39CVE-2026-28370/README.md:1-228

Lab assessment

Vulnerability lab

The environment is explicitly designed to demonstrate CVE-2026-28370. It includes a vulnerable Vitrage 12.0.0 container, a patched 12.0.1 container, and multiple PoC scripts that exploit the eval() injection. The README and verification report confirm its purpose as a vulnerability reproduction and testing lab.

CVE-2026-28370/docker-compose.yml:1-3CVE-2026-28370/README.md:1-5CVE-2026-28370/poc_verification_report.md:1-10
Lab shapeCompose · mixed
Services2
Compose manifests1
Dockerfiles2
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

vulnerable

vulnerable targetexploit demonstration environment

A container built from Dockerfile.vulnerable, running OpenStack Vitrage 12.0.0 with the eval() injection vulnerability. It exposes port 8370, mounts the PoC directory read-only, and sleeps indefinitely to allow interactive exploit testing via docker exec.

CVE-2026-28370/docker-compose.yml:10-20CVE-2026-28370/Dockerfile.vulnerable:1-41

patched

patched targetbypass verification environment

A container built from Dockerfile.patched, running OpenStack Vitrage 12.0.1 with the eval() fix applied. It mounts the same PoC directory read-only and sleeps indefinitely, intended for testing that the vulnerability is not present in the patched version.

CVE-2026-28370/docker-compose.yml:22-31CVE-2026-28370/Dockerfile.patched:1-38

poc.py

primary exploit scriptvalue injection PoC

A Python script that directly imports the vulnerable create_predicate() function and demonstrates arbitrary code execution via value injection. It performs four tests: vulnerability existence check, arbitrary file write, OS command execution, and data exfiltration.

CVE-2026-28370/poc/poc.py:1-359

poc_vector2_key_injection.py

alternative exploit scriptkey injection PoC

A Python script demonstrating that the eval() injection also works through dictionary keys, not just values. It writes a marker file and executes an OS command via key injection.

CVE-2026-28370/poc/poc_vector2_key_injection.py:1-171

poc_vector3_logical_operator.py

alternative exploit scriptcompound query injection PoC

A Python script demonstrating injection through compound queries using 'and', 'or', and nested logical operators, which represent typical real-world query formats.

CVE-2026-28370/poc/poc_vector3_logical_operator.py:1-240

verify_vuln.py

built-in verification script

A Python script copied into the vulnerable container at build time. It imports the vulnerable function and runs tests for benign queries, value injection, command execution, and key injection to confirm the vulnerability.

CVE-2026-28370/verify_vuln.py:1-218CVE-2026-28370/Dockerfile.vulnerable:30-31
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2026-28370

Supported by supplied evidence

The lab is explicitly built around CVE-2026-28370. The vulnerable Dockerfile installs Vitrage 12.0.0, the PoC scripts directly import and exploit the vulnerable create_predicate() function, and the README and verification report document the vulnerability, its root cause, and the fix. The evidence fully supports the CVE association.

CVE-2026-28370/docker-compose.yml:1-3CVE-2026-28370/Dockerfile.vulnerable:1-4CVE-2026-28370/poc/poc.py:1-30CVE-2026-28370/README.md:1-20
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • Docker and Docker Compose must be installed on the host to build and run the containers.CVE-2026-28370/README.md:80-85
  • The host must have internet access during build to clone the Vitrage repository from GitHub and install Python dependencies.CVE-2026-28370/Dockerfile.vulnerable:16-19CVE-2026-28370/Dockerfile.patched:16-19
  • The operator must use 'docker exec' to run the PoC scripts inside the vulnerable container, as the containers only sleep and do not expose an API endpoint for remote exploitation.CVE-2026-28370/README.md:88-92CVE-2026-28370/docker-compose.yml:17

Evidence-described exercise path

  1. Build and start the lab environment using 'docker compose up -d'.CVE-2026-28370/README.md:84-85
  2. Execute the primary PoC script inside the vulnerable container: 'docker exec cve-2026-28370-vulnerable python3 /poc/poc.py'.CVE-2026-28370/README.md:88
  3. Optionally run the key injection vector: 'docker exec cve-2026-28370-vulnerable python3 /poc/poc_vector2_key_injection.py'.CVE-2026-28370/README.md:89
  4. Optionally run the compound query injection vector: 'docker exec cve-2026-28370-vulnerable python3 /poc/poc_vector3_logical_operator.py'.CVE-2026-28370/README.md:90
  5. Observe the output confirming arbitrary code execution, file writes, and OS command execution within the vulnerable container.CVE-2026-28370/poc_verification_report.md:80-100
  6. Tear down the environment with 'docker compose down'.CVE-2026-28370/README.md:93
Safety-review evidence

Behaviors behind the stored safety assessment

No harmful behavior observed

All exploit behavior is directed at the lab's own vulnerable container. The PoC scripts write marker files, execute 'id', 'whoami', 'hostname', and 'uname -a', and read /etc/passwd and /etc/hostname inside the container to demonstrate the vulnerability. There is no evidence of host compromise, external communication, persistence, credential theft, or any action outside the intended lab target. The use of 'docker exec' is a documented lab prerequisite for running the PoCs, not a host compromise.

CVE-2026-28370/poc/poc.py:120-200CVE-2026-28370/poc/poc.py:210-250CVE-2026-28370/poc/poc.py:260-300CVE-2026-28370/README.md:88-92
Review boundaries

What the analysis did not establish

  • The packet does not include the bypass_poc.py script referenced in the README, so its behavior cannot be assessed.
  • The packet does not include the intel_brief.md, vulnerability_analysis.md, lab_build_report.md, or bypass_analysis.md files, limiting full context.
  • The Dockerfiles clone external repositories during build, but the cloned code is not included in the evidence, so the exact vulnerable and patched source code cannot be verified.
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.

Linked vulnerabilities

1