Dockerfile.admin-patched
A multi-stage Dockerfile that clones OneBlog v2.3.9 source, builds the blog-admin JAR with Maven, and packages it into a slim JRE 8 image exposing port 8085.
CVE-2025-60355/Dockerfile.admin-patched:1-15File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
Python 3 exploit for CVE-2025-60355, a FreeMarker SSTI vulnerability in OneBlog. The script authenticates to the admin interface, injects a malicious template, and triggers unauthenticated RCE via a public endpoint.
No backdoor observed in reviewed code
The PoC for CVE-2025-60355 is a straightforward Python script that automates a documented SSTI-to-RCE exploit chain against OneBlog. It uses only the Python standard library to authenticate, inject a FreeMarker payload, trigger execution via an unauthenticated endpoint, and restore the original template. All network connections are directed to operator-supplied targets, and no hidden data exfiltration, unrelated payloads, or deceptive behavior is present.
The primary artifact is poc/poc.py, a Python script that automates the full exploit chain: authentication, SSTI payload injection, and unauthenticated RCE trigger. The README and report describe it as a 'proof-of-concept' that 'demonstrates' and 'confirms' RCE. The code is intended to exercise the vulnerability, not merely detect it.
poc/poc.py:1-3poc/poc.py:269-277README.md:1-3poc_verification_report.md:1-3poc/poc.py:60-61poc/poc.py:330-331poc/poc.py:332-333poc/poc.py:88-142poc/poc.py:145-195poc/poc.py:198-232poc/poc.py:235-266poc/poc.py:98poc/poc.py:212poc/poc.py:67This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
A Docker-based lab for CVE-2025-60355, a FreeMarker SSTI vulnerability in OneBlog. It provides Dockerfiles to build vulnerable (v2.3.8) and claimed-patched (v2.3.9) versions of the blog-admin and blog-web services, along with a PoC script and documentation.
CVE-2025-60355/README.md:1-283CVE-2025-60355/Dockerfile.admin-patched:1-15CVE-2025-60355/Dockerfile.builder:1-9CVE-2025-60355/Dockerfile.builder-patched:1-9CVE-2025-60355/Dockerfile.web-patched:1-15The packet contains Dockerfiles, a PoC script, and documentation specifically designed to reproduce and demonstrate CVE-2025-60355, a FreeMarker SSTI vulnerability in OneBlog. The README explicitly describes it as a lab setup for this CVE.
CVE-2025-60355/README.md:1-3CVE-2025-60355/README.md:55-60A multi-stage Dockerfile that clones OneBlog v2.3.9 source, builds the blog-admin JAR with Maven, and packages it into a slim JRE 8 image exposing port 8085.
CVE-2025-60355/Dockerfile.admin-patched:1-15A Dockerfile that clones OneBlog v2.3.8 source and builds the blog-admin and blog-web JARs using Maven. It is used as a builder stage to extract the JARs.
CVE-2025-60355/Dockerfile.builder:1-9A Dockerfile that clones OneBlog v2.3.9 source and builds the blog-admin and blog-web JARs using Maven. It is used for comparison with the vulnerable version.
CVE-2025-60355/Dockerfile.builder-patched:1-9A multi-stage Dockerfile that clones OneBlog v2.3.9 source, builds the blog-web JAR with Maven, and packages it into a slim JRE 8 image exposing port 8443.
CVE-2025-60355/Dockerfile.web-patched:1-15A Python 3 script that authenticates to blog-admin, injects a FreeMarker SSTI payload into the TM_ROBOTS template, triggers RCE via the public /robots.txt endpoint on blog-web, and restores the original template.
CVE-2025-60355/poc/poc.py:1-341A shell script that builds the OneBlog v2.3.8 JARs using Dockerfile.builder, extracts them, and then builds the Docker Compose stack.
CVE-2025-60355/build.sh:1-45An SQL script that populates the dblog database with default articles, tags, system configurations, templates (including TM_ROBOTS), users, and permissions for the OneBlog application.
CVE-2025-60355/init_data.sql:1-312A report detailing the PoC script, test results confirming RCE on the vulnerable version, and notes on the vulnerability.
CVE-2025-60355/poc_verification_report.md:1-193Supported by supplied evidence
The provided evidence describes a FreeMarker SSTI vulnerability in OneBlog leading to RCE, matching the CVE description. The PoC script and documentation detail the attack chain, and the Dockerfiles build the vulnerable application.
CVE-2025-60355/README.md:1-3CVE-2025-60355/README.md:17-25CVE-2025-60355/poc/poc.py:1-341CVE-2025-60355/README.md:55-56CVE-2025-60355/README.md:57CVE-2025-60355/README.md:99CVE-2025-60355/README.md:60-62CVE-2025-60355/build.sh:1-45CVE-2025-60355/README.md:62-65CVE-2025-60355/README.md:103-106CVE-2025-60355/README.md:108-117The packet describes a self-contained vulnerability lab. The PoC script targets only the lab's own blog-admin and blog-web containers, using documented default credentials and endpoints. It includes a cleanup step to restore the original template. There is no evidence of host compromise, external communication, credential theft, data destruction, or any behavior outside the intended lab exercise.
CVE-2025-60355/poc/poc.py:1-341CVE-2025-60355/README.md:1-283This 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.
A Docker Compose lab for CVE-2025-60355, a FreeMarker SSTI vulnerability in OneBlog 2.3.8. It consists of four services: a Redis instance for session management, a MariaDB database with pre-seeded schema and data, a vulnerable blog-admin backend (port 8085) for template injection, and a blog-web frontend (port 8443) that triggers the RCE via public endpoints.
CVE-2025-60355/docker-compose.yml:1-82CVE-2025-60355/README.md:1-283The packet explicitly describes a vulnerability lab for CVE-2025-60355, including a vulnerable target (OneBlog 2.3.8), a proof-of-concept exploit script, and a Docker Compose environment to reproduce the SSTI-to-RCE chain.
CVE-2025-60355/README.md:1-3CVE-2025-60355/docker-compose.yml:1-2Redis 7 Alpine instance used by OneBlog for Shiro session management and caching. Configured with password 'oneblog123456' and append-only persistence.
CVE-2025-60355/docker-compose.yml:6-16MariaDB 10.11 database initialized with the OneBlog schema (dblog.sql) and seed data (init_data.sql), including default users, roles, permissions, and templates. Root password is 'root'.
CVE-2025-60355/docker-compose.yml:19-35CVE-2025-60355/Dockerfile.mysql:1-7OneBlog admin backend built from source at commit 8669276 (v2.3.8). Exposes port 8085. Provides the authenticated POST /template/edit endpoint used to inject the SSTI payload into the TM_ROBOTS template.
CVE-2025-60355/docker-compose.yml:38-54CVE-2025-60355/Dockerfile.admin:1-15OneBlog public frontend built from the same vulnerable source. Exposes port 8443. Serves unauthenticated endpoints like /robots.txt that render stored templates via the unsandboxed FreeMarkerUtil, triggering the injected RCE payload.
CVE-2025-60355/docker-compose.yml:57-73CVE-2025-60355/Dockerfile.web:1-15Supported by supplied evidence
The lab environment is explicitly built to demonstrate CVE-2025-60355. The README, PoC script, and verification report all describe the vulnerability as a FreeMarker SSTI in OneBlog leading to RCE, and the Docker Compose file sets up the exact vulnerable version (2.3.8) with the described attack surface.
CVE-2025-60355/README.md:1-3CVE-2025-60355/poc/poc.py:1-5CVE-2025-60355/poc_verification_report.md:1-8CVE-2025-60355/README.md:63-64CVE-2025-60355/README.md:65CVE-2025-60355/README.md:107CVE-2025-60355/README.md:69-72CVE-2025-60355/README.md:74CVE-2025-60355/README.md:113-115CVE-2025-60355/README.md:120-128CVE-2025-60355/README.md:130All visible behavior is directed at the lab's own target containers. The PoC script authenticates to the lab's admin service, injects a template, and triggers RCE on the lab's web service. It includes a cleanup step to restore the original template. There is no evidence of host compromise, external communication, credential theft, data destruction, or any action outside the documented exercise.
CVE-2025-60355/poc/poc.py:1-341CVE-2025-60355/README.md:1-283This 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.
A Docker Compose environment for a patched OneBlog 2.3.9 instance, consisting of MariaDB, Redis, blog-admin, and blog-web services, intended for CVE-2025-60355 vulnerability research.
CVE-2025-60355/docker-compose.patched.yml:1-97CVE-2025-60355/README.md:1-283The README explicitly describes this as a lab for CVE-2025-60355, a FreeMarker SSTI vulnerability in OneBlog. The Compose file defines a 'patched' stack for comparison, and the PoC script targets the lab's own services.
CVE-2025-60355/README.md:1-3CVE-2025-60355/docker-compose.patched.yml:1-3Redis 7 Alpine instance used for Shiro session management and caching, secured with a password.
CVE-2025-60355/docker-compose.patched.yml:7-17CVE-2025-60355/README.md:72MariaDB 10.11 container initialized with schema and seed data for the OneBlog application.
CVE-2025-60355/docker-compose.patched.yml:20-33CVE-2025-60355/README.md:73OneBlog admin backend (port 8085) where authenticated users can inject SSTI payloads via the template editor.
CVE-2025-60355/docker-compose.patched.yml:36-60CVE-2025-60355/README.md:74OneBlog public frontend (port 8443) that renders templates without sandboxing, allowing unauthenticated RCE trigger.
CVE-2025-60355/docker-compose.patched.yml:63-87CVE-2025-60355/README.md:75Supported by supplied evidence
The README, PoC script, and verification report all describe and demonstrate a FreeMarker SSTI vulnerability in OneBlog leading to RCE, consistent with CVE-2025-60355. The lab is explicitly built for this CVE.
CVE-2025-60355/README.md:1-3CVE-2025-60355/poc/poc.py:1-4CVE-2025-60355/poc_verification_report.md:1-8CVE-2025-60355/README.md:56-57CVE-2025-60355/docker-compose.patched.yml:52CVE-2025-60355/docker-compose.patched.yml:79CVE-2025-60355/README.md:97CVE-2025-60355/README.md:60-63CVE-2025-60355/README.md:103-106CVE-2025-60355/README.md:108-117CVE-2025-60355/poc/poc.py:1-341All visible behavior targets the lab's own services (admin and web containers) for the documented CVE-2025-60355 exercise. The PoC script authenticates, injects a payload, triggers RCE on the lab target, and cleans up. There is no evidence of host compromise, external communication, persistence, or any action outside the intended lab scope.
CVE-2025-60355/poc/poc.py:1-341CVE-2025-60355/README.md:1-283This 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.