The repo demonstrates Jackson serialization vulnerability as described in:
- https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062
- https://medium.com/@swapneildash/understanding-insecure-implementation-of-jackson-deserialization-7b3d409d2038
- https://blog.doyensec.com/2019/07/22/jackson-gadgets.html
The exploitable vulnerability demonstrated here is: https://snyk.io/vuln/SNYK-JAVA-COMFASTERXMLJACKSONCORE-32043. We demonstrate the exploit by remotely executing a calculator app.
- A vulnerable app, run using Micronaut web framework.
- The app exposes two endpoints - POST to
/user, and POST to/org. Both endpoints are vulnerable but the vulnerability is enabled in two different ways. SeeAppController.java
java 8mavenrealpathunix command line utility (just to run the script)
mvn installmvn exec:execto run the Micronaut servercd exploit && ./run_org_exploit.shorcd exploit && ./run_user_exploit.sh
You should see the calculator app popping up.