Technical assessment
The artifact sets up a vulnerable Docker environment for CVE-2020-13756 and provides a curl command to verify the vulnerability by checking for a specific output string, which is scanner behavior.
Backdoor review
No backdoor observed in reviewed code
The repository provides a deliberately vulnerable Docker environment for CVE-2020-13756. The index.php file directly passes a user-supplied GET parameter to the known-vulnerable getSelectorsBySpecificity() function, which is the documented CVE behavior. No concealed backdoor, unrelated payload, persistence mechanism, or operator-directed harm is present in the reviewed text files.
Model confidence95%
AuthenticationNot required
LanguagesPHPDockerfile
Target softwareSabberworm PHP CSS Parser
Attack typescode injection
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidenceClassification basis and observed behavior
Classification basis
The primary artifact is a vulnerable test environment and verification instructions. The index.php script is a deliberately vulnerable test harness, not an exploit. The README provides a curl command that tests for the vulnerability by checking for a specific output string ('VULN_TEST'), which is scanner behavior (detection/validation) rather than exploitation. No standalone exploit code is present.
README.md:1-3README.md:39-46index.php:1-20Requirements
- Docker must be installed and running to build and run the container.
README.md:18 - The target application must be accessible via HTTP on the specified port.
README.md:43
Observed behavior
- Builds a Docker image with a vulnerable version of Sabberworm PHP CSS Parser (8.3.0) and a test script that passes user input to the vulnerable getSelectorsBySpecificity function.
Dockerfile:12-13index.php:14 - Provides a curl command that sends a payload to the test script and checks if the response contains 'VULN_TEST', indicating successful code execution.
README.md:42-44 - Includes a Nuclei template reference for automated vulnerability scanning.
README.md:50-52
Safety-review evidenceBehaviors behind the backdoor verdict
Observables
- Vulnerable Code
- index.php line 14: $selectors = $doc->getSelectorsBySpecificity('> ' . $_GET['n']);This is the exact vulnerable pattern described in CVE-2020-13756, where unsanitized user input reaches eval(). It is the intended PoC behavior, not a backdoor.
index.php:14 - Vulnerable Dependency
- composer.json requires sabberworm/php-css-parser 8.3.0The Dockerfile installs the vulnerable version of the library, consistent with the stated CVE scope.
Dockerfile:12-13
Review boundariesWhat the analysis did not establish
- One file (docker-compose.yml) is omitted from the text evidence; its content is unknown.
- The Nuclei template file (CVE-2020-13756.yaml) is referenced but not included in the evidence.
- One file (docker-compose.yml, 79 bytes) was not included as text content; only its metadata was provided. Its omission is noted but does not indicate backdoor behavior given the complete coverage of the core application files.
- Binary files were not inspected; the binary policy is FLAGGED_METADATA_ONLY_NOT_ANALYZED, and no binary files were identified in the artifact.
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.