CVE-2026-42016 : élévation de privilèges dans JFrog Artifactory par contournement de validation de portée de jeton
SCORE DE MENACE HERMES & ÉLÉVATION DE PRIVILÈGES DANS ARTIFACTORY
Cible :JFrog Artifactory (Gestionnaire de Dépôt Binaire Self-Hosted) Le CVSS v3.1 attribue à la CVE-2026-42016 le score de 8.8 (Élevé, CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). Le score de menace Hermes évalue la sévérité à 94 (CRITIQUE). Cette divergence s'explique par le fait que la possession de n'importe quel jeton valablement signé — y compris un jeton développeur restreint, un compte de service ou un jeton anonyme issu de la CVE-2026-42018 — permet une élévation immédiate au rang d'administrateur, ouvrant la voie à la substitution malveillante de binaires et à l'empoisonnement global de la supply chain CI/CD.
CVE-2026-42016: Privilege Escalation in JFrog Artifactory via Token Scope Authorization Validation BypassVULNÉRABILITÉ
Software platform affected by security vulnerabilities and agentic attack patterns.
🔍 Pourquoi cette relation ? (Preuves & Provenance)
“Confirmed security vulnerability in JFrog Artifactory documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source : Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Fiabilité : VERY_HIGH)
1. Contexte technique & matrice des versions affectées
Section intitulée « 1. Contexte technique & matrice des versions affectées »| Paramètre | Spécification Technique | Contexte Threat Intelligence |
|---|---|---|
| Identifiant CVE | CVE-2026-42016 | Enregistrement officiel NVD & CISA KEV |
| Faiblesse CWE | CWE-863 (Incorrect Authorization) | Défaut de contrôle de portée dans l’intercepteur de jeton |
| Vecteur réseau | HTTP/HTTPS (8081/TCP, 8082/TCP) | Requêtes API REST avec jeton porteur (Bearer Token) |
| Composant vulnérable | Intercepteur d’autorisation du service Access | Filtre d’application des scopes de jeton |
| Versions affectées | Versions Self-Hosted < 7.133.11 | Déploiements locaux d’entreprise |
| Version corrigée | 7.133.11 | Correctif officiel de sécurité (27 juillet 2026) |
| Inclusion CISA KEV | 11 septembre 2026 (Échéance : 25 septembre 2026) | Triage Forensique : Non |
| Vecteur d’exploitation | Chaînage avec la CVE-2026-42018 ou comptes restreints | Empoisonnement de la supply chain logicielle |
2. Décomposition technique approfondie & cause racine
Section intitulée « 2. Décomposition technique approfondie & cause racine »A. La logique d’autorisation défaillante
Section intitulée « A. La logique d’autorisation défaillante »Lorsqu’une requête HTTP est transmise avec l’en-tête Authorization: Bearer <JWT>, le filtre d’authentification d’Artifactory procède à la vérification du jeton.
Dans les versions antérieures à la 7.133.11, le filtre vérifiait :
- La signature cryptographique du jeton (via la clé publique RSA/JWK du service Access).
- L’absence d’expiration temporelle (
exp > now). - La concordance de l’émetteur (
iss == "artifactory-service").
Cependant, il omettait de valider le champ scope vis-à-vis des exigences d’accès de la route API cible :
// Représentation conceptuelle du code vulnérable dans l'intercepteur de jetonpublic boolean authorize(HttpServletRequest request, JwtToken token) { // Étape 1 : Vérification de la signature if (!cryptoService.verifySignature(token)) { return false; } // Étape 2 : Vérification de l'expiration if (token.isExpired()) { return false; } // Étape 3 : Vérification de l'émetteur if (!"artifactory-service".equals(token.getIssuer())) { return false; }
// FAILLE CRITIQUE : Le filtre n'inspecte pas token.getScopes() ! // Tout jeton authentique émis par artifactory-service est considéré comme valide, // et le contexte d'exécution est promu avec les privilèges administrateur ! SecurityContextHolder.getContext().setAuthentication( new ArtifactoryAuthentication(token.getSubject(), Authorities.ADMIN) ); return true;}Ce raccourci conférait un contexte administrateur global à n’importe quel jeton, permettant à un utilisateur restreint ou anonyme d’accéder aux API critiques telles que /access/api/v1/users.
B. Schéma du flux d’attaque (AttackFlow)
Section intitulée « B. Schéma du flux d’attaque (AttackFlow) »sequenceDiagram autonumber actor Attaquant as Attaquant (Jeton Restreint ou Anonyme) participant Passerelle as Passerelle Artifactory (Port 8082) participant Filtre as Filtre d'Autorisation de Jeton participant APIAdmin as Contrôleurs d'Administration & Sécurité participant Stockage as Dépôts de Binaires de Production
Attaquant->>Passerelle: POST /access/api/v1/users (Authorization: Bearer <jeton_restreint>) Passerelle->>Filtre: Interception de la requête pour contrôle Note over Filtre: 1. Signature : VALIDE<br/>2. Émetteur : VALIDE ("artifactory-service")<br/>3. Contrôle de portée : OMIS ! Filtre->>APIAdmin: Transmission avec contexte administrateur APIAdmin->>Stockage: Création d'un compte administrateur pirate "shadow_admin" Stockage-->>APIAdmin: 201 Created APIAdmin-->>Passerelle: 201 Created Passerelle-->>Attaquant: 201 Created (Compte administrateur créé) Note over Attaquant: Connexion en tant qu'administrateur.<br/>Remplacement de paquets logiciels officiels par des versions piégées !3. Chaîne d’exploitation & impact supply chain
Section intitulée « 3. Chaîne d’exploitation & impact supply chain »L’exploitation conjointe de la vulnérabilité permet de mener une attaque dévastatrice sur la supply chain logicielle :
- Phase 1 : obtention du jeton : L’attaquant récupère un jeton valide sans authentification en exploitant la CVE-2026-42018, ou utilise un jeton de service CI/CD restreint.
- Phase 2 : création de compte administrateur persistant :
Il interroge l’API de gestion des utilisateurs avec le jeton à faible privilège :
POST /access/api/v1/users HTTP/1.1Host: artifactory.internal.corp:8082Authorization: Bearer eyJhbGciOiJSUzI1Ni...Content-Type: application/json{"username": "secops_audit_agent","password": "CompliantPassword2026!","email": "audit@secops.corp","admin": true}
- Phase 3 : altération des artefacts de production : Une fois connecté avec les droits d’administration, l’adversaire remplace des paquets vérifiés par des versions infectées, compromettant l’ensemble des systèmes clients qui déploient ces livrables.
4. Correspondance MITRE ATT&CK
Section intitulée « 4. Correspondance MITRE ATT&CK »| Tactique | Identifiant | Nom de la Technique | Manifestation dans l’Attaque |
|---|---|---|---|
| Élévation de privilèges | T1068 | Exploitation for Privilege Escalation | Contournement des restrictions de scope pour obtenir les droits root |
| Persistance | T1098 | Account Manipulation | Création de comptes administrateurs clandestins |
| Évasion de défense | T1556 | Modify Authentication Process | Exploitation de l’omission de vérification des portées de jeton |
| Impact | T1495 | Firmware / Software Supply Chain Compromise | Altération de paquets et d’images de conteneurs dans le dépôt |
5. Détection & télémétrie SIEM
Section intitulée « 5. Détection & télémétrie SIEM »A. Règle Sigma : actions administratives non autorisées via jeton
Section intitulée « A. Règle Sigma : actions administratives non autorisées via jeton »title: Élévation de privilèges Artifactory via omission de validation de portée de jetonid: c3d4e5f6-4201-4b89-0123-cve202642016status: productiondescription: Détecte des appels d'administration sur Artifactory effectués par des jetons anonymes ou à faibles privilèges (CVE-2026-42016)author: Hermes Codex Cyber Threat Intelligencedate: 2026-09-11logsource: category: webserver service: artifactory_access_requestdetection: selection: cs_method: 'POST' cs_uri_stem|contains: - '/access/api/v1/users' - '/artifactory/api/security/users' - '/artifactory/api/security/permissions' c_user: - 'anonymous' - '*developer*' - '*reader*' condition: selectionfields: - c_ip - c_user - cs_uri_stem - sc_statusfalsepositives: - Aucune détection légitime attendue ; des comptes restreints ne doivent jamais pouvoir créer des utilisateurslevel: criticaltags: - attack.privilege_escalation - attack.t1068 - attack.persistence - attack.t1098 - cve.2026.42016B. Règle réseau Suricata
Section intitulée « B. Règle réseau Suricata »alert http $EXTERNAL_NET any -> $HTTP_SERVERS [8081,8082] ( msg:"HERMES - JFrog Artifactory Tentative d'elevation de privilege via jeton (CVE-2026-42016)"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/access/api/v1/users"; http.header; content:"Authorization: Bearer"; classtype:attempted-admin; sid:202642016; rev:1; reference:cve,2026-42016;)6. Analyse forensique DFIR
Section intitulée « 6. Analyse forensique DFIR »- Journaux du service d’accès (
access-service.log) : Rechercher la création de comptes administrateurs par des identités non autorisées :Fenêtre de terminal grep -E 'User created:.*by subject=(anonymous|readonly)' /var/opt/jfrog/artifactory/log/access-service.log - Audit des utilisateurs administrateurs :
Lister l’ensemble des comptes administrateurs actifs et vérifier leur légitimité :
Fenêtre de terminal curl -s -u admin:<mot_de_passe> http://localhost:8082/access/api/v1/users | jq '.users[] | select(.admin == true)' - Contrôle d’intégrité des dépôts : Comparer les sommes de contrôle (SHA-256) des binaires en production avec les artefacts validés lors des builds CI/CD initiaux.
7. Remédiation
Section intitulée « 7. Remédiation »- Application du correctif officiel : Mettre à niveau immédiatement JFrog Artifactory vers la version 7.133.11 ou supérieure.
- Révocation des jetons compromis : Révoquer immédiatement l’ensemble des clés API et jetons d’accès émis pendant la période d’exposition potentielle.
- Cloisonnement réseau :
Isoler les ports d’administration d’Artifactory (
8082/TCP) et réserver leur accès aux seuls réseaux d’administration sécurisés.