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.
Model confidence98%
AuthenticationRequired
Languagespython
Target softwareOpenStack Vitrage
Attack typeseval injectionarbitrary code executionos command executiondata exfiltration
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidenceClassification 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-294Requirements
- 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 evidenceBehaviors 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 boundariesWhat 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 interpretationThis review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.