BOLA
OWASP #1Broken Object Level Authorization — accès direct aux objets sans vérification
Un attaquant modifie l'ID dans l'URL et accède aux données d'autres utilisateurs — factures, profils, fichiers privés. Aucune élévation de privilège requise.
Référence des catégories
Tout ce qu'Herozion détecte — avec la description du problème et l'impact réel si la vulnérabilité est exploitée.
Broken Object Level Authorization — accès direct aux objets sans vérification
Un attaquant modifie l'ID dans l'URL et accède aux données d'autres utilisateurs — factures, profils, fichiers privés. Aucune élévation de privilège requise.
Mots de passe en dur, tokens statiques, secrets exposés
Contournement d'authentification, usurpation d'identité d'autres utilisateurs ou d'administrateurs. Accès total aux comptes sans connaître le mot de passe.
Broken Function Level Authorization — endpoints admin non protégés
Un utilisateur normal appelle des endpoints admin — suppression de comptes, modification des rôles, accès aux logs — sans aucune restriction.
Données utilisateur passées directement aux modèles sans filtrage
En injectant des champs non prévus (ex. isAdmin: true), un attaquant escalade ses privilèges ou modifie des données protégées.
SQL injection, command injection, XSS, eval() dangereux
Exécution de commandes arbitraires, lecture ou suppression de la base de données entière, vol de sessions — la famille de vulnérabilités la plus destructrice.
Endpoints sans limitation de débit — exposition aux attaques brute force
Attaques brute force sur les mots de passe, scraping massif de données, déni de service sur les endpoints publics.
DEBUG = False, SECRET_KEY exposée, CORS permissif
Exposition des traces d'erreur et de la stack trace, des clés secrètes dans les headers, ou accès cross-origin non autorisé à l'API.
Sérialisation complète d'objets, champs sensibles exposés en réponse
Des hashes de mots de passe, tokens internes ou données personnelles sont exposés dans chaque réponse API et lisibles sans effort par n'importe quel client.
Vérification SSL désactivée, connexions HTTP non sécurisées
Les communications réseau peuvent être interceptées et lues par un tiers sur le même réseau — identifiants, tokens, données sensibles à nu.
Tokens sans expiration, absence de nonce dans les requêtes
Une requête légitime capturée (paiement, action admin) peut être rejouée à l'infini sans nouvelle authentification.
Webhooks sans vérification de signature — contrefaçon possible
N'importe qui forge une notification webhook et déclenche des actions dans votre système — livraisons, paiements ou alertes frauduleuses.
Timeouts absents, lecture complète en mémoire sans limites
Une seule requête malformée peut épuiser la mémoire ou bloquer le thread principal, rendant le service indisponible pour tous les utilisateurs.
Absence de validation MIME type, chemins de fichiers non sécurisés
Upload et exécution de scripts malveillants côté serveur, ou lecture de fichiers système arbitraires via path traversal.
Requêtes N+1, list() sur queryset complet, import *, anti-patterns
Les requêtes N+1 et les anti-patterns créent des goulots d'étranglement qui dégradent l'expérience utilisateur et font exploser les coûts d'infrastructure.
Données sensibles non chiffrées au repos ou en transit — mots de passe en clair dans les logs, PII exposées dans les réponses API
Mots de passe, tokens ou données personnelles circulent ou sont stockés en clair — une seule fuite de base de données expose tous vos utilisateurs.
Dépendances avec des versions connues comme vulnérables dans package.json, requirements.txt, composer.json
Une dépendance vulnérable peut être exploitée via un CVE public pour prendre le contrôle du serveur, voler des données ou effectuer un pivot réseau.
Terraform, Helm, K8s YAML — misconfigs de sécurité dans les fichiers IaC : ports exposés publiquement, conteneurs en mode privilégié, secrets dans les env vars des pods
Une misconfiguration Terraform peut exposer une base de données entière sur internet en quelques secondes — le vecteur d'incident cloud le plus fréquent.
Licences open source incompatibles — GPL, AGPL, LGPL dans un projet propriétaire : risques légaux détectés dans package.json, requirements.txt, composer.json
Utiliser une lib GPL dans un SaaS propriétaire peut contraindre l'ouverture du code source entier — risque légal majeur détecté en audit enterprise.
Image de base non épinglée (FROM node:latest), utilisateur root par défaut, secrets dans les ARG/ENV, ports sensibles exposés
Un container root avec une image non épinglée est exploitable via n'importe quelle CVE publiée après le dernier build, souvent sans alerte.
CVE dans une dépendance mais fonction vulnérable jamais appelée : alerte réduite de HIGH à INFO, réduction du bruit jusqu'à 90%
Sans reachability, des dizaines d'alertes sont générées pour des CVE dans des libs jamais utilisées — alert fatigue qui noie les vraies urgences.
Token hardcodé encore actif ou déjà révoqué ? Appel API opt-in pour distinguer une urgence réelle d'un secret obsolète
Un secret actif dans un vieux fichier ou commit passé suffit pour qu'un attaquant accède à vos services cloud, APIs ou dépôts Git en temps réel.
Inventaire signé SPDX/CycloneDX de toutes les dépendances directes et transitives — requis NIS2, Cyber Resilience Act, SOC 2
Sans SBOM, impossible de répondre en 10 minutes à "êtes-vous affecté par Log4Shell ?" lors d'un incident, ou de passer un audit NIS2 ou SOC 2.
GitHub Actions, GitLab CI, Jenkinsfile : secrets en clair, actions non épinglées par hash, permissions trop larges (write-all)
Un pipeline CI/CD compromis injecte du code malveillant dans vos releases avant qu'elles arrivent en production — supply chain attack invisible.
OWASP LLM Top 10 : prompt injection, clés OpenAI/Anthropic hardcodées, absence de validation des outputs, rate limiting absent
Un prompt injection peut amener votre LLM à divulguer des données confidentielles, exécuter des actions non autorisées, ou contourner vos garde-fous.
Vulnérabilités mappées aux contrôles ISO 27001, SOC 2 Type II, PCI-DSS, NIS2 — rapport exportable sans scan supplémentaire
Chaque audit SOC 2 ou ISO 27001 mobilise plusieurs jours de travail manuel pour mapper les vulnérabilités aux contrôles — coût et délai entièrement évitables.
CVE dans les packages système (OpenSSL, curl, bash) via Docker socket local : herozion scan --docker myapp:latest
Des packages OS vulnérables (OpenSSL, curl) dans l'image finale peuvent être exploités même si votre code source est parfaitement propre.