
Poc for CVE-2026-34197
This repository contains a local lab for studying CVE-2026-34197 in Apache ActiveMQ Classic and for comparing a vulnerable instance against a patched build.
The repository is organized to support two goals:
This repository is provided strictly for lawful, authorized, defensive security research in isolated lab environments that you own or are explicitly permitted to test.
By using any material in this repository, you agree that:
This repository is not intended for offensive operations. It is intended for validation, education, detection engineering, patch verification, and controlled demonstration only.
If you are unsure whether you are authorized to run this material, do not run it.
This lab focuses on Apache ActiveMQ Classic behavior around CVE-2026-34197:
apache/activemq-classic:5.19.25.19.4.
├── activemq-patched
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── instructions.txt
│ └── poc.xml
├── docker-compose.yml
├── instructions.txt
└── poc.xml
The root of this repository contains the vulnerable lab:
docker-compose.yml starts an ActiveMQ Classic 5.19.2 container with the web console and Jolokia exposed on localhost.instructions.txt contains the local lab workflow used to validate the vulnerable behavior.poc.xml is the XML payload template used in the lab.Typical exposed ports in the vulnerable compose file:
8161 - Web Console / Jolokia61616 - OpenWire61613 - STOMP1883 - MQTT5672 - AMQPStart the vulnerable lab:
docker compose up -d
The activemq-patched/ directory contains a patched comparison environment:
5.19.4Typical exposed ports in the patched compose file:
8261 - Web Console / Jolokia62616 - OpenWireDownload the archived 5.19.4 release tarball:
cd activemq-patched
wget https://archive.apache.org/dist/activemq/5.19.4/apache-activemq-5.19.4-bin.tar.gz
Build the local image:
docker build \
-t pssec/activemq-classic:5.19.4 \
--build-arg ACTIVEMQ_VERSION=5.19.4 \
-f Dockerfile .
Start the patched lab:
docker compose up -d
Use the provided instructions.txt files for the lab flow.
Expected high-level outcome:
VM scheme is not allowed.In a real internal test, prefer a safe, observable, non-destructive command instead of anything invasive.
A simple example is to create a temporary file such as:
touch /tmp/pssec_validation_marker
Then verify the result from the host:
docker exec -it cve-2026-34197-activemq ls -l /tmp/pssec_validation_marker
For the patched environment, the equivalent validation should fail to create the file when the fix is working as expected.
This is safer than using an interactive payload and is usually enough to prove:
127.0.0.1 where practical.PSsec: https://pssec.io