Add Additional Educational Security Vulnerabilities for Demo Enhancement
Summary
This MR implements 6 additional educational security vulnerabilities to enhance the DevSecOps demo application, providing a comprehensive security testing playground for GitLab's security scanning capabilities.
New Vulnerabilities Added
- Route:
/fetch-url - Allows fetching arbitrary URLs without validation
- Demonstrates internal service access risks and cloud metadata access
- Route:
/debug-info - Exposes environment variables, system paths, and configuration
- High demo value for showing information leakage
- Route:
/load-data - Unsafe pickle deserialization vulnerability
- Critical severity - allows arbitrary code execution
- Route:
/parse-xml - Unsafe XML parsing with external entity resolution
- Classic vulnerability with excellent learning value
- Route:
/user/<user_id> - Missing authorization checks for user profile access
- Common web application vulnerability
- Route:
/increment-counter - File-based counter with time-of-check-to-time-of-use vulnerability
- Demonstrates concurrency issues
Key Features
- Educational Focus: Each vulnerability includes comprehensive documentation explaining the security issue, potential impact, and attack vectors
- CWE References: All vulnerabilities properly tagged with Common Weakness Enumeration identifiers
- Demo-Ready: Interactive routes with example payloads and clear explanations
- Scanner Compatible: Designed to be detected by GitLab's security scanning tools
Testing
All new routes are functional and ready for security testing:
- SSRF endpoint accepts URL input and demonstrates internal service access
- Information disclosure shows sensitive system data
- Deserialization endpoint uses pickle with base64 encoding
- XXE parser accepts XML with external entity resolution
- IDOR allows enumeration of user profiles without authorization
- Race condition counter demonstrates concurrent access issues
Test plan
-
Verify all 6 new routes are accessible and functional -
Test that GitLab security scanners detect the new vulnerabilities -
Confirm educational documentation is clear and comprehensive -
Validate that existing functionality remains intact -
Ensure pipeline passes with expected security findings
Closes #28