This repository demonstrates the resolved vulnerabilities feedback feature in dependency-review-action using Java/Maven dependencies.
This repository contains a Spring Boot web application with intentionally vulnerable Java dependencies to test the positive feedback when security issues are resolved.
The pom.xml includes Maven dependencies with known vulnerabilities:
- Spring Boot 2.6.0 - Multiple security vulnerabilities in older versions
- Jackson Databind 2.12.0 - Deserialization vulnerabilities (CVE-2020-36518, etc.)
- Log4j 2.14.1 - Log4Shell and other RCE vulnerabilities (CVE-2021-44228, etc.)
- Commons Text 1.9 - String interpolation RCE (CVE-2022-42889)
- Commons Collections 3.2.1 - Deserialization RCE (CVE-2015-6420)
- H2 Database 1.4.200 - Multiple security issues
- SnakeYAML 1.27 - Deserialization vulnerabilities
The repository includes a Spring Boot web application that:
- Uses multiple vulnerable dependencies in working code
- Provides REST endpoints to demonstrate functionality
- Shows information about current dependency versions
- Exposes which vulnerabilities exist
GET /- Main info page with vulnerability detailsGET /test-jackson?json={}- Test Jackson JSON parsingGET /test-commons?text=hello- Test Commons Text and CollectionsGET /test-yaml?yamlContent=test: value- Test SnakeYAML parsingGET /health- Application health check
- View existing PR (if available) or create a new one
- Upgrade vulnerable dependencies in
pom.xml:And update individual dependencies:<spring-boot.version>3.2.0</spring-boot.version> <jackson.version>2.15.0</jackson.version> <log4j.version>2.21.0</log4j.version>
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-text</artifactId> <version>1.10.0</version> </dependency>
- Create PR and watch the resolved vulnerabilities feedback!
In PR Comments:
🎉 **10+ vulnerabilities resolved** by upgrading Java dependencies:
| Package | Old Version | Severity | Advisory |
|---------|-------------|----------|----------|
| log4j-core | 2.14.1 | Critical | Log4Shell RCE vulnerability |
| jackson-databind | 2.12.0 | High | Deserialization vulnerabilities |
| commons-text | 1.9 | High | String interpolation RCE |
...
In Action Logs:
- Detailed Java vulnerability information
- JSON output for automation
- Maven-specific dependency details
git checkout -b upgrade-all-java-deps
# Update pom.xml with latest secure versions
git commit -m "feat: upgrade all Java dependencies to resolve vulnerabilities"git checkout -b remove-unused-java-deps
# Remove commons-collections, commons-text, and other unused deps
git commit -m "feat: remove unused Java dependencies with vulnerabilities"git checkout -b fix-critical-java-vulns
# Only upgrade Log4j and Jackson (critical issues)
git commit -m "security: fix critical Java vulnerabilities (Log4Shell, Jackson)"The GitHub Actions workflow (.github/workflows/test-resolved-vulnerabilities.yml):
- ✅ Tests with JDK 17
- ✅ Uses Maven for dependency management
- ✅ Builds and tests the application
- ✅ Uses
david-wiggs/dependency-review-action@main - ✅ Shows Java-specific resolved vulnerability output
- ✅ Includes application testing and startup validation
# Compile the application
mvn clean compile
# Run tests
mvn test
# Start the application
mvn spring-boot:run
# Visit http://localhost:8080 to see vulnerability info
# Test endpoints:
# http://localhost:8080/test-jackson
# http://localhost:8080/test-commons
# http://localhost:8080/test-yaml✅ After testing: Upgrade to secure versions of all dependencies.
- Log4Shell (CVE-2021-44228): Remote code execution via Log4j JNDI lookup
- Jackson Deserialization: Object deserialization vulnerabilities
- Commons Collections: Unsafe deserialization leading to RCE
- Commons Text: String interpolation leading to RCE
- Spring Boot: Various security misconfigurations and bypasses
- SnakeYAML: Unsafe YAML deserialization
- H2 Database: SQL injection and other database vulnerabilities
The resolved vulnerabilities feature provides:
- JSON output for Maven-based automation scripts
- Positive feedback to encourage security improvements
- Detailed logging for security auditing
- Multi-ecosystem support across Java, Python, Node.js, etc.
Ready to test? Create a PR that upgrades the vulnerable Java dependencies and see the resolved vulnerabilities feature in action! 🚀