Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-29145-Tester — This repository contains a proof-of-concept (PoC) environment designed to test for CVE-2026-29145. | Kitploit
Tools/GitHubGitHub/chenjp/cve-2026-29145-tester
Vulnerability AnalysisExploitationWeb SecurityPenetration TestingAuthenticationLearning & Education
GitHubchenjp/cve-2026-29145-tester

CVE-2026-29145-Tester

This repository contains a proof-of-concept (PoC) environment designed to test for CVE-2026-29145.

View Repository
4 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-29145 Testing Environment

📌 Overview

This repository contains a proof-of-concept (PoC) environment designed to test for CVE-2026-29145.

The vulnerability is an authentication bypass in Apache Tomcat's Mutual TLS (CLIENT_CERT) implementation. When OCSP (Online Certificate Status Protocol) is configured with soft-fail disabled, Tomcat may fail to treat an OCSP check failure as a hard denial. This allows a client with a potentially revoked or unverified certificate to bypass authentication if the OCSP responder is unreachable or returns an error.

🛡️ Vulnerability Details

PropertyValue
CVE IDCVE-2026-29145
CVSS Score9.1 (Critical) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Attack VectorNetwork
Privileges RequiredNone
ImpactAuthentication Bypass

Prerequisites for Vulnerability

  • ✓ CLIENT_CERT authentication enabled in Tomcat
  • ✓ OCSP revocation checking enabled
  • ✓ Soft-fail option disabled (hard-fail mode)
  • ✓ Unreachable or failing OCSP responder

🚀 Getting Started

Prerequisites

  • Docker & Docker Compose: To run the vulnerable Tomcat container
  • OpenSSL: To generate the PKI (Public Key Infrastructure) - usually pre-installed on Linux/macOS
  • Python 3.7+: To run the testing script and mock responder
  • curl (optional): For manual testing
  • PowerShell (Windows only): If using the .ps1 scripts

1. Automated Full Test Cycle (Recommended)

The run_test.sh script automates the entire process: cleanup, certificate generation, and running all test scenarios (vulnerable, success, and patched).

root@kitploit:~
# Navigate to the project directory
cd CVE-2026-29145-Tester

# Make scripts executable
chmod +x cleanup.sh setup_certs.sh run_test.sh

# Install Python dependencies (if poc_exploit.py requires them)
pip install -r requirements.txt

# Run the full test suite
./run_test.sh

2. Generate certificates

On Linux/macOS:

root@kitploit:~
./setup_certs.sh

On Windows (PowerShell):

root@kitploit:~
.\setup_certs.ps1

What this does:

  • Creates a Root CA (Certificate Authority)
  • Generates server certificate for Tomcat
  • Generates client certificate with OCSP extension pointing to http://localhost:8888
  • Validates all certificates were created successfully

Expected output:

root@kitploit:~
[INFO] Starting certificate generation for CVE-2026-29145 testing environment
[INFO] OpenSSL found: OpenSSL 3.0.x (...)
[INFO] Created certs directory
[INFO] Generating Root CA...
[INFO] Generating Server Certificate...
[INFO] Generating Client Certificate with OCSP Extension...
[INFO] Certificate setup completed successfully!

3. Start the vulnerable environment

root@kitploit:~
docker-compose up -d

What this does:

  • Starts the OCSP Mock Responder on port 8888 (simulates failure with HTTP 500)
  • Starts vulnerable Tomcat 10.1.52 on port 8443 with CLIENT_CERT authentication
  • Creates internal Docker network for service communication
  • Sets up health checks for both services

Verify containers are running:

root@kitploit:~
docker-compose ps

4. Run the exploitation test

root@kitploit:~
python poc_exploit.py

Expected outputs:

Vulnerable System:

root@kitploit:~
[INFO] Attempting connection to https://localhost:8443/protected-resource...
[WARNING] VULNERABLE: Access granted despite OCSP check failure.
[WARNING] Response preview: <html>...

Patched System:

root@kitploit:~
[INFO] Attempting connection to https://localhost:8443/protected-resource...
[INFO] NOT VULNERABLE: Access denied (Authentication working).

🧪 Testing Scenarios

ScenarioOCSP StatusExpected (Patched)Result (Vulnerable)Notes
Normal OperationOnline & Valid200 OK ✓200 OK ✓OCSP check succeeds, access granted
Soft FailureOffline/Timeout403 Forbidden ✓200 OK ✗BYPASS - OCSP responder unreachable
Hard RevocationOnline & Revoked403 Forbidden ✓403 Forbidden ✓Certificate explicitly revoked
Invalid CertificateInvalid Chain403 Forbidden ✓403 Forbidden ✓Chain validation fails

Running Different Test Scenarios

Test 1: Default (OCSP Responder Failing)

root@kitploit:~
# Keep containers running
python poc_exploit.py

Test 2: Stop OCSP Responder (Simulate Timeout)

root@kitploit:~
docker-compose pause ocsp-responder
python poc_exploit.py
docker-compose unpause ocsp-responder

Test 3: Manual Testing with curl

root@kitploit:~
curl -v \
  --cert certs/client-cert.pem \
  --key certs/client-key.pem \
  --cacert certs/ca-chain.pem \
  https://localhost:8443/protected-resource

🛠️ Project Structure

root@kitploit:~
CVE-2026-29145-Tester/
├── README.md                    # This file
├── setup_certs.sh              # Certificate generation script - Bash (Linux/macOS)
├── setup_certs.ps1             # Certificate generation script - PowerShell (Windows)
├── cleanup.sh                  # Cleanup and reset script - Bash (Linux/macOS)
├── cleanup.ps1                 # Cleanup and reset script - PowerShell (Windows)
├── run_test.sh                 # Automated full test cycle script
├── docker-compose.yml          # Docker service orchestration
├── requirements.txt            # Python dependencies
├── poc_exploit.py              # Main testing script (with logging and error handling)
├── simple_proxy_fail.py        # Mock OCSP responder (with detailed logging)
├── .gitignore                  # Git ignore rules for certificates and logs
├── certs/                      # Generated certificates (created by setup_certs scripts)
│   ├── ca-chain.pem           # Root CA certificate
│   ├── ca-key.pem             # Root CA private key
│   ├── server-cert.pem        # Tomcat server certificate
│   ├── server-key.pem         # Tomcat server private key
│   ├── client-cert.pem        # Test client certificate
│   └── client-key.pem         # Test client private key
├── tomcat/
│   └── server.xml             # Vulnerable Tomcat configuration
└── logs/                       # Tomcat logs (created at runtime)

📋 Configuration Details

Server.xml Configuration (Vulnerable)

The tomcat/server.xml file configures:

root@kitploit:~
<SSLHostConfig 
    hostName="localhost"
    certificateVerification="required"
    caCertificateFile="conf/certs/ca-chain.pem">
    
    <OpenSSLConf>
        <ConfCommand name="OCSP" value="on"/>
    </OpenSSLConf>
</SSLHostConfig>

Key Settings:

  • certificateVerification="required" - Enforces CLIENT_CERT authentication
  • OCSP on - Enables OCSP revocation checking
  • No soft-fail override - Uses hard-fail mode (vulnerable)

OCSP Responder Configuration

The mock OCSP responder (simple_proxy_fail.py):

  • Listens on localhost:8888
  • Always returns HTTP 500 (Server Error)
  • Logs all incoming OCSP requests
  • Simulates an unreachable/failing OCSP service

🔧 Troubleshooting

Common Issues & Solutions

❌ Error: "OpenSSL is not installed"

root@kitploit:~
# macOS
brew install openssl

# Ubuntu/Debian
sudo apt-get install openssl

# CentOS/RHEL
sudo yum install openssl

❌ Error: "Missing certificate files"

Cause: Certificate generation failed or was not run.

root@kitploit:~
# Clean up and regenerate
rm -rf certs
./setup_certs.sh

❌ Error: "Connection refused" on port 8443

Cause: Tomcat container is not running or not ready.

root@kitploit:~
# Check container status
docker-compose ps

# Check logs
docker-compose logs vulnerable-tomcat

# Ensure both services are running and healthy
docker-compose up -d
sleep 10  # Wait for services to start

❌ Error: "Connection timeout"

Cause: Tomcat taking too long to start or network issues.

root@kitploit:~
# Check Tomcat startup logs
docker-compose logs vulnerable-tomcat

# Increase timeout and retry
timeout 30 docker-compose logs -f vulnerable-tomcat  # Monitor startup

❌ Error: "docker-compose: command not found"

Cause: Docker Compose not installed or not in PATH.

root@kitploit:~
# Install Docker Compose (if using standalone)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.x.x/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Or use docker compose (V2 integrated with Docker Desktop)
docker compose up -d

❌ Error: "SSL: CERTIFICATE_VERIFY_FAILED"

Cause: Certificate validation failing.

root@kitploit:~
# Verify certificate files exist
ls -la certs/

# Check certificate validity
openssl x509 -in certs/client-cert.pem -noout -text

❌ Error: "requests.exceptions.SSLError"

Cause: SSL handshake failure - may indicate hard-fail is working correctly.

Solution: This is actually a positive sign! The hard-fail is preventing access when OCSP fails.

root@kitploit:~
# Check if OCSP responder is running
docker-compose ps ocsp-responder

# View detailed error
python poc_exploit.py  # Already provides detailed logging

❌ Error: "Address already in use"

Cause: Port 8443 or 8888 is already in use.

root@kitploit:~
# Find process using the port
lsof -i :8443
lsof -i :8888

# Kill the process or use different ports in docker-compose.yml

Debugging & Logs

View detailed logs

root@kitploit:~
# Tomcat logs
docker-compose logs -f vulnerable-tomcat

# OCSP responder logs
docker-compose logs -f ocsp-responder

# Python script debugging
python poc_exploit.py  # Already includes detailed logging

Monitor real-time events

root@kitploit:~
# Open terminal and run
docker-compose logs -f

# In another terminal, run test
python poc_exploit.py

Network debugging

root@kitploit:~
# Test connectivity to OCSP responder
curl http://localhost:8888/

# Test OCSP responder from inside Tomcat container
docker exec vulnerable-tomcat curl http://ocsp-responder:8888/

# Test SSL handshake
openssl s_client -connect localhost:8443 \
  -cert certs/client-cert.pem \
  -key certs/client-key.pem \
  -CAfile certs/ca-chain.pem

🧹 Cleanup

To remove all containers, volumes, certificates, and logs:

On Linux/macOS:

root@kitploit:~
./cleanup.sh

On Windows (PowerShell):

root@kitploit:~
.\cleanup.ps1

What this does:

  • Stops and removes all Docker containers
  • Removes the generated certs/ directory
  • Removes the logs/ directory
  • Cleans up Python cache files

Verify cleanup:

root@kitploit:~
docker-compose ps  # Should show nothing
ls -la certs/      # Should not exist

⚖️ Disclaimer

This project is for educational and authorized security testing purposes only.

  • ⚠️ Only use against systems you own or have explicit written permission to test
  • ⚠️ Using these tools against systems without authorization is illegal and unethical
  • ⚠️ The authors are not responsible for any misuse of this software
  • ⚠️ Always ensure you have proper backups before testing on production systems

📝 Remediation

To mitigate this vulnerability, upgrade Apache Tomcat to the following versions:

Version SeriesMinimum Fixed Version
11.0.x11.0.20 or later
10.1.x10.1.53 or later
9.0.x9.0.116 or later

Upgrade steps:

root@kitploit:~
# Example: Update docker-compose.yml to use patched version
# Change: image: tomcat:10.1.52-jdk17
# To: image: tomcat:10.1.53-jdk17

docker-compose down
docker-compose up -d

🔗 References

  • CVE-2026-29145 Details
  • Apache Tomcat Documentation
  • OCSP (RFC 6960)
  • Mutual TLS (mTLS) Overview

📬 Support

For issues, questions, or contributions, please open an issue or submit a pull request.


Last Updated: April 2026
Status: Testing & Documentation Complete

Download Tool