PoC files

10 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 is a fully functional Python exploit for CVE-2026-63223, a file upload RCE vulnerability in CodeIgniter 4. It generates a malicious PHP webshell disguised with image magic bytes, uploads it to a vulnerable endpoint, and provides command execution and an interactive shell.

Backdoor review

No backdoor observed in reviewed code

The supplied evidence consists of a Dockerfile, README, and Python exploit script for CVE-2026-63223. All three files describe and implement a legitimate proof-of-concept for the disclosed vulnerability: uploading a file with image magic bytes and a .php extension to bypass CodeIgniter 4's is_image/mime_in validation. The exploit script generates a payload, uploads it, and executes commands via the uploaded webshell. No concealed, deceptive, or unrelated harmful behavior was observed. The artifact's behavior is consistent with the stated CVE and does not contain backdoor functionality.

ClassificationExploit
Model confidence98%
AuthenticationNot required
LanguagesPythonPHPDockerfile
Target softwareCodeIgniter 4
Attack typesRemote Code Execution (RCE)Unrestricted File Upload
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidence

Classification basis and observed behavior

Classification basis

The primary artifact is the Python script 'exploit/exploit.py', which is explicitly designed to exercise the CVE-2026-63223 vulnerability by uploading a malicious file and executing commands on the target. The README describes it as a 'PoC' and provides usage instructions for exploitation, including command execution and an interactive shell. The Dockerfile sets up a vulnerable lab environment for testing the exploit. This code is intended to achieve remote code execution, not merely detect or report the vulnerability.

exploit/exploit.py:1-18README.md:1-6README.md:135-151

Requirements

  • A target running a vulnerable version of CodeIgniter 4 (< 4.7.4) with an upload endpoint that uses is_image or mime_in validation without an independent extension check, saves files with the client-supplied filename, and stores them in a web-accessible directory.README.md:16-20
  • The Python 'requests' library must be installed.exploit/exploit.py:27-31

Observed behavior

  • Generates a PHP webshell payload prepended with image magic bytes (GIF, JPEG, or PNG) to bypass content-based MIME type validation.exploit/exploit.py:36-78
  • Uploads the malicious file to a specified target URL via a multipart POST request, simulating an unauthenticated attacker.exploit/exploit.py:99-136
  • Attempts to discover the uploaded file's path from the server response or by guessing common paths.exploit/exploit.py:138-161
  • Executes arbitrary system commands on the target server by sending HTTP requests to the uploaded webshell and displays the output.exploit/exploit.py:163-211
  • Provides an interactive shell mode for continuous command execution.exploit/exploit.py:213-231
Safety-review evidence

Behaviors behind the backdoor verdict

Observables

Exploit Script
exploit/exploit.pyPython script that generates a PHP webshell with image magic bytes, uploads it to a target endpoint, and provides command execution and interactive shell capabilities. This is the core PoC for CVE-2026-63223.exploit/exploit.py:1-300
Vulnerable Lab Setup
DockerfileDockerfile sets up a CodeIgniter 4.7.3 environment with a vulnerable upload controller, matching the CVE description. It installs the framework, configures Apache, and copies vulnerable application code.Dockerfile:1-56
Documentation
README.mdREADME explains the vulnerability, patch analysis, PoC components, and usage instructions. It includes manual exploitation steps and detection queries, all aligned with the CVE.README.md:1-305
Review boundaries

What the analysis did not establish

  • The evidence includes only 3 of 10 files from the repository. The 7 omitted files (e.g., docker-compose.yml, vulnerable-app controllers/views) are not provided, so their content cannot be analyzed.
  • The analysis is based solely on static review of the provided text; the code was not executed, and its effectiveness or safety is not verified.
  • 7 files (16897 bytes) were classified as unclassified and only metadata was provided; their content was not reviewed.
  • The analysis is limited to the supplied text evidence; no dynamic execution or binary analysis was performed.
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

docker-compose.yml

Created
Vuln labCVE-2026-63223Compose · builds

1 Compose manifest · 1 Dockerfile · 1 service

Analysisdeepseek-v4-pro:cloud ·

Environment assessment

A Docker-based lab for CVE-2026-63223, a file upload RCE vulnerability in CodeIgniter 4. It runs a vulnerable PHP application with three upload endpoints (two vulnerable, one safe) and includes an exploit script.

README.md:1-3docker-compose.yml:1-12Dockerfile:1-56

Lab assessment

Vulnerability lab

The README explicitly states it is a PoC for CVE-2026-63223, the Dockerfile pins a vulnerable version of CodeIgniter (4.7.3), and the controller implements vulnerable and safe upload endpoints for demonstration.

README.md:1Dockerfile:30-32vulnerable-app/app/Controllers/Upload.php:1-18
Lab shapeCompose · builds
Services1
Compose manifests1
Dockerfiles1
Evidence & reasoningComponents · CVE assessment · exercise context · review boundaries
Components

Services and files described by the evidence

vuln-app

vulnerable web applicationCodeIgniter 4.7.3 target

A PHP 8.2 Apache service built from the Dockerfile. It runs CodeIgniter 4.7.3 with a custom upload controller exposing three endpoints: /upload/avatar (vulnerable is_image), /upload/document (vulnerable mime_in), and /upload/safe (patched is_image+ext_in). Uploaded files are saved in a web-accessible public/uploads directory.

docker-compose.yml:2-3Dockerfile:1-56vulnerable-app/app/Controllers/Upload.php:1-114vulnerable-app/app/Config/Routes.php:1-24

exploit.py

exploit scriptproof-of-concept

A Python script that generates a PHP webshell with image magic bytes, uploads it to the vulnerable endpoints, and provides command execution or an interactive shell. It targets the lab's own vulnerable application.

exploit/exploit.py:1-300
CVE assessment

How the supplied evidence relates each vulnerability

CVE-2026-63223

Supported by supplied evidence

The entire lab is built around demonstrating CVE-2026-63223. The README describes the vulnerability, the Dockerfile installs the vulnerable version 4.7.3, the controller implements the vulnerable validation rules, and the exploit script targets the described bypass.

README.md:1Dockerfile:30-32vulnerable-app/app/Controllers/Upload.php:25-30exploit/exploit.py:1-6
Exercise context

Requirements and sequence described by the evidence

Prerequisites

  • Docker and Docker Compose installed on the host to build and run the lab.README.md:107-109
  • Python 3 and the 'requests' library to run the exploit script.exploit/exploit.py:20-22
  • Network access to the lab's port 8080 on the host.docker-compose.yml:4-5

Evidence-described exercise path

  1. Build and start the vulnerable lab with 'docker compose up -d'.README.md:107-109
  2. Verify the lab is running by accessing the health check endpoint.README.md:111-113
  3. Run the exploit script against the vulnerable /upload/avatar or /upload/document endpoint to upload a malicious PHP file and execute commands.README.md:131-137
  4. Alternatively, manually craft a payload with image magic bytes and upload it via curl, then access the uploaded file to execute commands.README.md:143-155
Safety-review evidence

Behaviors behind the stored safety assessment

No harmful behavior observed

All visible behavior is confined to the lab container. The exploit script targets only the lab's own vulnerable application on localhost:8080. There are no hidden payloads, no host escape mechanisms, no credential theft, and no external connections. The Dockerfile and compose file use standard lab configurations (bind mounts for source code, port mapping) without privileged mode or suspicious commands.

exploit/exploit.py:1-300docker-compose.yml:1-12Dockerfile:1-56
Review boundaries

What the analysis did not establish

  • The .gitignore file is not included in evidence_files, but its absence does not affect the analysis.
  • The exploit script is a text file and its behavior is fully visible; no binary files are present.
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