flawopen.com/Incidents/bluemoon-chrome-v8-windows-alpc-september-2026
BlueMoon : trois failles ont franchi les barrières de Chrome et Windows
Proofpoint a signalé des campagnes ciblées BlueMoon enchaînant CVE-2026-85046 (confusion de types V8), CVE-2026-87491 (évasion du sandbox V8) et CVE-2026-85880 (élévation locale de privilèges dans le noyau Windows). Google et Microsoft ont confirmé une exploitation avant leurs correctifs ; mettez Chromium et Windows à jour séparément.[1], [2], [3], [4]
Imaginez une machine qui confirme que toutes les caisses contiennent des livres, puis laisse un visiteur changer leur contenu avant le tri suivant les anciennes étiquettes. Cette erreur ouvre une zone de tri fermée ; une autre ouvre sa grille et une troisième falsifie les badges du bâtiment. Chaque verrou doit être réparé.[1]
Concepts Clés et Termes
V8 / type confusion- V8 exécute JavaScript.
CVE-2026-85046concernait des hypothèses d’optimisation de Array.prototype.sort invalidées lorsquefill()modifiait la nature des éléments.[1], [2]
Correspondances de référentiels
- Référence CWE pour la faiblesse décrite dans ce guide : CWE-122 CWE-787 CWE-843
- CISA KEV — ajouté le 2026-09-04 — CVE-2026-85046
Étapes BlueMoon et décisions de mise à jour
| Étape / CVE / frontière | Ce que les sources établissent | Action défensive |
|---|---|---|
Confusion de types JIT V8 — CVE-2026-85046 | Proofpoint décrit une mutation du comparateur de Array.prototype.sort via fill() qui invalide l’hypothèse sur le type des éléments. Google a signalé un exploit dans la nature. | Installez Chrome/Chromium 152.0.7977.82/.83 (Windows/Mac) ou .82 (Linux), ou une version ultérieure ; redémarrez le navigateur. La version Google du 3 septembre contient le correctif. |
Évasion du sandbox V8 — CVE-2026-87491 | Proofpoint rapporte une corruption de métadonnées WebAssembly franchissant le sandbox mémoire de V8, distinct du sandbox du processus renderer. Google a signalé un exploit dans la nature. | Installez Chrome/Chromium 153.0.8010.36/.37 (Windows/Mac) ou .36 (Linux), ou une version ultérieure ; redémarrez le navigateur. La version Google du 8 septembre contient le correctif. |
Élévation locale noyau Windows — CVE-2026-85880 | Proofpoint décrit une voie ALPC/WNF vers SeDebugPrivilege et énumère les anciennes versions Windows visées par le kit. Microsoft confirme une exploitation avant les mises à jour du 8 septembre. Cette liste ne constitue pas l’inventaire complet des versions affectées. | Installez les mises à jour de sécurité Windows actuellement prises en charge, y compris celle du 8 septembre 2026 ou une version ultérieure ; consultez MSRC pour le paquet propre à l’OS et effectuez tout redémarrage requis. Corrigez Windows séparément de Chrome. |
Chronologie de l'Incident
Proofpoint a observé BlueMoon pour la première fois.[1]
Chrome Stable a corrigé CVE-2026-85046 dans 152.0.7977.82/.83 sous Windows et Mac, et .82 sous Linux.[2]
Déroulement de l'Attaque Étape par Étape
Mode de diffusion observé
Proofpoint a observé des campagnes de spearphishing ciblées distribuant un lien vers le kit d’exploitation. Les étapes du navigateur exigeaient que la personne ouvre le lien dans un navigateur Chromium vulnérable.[1]
Confusion de types V8 — CVE-2026-85046
Proofpoint décrit un chemin optimisé de Array.prototype.sort dont l’hypothèse de type pouvait être invalidée lorsque le comparateur modifiait le tableau avec fill(). La confusion de types qui en résultait était la première vulnérabilité dans le renderer ; Google a signalé l’existence d’un exploit dans la nature.[1], [2]
Élévation locale dans le noyau Windows — CVE-2026-85880
Proofpoint décrit une voie noyau ALPC/WNF utilisée pour activer SeDebugPrivilege dans le renderer sur certaines anciennes versions de Windows. Microsoft a confirmé séparément une exploitation avant ses mises à jour de sécurité du 8 septembre 2026.[1], [4]
Sortie du processus renderer
Avec les étapes navigateur et une cible Windows prise en charge, la chaîne rapportée pouvait sortir du renderer via l’élévation locale Windows et atteindre le processus parent du navigateur. L’exemple Python illustre uniquement l’hypothèse périmée ; il ne reproduit pas la chaîne.[1], [4]
Code Source : Vulnérable vs Sécurisé
Illustration sûre en Python d’une hypothèse invalidée, ni source V8, ni exploit, ni correctif officiel. Une fonction de rappel inoffensive peut remplacer des entiers par du texte après le premier contrôle. La solution valide une copie bornée après le rappel et la consomme sans nouveau rappel. Python lève une exception dans le cas vulnérable ; aucune corruption mémoire native n’est simulée. Seuls des rappels synchrones fiables et bornés conviennent.
def numeric_total(values, callback):
if type(values) is not list or len(values) > 1024:
raise ValueError("Invalid batch")
if any(type(x) is not int for x in values):
raise ValueError("Expected integers")
callback(values)
# Le callback a pu invalider la supposition sur le type.
return sum(values)
def numeric_total(values, callback):
if type(values) is not list or len(values) > 1024:
raise ValueError("Invalid batch")
callback(values)
if len(values) > 1024:
raise ValueError("Invalid batch")
snapshot = tuple(values)
if any(type(x) is not int or abs(x) > 1_000_000
for x in snapshot):
raise ValueError("Expected bounded integers")
# Consommez l’instantané validé sans autre callback.
return sum(snapshot)
Liste de Contrôle de Sécurité pour l'Ingénierie
- ✓Inventoriez séparément les versions du navigateur et de Windows ; appliquez les mises à jour officielles compatibles et vérifiez redémarrage du navigateur et du système.[2], [3], [4], [5]
- ✓Ajoutez des tests de mutation par rappel : types modifiés et tableaux trop longs doivent être refusés avant consommation optimisée ; les entiers ordinaires doivent donner la bonne somme.[1]
- ✓Examinez les chemins optimisés où du code contrôlable s’exécute entre contrôle et usage. Revérifiez les invariants ou utilisez une copie immuable validée.[1]
- ✓Suivez chaque CVE séparément. Chrome a classé
CVE-2026-85046Élevé etCVE-2026-87491Moyen ; Microsoft a classéCVE-2026-85880Élevé (CVSS 7.8,CWE-122). Les protections du système ne remplacent pas les correctifs.[2], [3], [4], [5]