
This repository contains a complete, validated Nuclei template for detecting CVE-2019-18935 (Telerik UI for ASP.NET AJAX Deserialization RCE), created for the ProjectDiscovery bounty program.
CVE-2019-18935 is a critical .NET deserialization vulnerability in Progress Telerik UI for ASP.NET AJAX (versions 2011.1.315 through 2019.3.1023) that allows unauthenticated remote code execution. This vulnerability:
.
├── README.md # This file
├── BOUNTY_PLAN.md # Original planning document
├── nuclei-templates/
│ └── cves/
│ └── 2019/
│ └── CVE-2019-18935.yaml # Main Nuclei template
├── docker-environment/ # Vulnerable test environment
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── web.config
│ ├── Default.aspx
│ └── README.md
├── scripts/ # Exploitation and validation scripts
│ ├── RAU_crypto.py # Encryption helper module
│ ├── telerik_version_detect.py # Version detection tool
│ └── telerik_exploit_poc.py # POC validation script
├── documentation/ # Technical documentation
│ ├── TESTING.md # Testing guide
│ └── METHODOLOGY.md # Detection methodology
├── debug-output/ # Debug logs and results (to be generated)
└── payloads/ # Test payloads (optional)
✅ Complete POC Implementation - Not just version detection
✅ Multi-Stage Validation - Handler discovery + version check + exploitation proof
✅ Low False Positives - AND condition across multiple matchers
✅ Non-Destructive - Safe testing without actual exploitation
✅ Comprehensive Extraction - Version info, error details, detection stages
✅ Well Documented - Full methodology and testing guides included
# Install Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Install Python dependencies (for validation scripts)
pip3 install -r requirements.txt
# Install Docker (for test environment)
# See: https://docs.docker.com/get-docker/
# Test against a single target
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://target.com \
-v
# Test with debug output
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://target.com \
-debug -v
# Test against multiple targets
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-l targets.txt \
-json -o results.json
# Navigate to docker environment
cd docker-environment
# Important: Obtain Telerik.Web.UI.dll first (see docker-environment/README.md)
# Place the DLL in this directory
# Build and start
docker-compose up -d
# Verify it's running
curl http://localhost:8080/Telerik.Web.UI.WebResource.axd?type=rau
# Test the template
nuclei -t nuclei-templates/cves/2019/CVE-2019-18935.yaml \
-u http://localhost:8080 \
-debug -v \
2>&1 | tee debug-output/test-run.log
[CVE-2019-18935] [http] [critical] http://localhost:8080/Telerik.Web.UI.WebResource.axd
[EXTRACTED]
telerik_version: 2017.2.503.40
detection_stage: Handler detected in request 1, Version in request 2, Deserialization in request 3
error_details: Exception at Telerik.Web.UI...
cd scripts
# Detect Telerik version and check vulnerability
python3 telerik_version_detect.py http://target.com
# Output:
# [+] Handler found: http://target.com/Telerik.Web.UI.WebResource.axd?type=rau
# [+] Detected version: 2017.2.503
# [!] VULNERABLE: Version in range 2011.1.315 - 2019.3.1023
# Run non-destructive POC
python3 telerik_exploit_poc.py http://target.com/Telerik.Web.UI.WebResource.axd?type=rau
# Output:
# [+] Handler is accessible
# [+] Upload capability confirmed
# [+] Deserialization processing detected
# [!] VULNERABILITY: CONFIRMED
The template uses a three-stage detection process:
Stage 1 - Handler Discovery:
/Telerik.Web.UI.WebResource.axd?type=rauStage 2 - Version Enumeration:
rauPostData parameterStage 3 - Exploitation Proof:
__type deserialization markerAll three stages must succeed for positive detection (AND condition).
See documentation/METHODOLOGY.md for complete technical details.
⚠️ Important: This template is tagged as intrusive because it:
Only use this template against:
Legal compliance is your responsibility.
curl http://target/Telerik.Web.UI.WebResource.axd?type=raupython3 scripts/telerik_exploit_poc.py <url>nuclei -t template.yaml -u <url> -debugdocker-compose logsSee TESTING.md for complete troubleshooting guide.
This template was created for the ProjectDiscovery bounty program. For improvements or issues:
This work is provided for security research and authorized testing only. Use responsibly and legally.
Created for ProjectDiscovery Bounty Program
Research Date: December 2025
Status: Ready for submission ✅