CVE-2026-42018 : exposition et génération de jetons utilisateur anonyme dans JFrog Artifactory
SCORE DE MENACE HERMES & EXPOSITION D'AUTHENTIFICATION SUPPLY CHAIN
Cible :JFrog Artifactory (Gestionnaire de Dépôt Binaire Self-Hosted) Le CVSS v3.1 classe la CVE-2026-42018 à 7.5 (Élevé, CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). Le score de menace Hermes évalue la sévérité à 89 (ÉLEVÉE). Si l'exploitation isolée se limite à l'obtention d'un jeton en lecture, les cyberattaques dans la nature la combinent systématiquement avec la CVE-2026-42016 pour obtenir une compromission administrative totale et non authentifiée des dépôts logiciels.
CVE-2026-42018: Anonymous User Token Generation Exposure in JFrog ArtifactoryVULNÉ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-42018 | Référencement officiel NVD & CISA KEV |
| Faiblesse CWE | CWE-287 (Improper Authentication) | Défaillance d’application de la politique d’accès |
| Vecteur réseau | HTTP/HTTPS (8081/TCP, 8082/TCP) | Requêtes API REST directes sans authentification |
| Composant vulnérable | Service d’émission de jetons (access-service) | Gestionnaire de jetons anonymes |
| Versions affectées | Versions Self-Hosted < 7.111.20 et < 7.133.11 | Déploiements sur site et serveurs dédiés |
| Versions corrigées | 7.111.20 et 7.133.11 | Correctifs officiels de sécurité |
| Inclusion CISA KEV | 11 septembre 2026 (Échéance : 25 septembre 2026) | Triage Forensique : Non |
| Chaînage d’attaque | Associée systématiquement à la CVE-2026-42016 | Prise de contrôle administrative totale du registre |
2. Décomposition technique approfondie & cause racine
Section intitulée « 2. Décomposition technique approfondie & cause racine »A. La défaillance de la génération de jeton anonyme
Section intitulée « A. La défaillance de la génération de jeton anonyme »Dans une configuration sécurisée d’Artifactory, la désactivation de l’accès anonyme vise à bloquer toute requête ne fournissant pas d’en-tête Authorization.
Toutefois, lors du traitement interne de certaines routes de négociation de jetons, le microservice access-service comportait une branche par défaut qui, en l’absence d’identifiants fournis, instanciat un contexte anonyme et le signait cryptographiquement avec la clé privée de l’instance :
// Représentation conceptuelle de la logique d'émission vulnérablepublic TokenResponse issueToken(TokenRequest request) { if (request.getCredentials() == null) { // DÉFAILLANCE : Omission de vérifier si l'accès anonyme global est désactivé // Émet un jeton signé pour le sujet "anonymous" UserContext anonUser = userManager.getAnonymousUser(); return tokenService.signToken(anonUser, DefaultScopes.READ_ONLY); } // Génération standard authentifiée...}Ce jeton, valablement signé par l’autorité locale, est accepté par les autres composants internes comme un jeton d’accès légitime.
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 Externe Non Authentifié participant Passerelle as Passerelle Artifactory (Port 8082) participant Access as Service Access (Émetteur de Jetons) participant Depot as Dépôts de Paquets
Note over Passerelle: Accès anonyme DÉSACTIVÉ dans la config globale Attaquant->>Passerelle: POST /access/api/v1/tokens/anonymous (Sans Auth) Passerelle->>Access: Transmission de la requête sans identifiants Note over Access: Erreur de contrôle de politique.<br/>Signature d'un JWT pour "anonymous" via la clé privée. Access-->>Passerelle: Retour du jeton JWT porteur valide Passerelle-->>Attaquant: 200 OK avec le jeton Bearer Attaquant->>Depot: GET /artifactory/api/storage/... (Authorization: Bearer <token>) Depot-->>Attaquant: Fuite d'index et de métadonnées de paquets Note over Attaquant: Utilisation du jeton pour exploiter la CVE-2026-42016<br/>Élévation de privilèges vers Administrateur total !3. Chaîne d’exploitation & synergie criminelle
Section intitulée « 3. Chaîne d’exploitation & synergie criminelle »La criticité réelle de la CVE-2026-42018 réside dans son rôle de déclencheur initial de la chaîne d’attaque :
- Étape 1 (CVE-2026-42018) : l’adversaire extrait un jeton d’accès valide sans authentification :
{"sub": "anonymous","iss": "artifactory-service","scope": "applied-permissions/user","exp": 1789123456}
- Étape 2 (CVE-2026-42016) : l’attaquant présente ce jeton pour invoquer des fonctions d’administration. En raison du défaut de validation des portées (scopes), Artifactory ne vérifie que la signature et l’émetteur, élevant ainsi l’attaquant au rang d’administrateur avec droits complets de lecture, écriture et empoisonnement de la chaîne logistique logicielle.
4. Correspondance MITRE ATT&CK
Section intitulée « 4. Correspondance MITRE ATT&CK »| Tactique | Identifiant | Nom de la Technique | Manifestation dans l’Attaque |
|---|---|---|---|
| Accès initial | T1190 | Exploit Public-Facing Application | Requête HTTP non authentifiée vers les API de jetons |
| Accès aux identifiants | T1528 | Steal Application Access Token | Obtention directe de jetons JWT internes valides |
| Découverte | T1082 | System Information Discovery | Interrogation des dépôts et des arborescences de paquets |
| Évasion de défense | T1556 | Modify Authentication Process | Contournement de la désactivation de l’accès anonyme |
5. Détection & télémétrie SIEM
Section intitulée « 5. Détection & télémétrie SIEM »A. Règle Sigma : émission de jetons anonymes non authentifiée
Section intitulée « A. Règle Sigma : émission de jetons anonymes non authentifiée »title: Demande de génération de jeton anonyme sur JFrog Artifactoryid: b1c2d3e4-4201-4a78-9012-cve202642018status: productiondescription: Détecte les requêtes non authentifiées provoquant l'émission d'un jeton anonyme sur Artifactory (CVE-2026-42018)author: Hermes Codex Cyber Threat Intelligencedate: 2026-09-11logsource: category: webserver service: artifactory_requestdetection: selection: cs_method: 'POST' cs_uri_stem|contains: - '/access/api/v1/tokens' - '/api/v1/tokens' c_user: '' filter_authenticated: cs_headers|contains: 'Authorization: Bearer' condition: selection and not filter_authenticatedfields: - c_ip - cs_uri_stem - sc_statusfalsepositives: - Négociations initiales d'outils d'intégration CI/CD automatiséslevel: hightags: - attack.initial_access - attack.t1190 - attack.credential_access - attack.t1528 - cve.2026.42018B. 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'exposition de jeton anonyme (CVE-2026-42018)"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/access/api/v1/tokens"; content:!"Authorization:"; http_header; classtype:attempted-recon; sid:202642018; rev:1; reference:cve,2026-42018;)6. Analyse forensique DFIR
Section intitulée « 6. Analyse forensique DFIR »- Journaux du service d’accès (
access-service.log) : Rechercher les occurrences d’émission de jetons pouranonymousalors que l’accès anonyme était désactivé :Fenêtre de terminal grep -E 'Token issued for.*sub=anonymous' /var/opt/jfrog/artifactory/log/access-service.log - Journaux de requêtes (
artifactory-request.log) : Filtrer les requêtes réussies (code 200) ciblant les endpoints de jetons depuis des adresses IP externes inhabituelles.
7. Remédiation
Section intitulée « 7. Remédiation »- Mettre à niveau le serveur Artifactory : Installer immédiatement les versions corrigées 7.111.20, 7.133.11 ou supérieures.
- Filtrage périmétrique (WAF) :
Bloquer au niveau du reverse proxy les requêtes POST non authentifiées vers
/access/api/v1/tokens*. - Révocation des jetons suspects :
Inspecter la console d’administration (
Administration -> Gestion des utilisateurs -> Jetons d'accès) et révoquer immédiatement tout jeton actif lié à l’utilisateuranonymous.