Vulnerable SPA is an intentionally vulnerable Single Page Application (SPA) built with React and Spring Boot.
The project is designed as an open benchmark platform for evaluating and comparing modern Application Security and DevSecOps tools, including:
- SAST (Static Application Security Testing)
- DAST (Dynamic Application Security Testing)
- SCA (Software Composition Analysis)
- Container Security
- Secret Scanning
- AI-Assisted Security Review
The application contains intentionally introduced security weaknesses based on common OWASP Top 10 categories and provides a realistic environment for security testing, secure coding exercises, and DevSecOps pipeline validation.
- Demonstrate common web application vulnerabilities
- Provide a reproducible benchmark for security tools
- Support AppSec and DevSecOps training
- Validate CI/CD security pipelines
- Evaluate AI-powered security analysis solutions
- Practice secure coding and remediation techniques
- React
- JavaScript
- React Router
- Java 21
- Spring Boot 3
- Spring Security
- Maven
- H2 Database
- Semgrep
- SonarQube
- Trivy
- Docker Scout
- Gitleaks
- OWASP ZAP
vulnerable-spa/
βββ backend/
β βββ src/main/java/
β β βββ com/example/vulnerablespa/
β β βββ config/
β β βββ controller/
β β βββ dto/
β β βββ model/
β β βββ repository/
β β βββ security/
β βββ src/main/resources/
β βββ db/migration/
β βββ static/
β βββ application.properties
β
βββ frontend/
β βββ public/
β βββ src/
β βββ components/
β βββ pages/
β βββ utils/
β
βββ .github/
β βββ workflows/
β
βββ docs/
β
βββ Dockerfile
βββ pom.xml
βββ README.md
- Build Architecture:
docs/Maven-build.md - Vulnerability Documentation:
docs/ - Security Pipelines:
.github/workflows/
- Java 21+
- Maven 3.9+
- Node.js 20+
- Docker
git clone https://github.com/kremlsa/vuln-spa.git
cd vuln-spa
docker build -t vuln-spa .
docker run \
-e WAF_LEVEL=ADVANCED \
-p 8080:8080 \
vuln-spaAvailable WAF modes:
NONE
BASIC
ADVANCED
Application URL:
http://localhost:8080
Build frontend:
cd frontend
npm install
npm run buildBuild backend:
mvn clean installRun application:
mvn spring-boot:run- Authentication and session management
- User and administrator roles
- Notes CRUD operations
- Search functionality
- Cookie-based sessions
- Demonstration WAF
- REST API endpoints
- Security testing scenarios
Default credentials:
admin / admin
user / user
The project currently contains intentionally vulnerable implementations for educational and benchmarking purposes.
| ID | Category | OWASP |
|---|---|---|
| VS-001 | Cross-Site Scripting (XSS) | A03 |
| VS-002 | Broken Authentication | A07 |
| VS-003 | SQL Injection | A03 |
Documentation:
- XSS:
docs/XSS.md - Broken Authentication:
docs/Broken-Authentication.md - SQL Injection:
docs/SQL-Injection.md
The repository includes security pipelines for:
- Gitleaks
- Semgrep
- SonarQube
- Trivy
- Trivy Container Scan
- Docker Scout
- OWASP ZAP
Learn common web application vulnerabilities and remediation techniques.
Compare:
- Semgrep
- SonarQube
- CodeQL
- OWASP ZAP
- Trivy
- Docker Scout
- AI Security Agents
Test security gates and DevSecOps workflows before production adoption.
Evaluate AI-assisted vulnerability detection and security review capabilities.
This application intentionally contains security vulnerabilities.
DO NOT deploy it to production environments.
The project is intended solely for:
- Security education
- Tool benchmarking
- Research
- Training labs
Contributions are welcome.
Possible contribution areas:
- New vulnerability scenarios
- Additional benchmark cases
- Security tooling integrations
- Documentation improvements
- CI/CD enhancements
Please see CONTRIBUTING.md for details.
Licensed under the Apache License 2.0.
See LICENSE for details.
Alexander Kremlev
GitHub: https://github.com/kremlsa