Aller au contenu

CVE-2026-42249 : traversée de répertoire par en-têtes HTTP et RCE dans le mécanisme de mise à jour d'Ollama sous Windows

HERMES

SCORE DE MENACE HERMES & COMPROMISSION DU RUNTIME IA LOCAL

Cible : Ollama pour Windows — Service de mise à jour automatique en arrière-plan et gestionnaire de bureau
Confiance : 96%
92 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 18 / 20
Activité de menace 18 / 20
Militarisation 19 / 20
Exposition 19 / 20
Prévalence 19 / 20
Impact 19 / 20
Maturité de l'exploit 19 / 20
Potentiel d'attaque en chaîne 19 / 20
⚖️ Divergence & Justification opérationnelle

Bien que le NVD classe la CVE-2026-42249 isolément avec un score de 7.7 (Élevé), le Hermes Threat Score la rehausse à 92 (CRITIQUE). En environnement opérationnel, cette faille se chaîne directement avec la CVE-2026-42248 (absence totale de vérification de signature binaire dans le client Windows). Ollama étant déployé sur des millions de postes de développeurs et de data scientists, la manipulation des en-têtes de réponse permet d'écrire un exécutable malveillant dans le dossier de démarrage Windows, garantissant une persistance silencieuse avec les privilèges de l'utilisateur.

HASS

SÉVÉRITÉ AGENTIQUE HASS & PERSISTANCE SUR LES POSTES DE DÉVELOPPEMENT IA

Cible : Moteur d'inférence LLM local, dépôts de poids propriétaires et secrets des développeurs
Confiance : 92%
72 / 100
ÉLEVÉ

Mesure le risque systémique spécifique découlant de l'autonomie, de l'autorité des outils et de l'exécution en cascade.

Décomposition des dimensions
Autonomie décisionnelle 14 / 20
Accès aux outils & APIs 15 / 20
Privilege 16 / 15
Persistence 15 / 15
External Impact 12 / 15
Propagation 14 / 15
⚖️ Divergence & Justification opérationnelle

La compromission du moteur d'inférence local offre aux adversaires un accès direct aux poids des modèles propriétaires, aux données d'entraînement non publiées et aux clés d'accès configurées sur les postes de travail. L'attaquant peut détourner les API d'inférence locales et pivoter vers les dépôts de code source de l'organisation.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-42249: Ollama Windows Auto-Updater HTTP Header Path Traversal RCEVULNÉRABILITÉ

Nœuds connectés : 1
Relations sortantes actives
→ affectsCOMPOSANTMicrosoft Windows & Windows Server
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Microsoft Windows & Windows Server documented in Hermes dossier.”

Preuves vérifiées associées :

1. Architecture technique et anatomie de l’attaque

Section intitulée « 1. Architecture technique et anatomie de l’attaque »

Le client Ollama pour Windows exécute une application de zone de notification (ollama app.exe) qui interroge régulièrement l’API de mise à jour (https://ollama.com/api/update).

┌─────────────────────────┐ ┌─────────────────────────┐
│ Client Ollama │ ──── GET /api/update ─────────> │ Serveur amont ou │
│ (Application Windows) │ │ Attaquant Man-in-Mid │
└────────────┬────────────┘ <─── En-têtes HTTP piégés ───── └─────────────────────────┘
│ ETag: "../../../Startup/payload.exe"
│ (Ou Content-Disposition forgé)
▼
┌─────────────────────────┐
│ Construction du chemin │ ──> Concaténation vulnérable :
│ │ C:\Users\<user>\AppData\Local\Ollama\Updates\..\..\
└────────────┬────────────┘ ..\Microsoft\Windows\Start Menu\Programs\Startup\payload.exe
│
│ Dépôt direct du binaire PE dans le dossier de démarrage
▼
┌─────────────────────────┐
│ Échec de signature │ ──> CVE-2026-42248 : la fonction de contrôle renvoie toujours VRAI
└────────────┬────────────┘
│
│ Connexion utilisateur ou redémarrage système
▼
┌─────────────────────────┐
│ Exécution de code │ ──> payload.exe s'exécute avec les droits de la session
│ (RCE persistante) │ Vol de clés d'API, clés SSH, secrets Git et modèles
└─────────────────────────┘
ParamètreSpécification techniqueDétail opérationnel
Identifiant CVECVE-2026-42249Chaîné avec CVE-2026-42248
Classe de vulnérabilitéTraversée de répertoire (CWE-22) / Téléchargement non sécurisé (CWE-494)Échappement de répertoire de destination
Système affectéWindows (architectures x64 et ARM64)macOS et Linux emploient des validateurs distincts
Mécanisme déclencheurScrutation périodique en arrière-plan ou vérification manuelleDéclenchement automatique sans confirmation
Vecteur d’exploitationMan-in-the-Middle (MitM), CDN corrompu, proxy réseau malveillantInjection d’en-tête ETag ou Content-Disposition
Emplacement cibléC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUpDossiers de persistance automatique Windows
Versions affectées0.12.10 à 0.17.5Confirmé par les chercheurs en sécurité
Version corrective0.17.6+Application de filepath.Base() et contrôle Authenticode

2. Analyse de cause racine : concaténation non assainie d’en-têtes HTTP

Section intitulée « 2. Analyse de cause racine : concaténation non assainie d’en-têtes HTTP »

Lors de la préparation du fichier de mise à jour, le code en langage Go interrogeait l’en-tête distant et le joignait directement au répertoire temporaire :

// Code vulnérable dans le gestionnaire de mise à jour Ollama Windows
// app/lifecycle/updater_windows.go (avant v0.17.6)
func stageUpdate(resp *http.Response) (string, error) {
// Extraction de l'en-tête ETag servant d'identifiant de fichier
etag := resp.Header.Get("ETag")
if etag == "" {
etag = "ollama_update.exe"
}
// Suppression des guillemets éventuels
etag = strings.Trim(etag, "\"")
// FAILLE CRITIQUE : appel direct à filepath.Join sans vérifier l'absence de ".."
updateDir := filepath.Join(os.Getenv("LOCALAPPDATA"), "Ollama", "Updates")
destPath := filepath.Join(updateDir, etag)
out, err := os.OpenFile(destPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0755)
if err != nil {
return "", err
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
return destPath, err
}

La fonction filepath.Join évaluant les segments .., la fourniture d’une valeur forgée : "../../../../Microsoft/Windows/Start Menu/Programs/Startup/ollama_helper.exe" résout le chemin en dehors de Updates\ directement vers le dossier de démarrage actif de l’utilisateur.

La faille conjointe : contournement de la signature (CVE-2026-42248)

Section intitulée « La faille conjointe : contournement de la signature (CVE-2026-42248) »

Après écriture, le binaire devait faire l’objet d’une vérification de signature numérique Authenticode. Or, sous Windows, la fonction de validation n’avait pas été finalisée et retournait systématiquement un statut de succès :

// Fonction de validation factice dans updater_windows.go
func verifySignature(filePath string) error {
// Échec de contrôle : retourne toujours nil (succès)
return nil
}

Le programme d’installation validait ainsi l’intégrité du binaire injecté sans la moindre alerte.


Vecteur d’attaque : interposition réseau locale

Section intitulée « Vecteur d’attaque : interposition réseau locale »
  1. Positionnement : l’adversaire compromet un routeur Wi-Fi (hôtel, espace de travail partagé) ou usurpe la résolution DNS du domaine ollama.com.
  2. Interception : le flux HTTP de vérification automatique émis par ollama app.exe est intercepté.
  3. Forge de la réponse : l’attaquant renvoie une réponse HTTP 200 comprenant l’en-tête malveillant :
    HTTP/1.1 200 OK
    Content-Type: application/octet-stream
    ETag: "../../../Microsoft/Windows/Start Menu/Programs/Startup/SecurityHealthSystray.exe"
    Content-Length: 45056
    <Charge utile exécutable PE malveillante>
  4. Dépôt sur disque : le processus Ollama dépose le fichier dans le dossier Startup de la victime.
  5. Persistance et exécution : au redémarrage ou à la prochaine ouverture de session, l’Explorateur Windows lance l’exécutable avec les privilèges du développeur.

Lors de l’analyse d’un poste de développement suspect, les analystes DFIR doivent examiner les artefacts suivants :

Vérifier l’apparition de binaires suspects dans les chemins de persistance :

  • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\
  • %PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Startup\
  • Comparer l’horodatage de création avec les journaux réseau de l’application Ollama.
  • Examiner les fichiers de prélecture dans C:\Windows\Prefetch\ pour confirmer le lancement du binaire déposé. Consulter notre guide forensique des fichiers Prefetch.
  • Interroger la base AppCompatCache (Shimcache) pour valider l’exécution historique du programme. Consulter notre dossier sur le Shimcache.

title: Processus Ollama déposant un exécutable dans le dossier de démarrage Windows
id: 4f5a6b7c-8d9e-0f1a-2b3c-4d5e6f7a8b9c
status: experimental
description: Détecte l'écriture d'un fichier exécutable dans les dossiers Startup par le processus Ollama pour Windows, caractéristique de l'exploitation de la CVE-2026-42249.
references:
- https://hermes-codex.vercel.app/fr/cve/2026/cve-2026-42249/
- https://nvd.nist.gov/vuln/detail/CVE-2026-42249
author: Unité Forensique Tactique Hermes Codex
date: 2026-09-18
logsource:
category: file_event
product: windows
detection:
selection_initiator:
Image|endswith:
- '\ollama app.exe'
- '\ollama.exe'
selection_target:
TargetFilename|contains:
- '\Start Menu\Programs\StartUp\'
- '\Start Menu\Programs\Startup\'
TargetFilename|endswith:
- '.exe'
- '.dll'
- '.bat'
- '.vbs'
- '.ps1'
condition: selection_initiator and selection_target
level: critical
tags:
- attack.persistence
- attack.t1547.001
- cve.2026-42249

  1. Mise à jour vers Ollama 0.17.6 OU version ultérieure : Appliquer le correctif officiel via le gestionnaire de paquets Windows :
    Fenêtre de terminal
    winget upgrade Ollama.Ollama
  2. Nettoyage des dossiers de démarrage : Ouvrir shell:startup et shell:common startup pour supprimer tout binaire non identifié apparu récemment.
  3. Désactivation temporaire des mises à jour automatiques : Si la mise à niveau ne peut être déployée immédiatement, bloquer les requêtes sortantes vers ollama.com/api/update au niveau du pare-feu.
  • Contrôle d’exécution d’applications (WDAC / AppLocker) : interdire l’exécution de binaires non signés depuis les répertoires accessibles en écriture par l’utilisateur (%LOCALAPPDATA%, StartUp).
  • Inspection TLS et épinglage de certificats : s’assurer que les flux réseau à destination des dépôts d’outils d’IA appliquent une validation cryptographique rigoureuse.


  • Fiche officielle NVD : détails de la CVE-2026-42249
  • Dépôt officiel Ollama : notes de version d’Ollama sur GitHub
  • Publication Help Net Security : Les vulnérabilités du client Windows d’Ollama permettent l’exécution de code à distance (mai 2026)
  • Avis technique CERT Polska : Traversée de répertoire dans les mécanismes de mise à jour automatique des clients de bureau (2026)