Frameworks & bibliothèques scannés
Nous testons la couverture sur ces frameworks via fixtures. De nouveaux patterns sont ajoutés à chaque release de règles builtin.
Principales classes CWE détectées
Ces classes CWE apparaissent le plus souvent dans les codebases modernes de ce langage. StaticCodeAudit livre des règles dédiées pour chacune, mappées à OWASP Top 10 / ISO 27001 / ASVS quand pertinent.
CWE-89
Injection SQL
Concaténation de strings en JDBC Statement, JPA createQuery avec concat, MyBatis ${...} au lieu de #{...}, Hibernate HQL avec format de string.
Détecté par la règle SCA : sql_injection_concat_java
CWE-611
XML External Entity (XXE)
DocumentBuilderFactory, SAXParserFactory, XMLReader sans FEATURE_SECURE_PROCESSING ni DTD désactivé. Permet fuite de fichiers et SSRF.
Détecté par la règle SCA : xxe_injection
CWE-502
Désérialisation non sécurisée
ObjectInputStream.readObject Java natif sur bytes non fiables (la classe « Java serialization gadget » qui a mené à log4shell). Les payloads Apache Commons Collections fonctionnent encore en 2026.
Détecté par la règle SCA : unsafe_deserialization
CWE-78
Injection de commande OS
Runtime.getRuntime().exec(userString) avec string shell, ProcessBuilder avec concat. Les deux interprètent les métacaractères shell.
Détecté par la règle SCA : command_injection_java
CWE-798
Identifiants en dur
Identifiants dans application.properties committé, clés AWS dans application.yml, secret de signature JWT en constante String.
Détecté par la règle SCA : hardcoded_secret
CWE-22
Path Traversal
new File(userPath), Files.readAllBytes(Paths.get(userPath)) sans contrôle d'ancrage racine — typique avec endpoints de stockage de fichiers multi-tenant.
Détecté par la règle SCA : path_traversal_python
Vulnérable vs. sain — trois exemples rapides
CWE-89
Détecté par la règle SCA : sql_injection_concat_java
// Vulnérable — Statement concat
String sql = "SELECT * FROM users WHERE name = \'" + name + "\'";
ResultSet rs = stmt.executeQuery(sql);
// Sain — PreparedStatement avec bind
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM users WHERE name = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
CWE-611
Détecté par la règle SCA : xxe_injection
// Vulnérable — DocumentBuilderFactory par défaut
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
Document doc = dbf.newDocumentBuilder().parse(input);
// Sain — désactiver DTD + secure processing
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
Document doc = dbf.newDocumentBuilder().parse(input);
CWE-78
Détecté par la règle SCA : command_injection_java
// Vulnérable — string shell
Runtime.getRuntime().exec("ping -c 1 " + userInput);
// Sain — array d'arguments, pas d'interprétation shell
ProcessBuilder pb = new ProcessBuilder("ping", "-c", "1", userInput);
pb.start();
Ce que StaticCodeAudit détecte (ce langage)
- Injection SQL en JDBC
Statement, JPA, MyBatis, Hibernate HQL avec concat - XXE dans
DocumentBuilderFactory,SAXParserFactory,XMLReader - Désérialisation native Java sur streams non fiables
- Injection de commande via
Runtime.exec,ProcessBuilderavec string shell - Secrets en dur dans
application.properties,application.yml - Path traversal dans
new File,Files.readAllBytessans ancrage racine - Injection LDAP dans
DirContext.search - Cookies non sécurisés (
setSecure,setHttpOnlymanquants en Servlet API) - CSRF : Spring Security
.csrf().disable()en config production - Crypto non sécurisée (MD5/SHA1 sécurité, DES, RC4, IV en dur)
- JWT algorithme none, secret HS256 en dur
- Sinks Log4j (détection pattern CVE-2021-44228)
- APIs dépréciées (SSLv3, javax.xml.ws Endpoint, sun.misc.Unsafe)
- Misconfigurations CI/CD (Maven/Gradle wrappers, tokens GitHub Actions)
Auditez votre code
Auditez Spring Boot, JEE, Hibernate et JDBC contre les vulnérabilités OWASP Top 10, misconfigurations de framework et risques supply-chain — sans téléverser de code dans le cloud.
Télécharger le binaire démo Réserver une démo guidée