flawopen.com/Incidents/angle-cross-platform-zero-day-december-2025
CVE-2025-14174 : faille ANGLE dans Chrome et référence Apple
Google a confirmé l’exploitation d’ANGLE dans Chrome. Apple utilise ce CVE pour un autre problème d’initialisation mémoire de WebKit.
Une personne recopiant un formulaire dépasse la case prévue et écrit dans l’entrée suivante : c’est une image d’un accès hors limites. Un registre peut aussi réutiliser un numéro pour deux entrées différentes ; le même identifiant ne prouve pas que les défauts sont identiques.
Concepts Clés et Termes
ANGLE- Almost Native Graphics Layer Engine : la bibliothèque open source de Google qui traduit les appels OpenGL ES et WebGL vers des API natives comme Metal, Direct3D et Vulkan.
Backend Metal- Partie d’ANGLE destinée à l’API Metal. Google associe le problème à ANGLE dans Chrome sur Mac, sans nommer la fonction touchée ni le mécanisme du correctif.
Accès hors limites (CWE-787)- Accès hors limites (
CWE-787) : opération accédant à la mémoire au-delà des limites prévues d’un tampon.CWE-787classe plus précisément l’écriture hors limites ; Google n’a pas publié l’opération exacte ni la cause. Arithmétique vérifiée- Des opérations entières qui signalent un dépassement au lieu de reboucler en silence, comme base::CheckedNumeric dans Chromium et ANGLE.
Zero-day- Zero-day : faille exploitée avant la disponibilité d’un correctif. Google a confirmé l’exploitation du problème ANGLE de Chrome. Apple a décrit séparément une exploitation ciblée de problèmes WebKit dans l’avis iOS 26.2.
Correspondances de référentiels
- Référence CWE pour la faiblesse décrite dans ce guide : CWE-787
- CISA KEV — ajouté le 2025-12-12 — CVE-2025-14174
Chronologie de l'Incident
Google publie Chrome 143.0.7499.110 pour macOS et indique qu'un exploit de la faille ANGLE circule (ticket Chromium 466192044).
L’avis d’Apple associe CVE-2025-14174 à l’initialisation mémoire de WebKit et répertorie séparément CVE-2025-43529 pour une corruption mémoire WebKit. Apple relie ce dernier signalement à une possible exploitation ciblée ; cela ne prouve pas une cause commune avec ANGLE dans Chrome. CISA a ajouté CVE-2025-14174 à KEV.
Déroulement de l'Attaque Étape par Étape
Une page piégée atteint la couche graphique
La fiche CVE décrit une page HTML conçue pour déclencher le problème ANGLE dans Chrome sur Mac. Le vecteur CVSS exige une interaction utilisateur : la victime doit ouvrir du contenu web contrôlé par l’attaquant.
ANGLE traduit vers Metal
Google désigne ANGLE comme composant affecté de Chrome. L’avis public ne nomme pas la fonction responsable et ne dit pas que WebKit utilise le même code vulnérable.
De la mémoire hors d'un tampon est accédée
Google décrit un accès mémoire hors limites, sans préciser lecture ou écriture, tampon touché ni calcul en cause. Le code ci-dessous est générique, pas du code ANGLE ni une reconstitution de ce CVE.
Utilisée dans des attaques ciblées
Google confirme l’exploitation de CVE-2025-14174. Apple signale séparément une exploitation ciblée de problèmes WebKit et utilise aussi ce CVE pour une entrée WebKit sur l’initialisation mémoire. Les avis ne démontrent pas de chaîne commune entre Chrome et WebKit.
Code Source : Vulnérable vs Sécurisé
Google n’a publié ni la cause au niveau de la fonction ni les détails du correctif. Cet exemple générique en C++20 vérifie le décalage et compare par soustraction la longueur demandée à la capacité restante pour éviter un dépassement. Il ne reproduit ni le CVE ni le correctif réel d’ANGLE.
// Exemple générique uniquement ; ce n’est ni le code source d’ANGLE ni l’implémentation de CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
std::size_t offset,
std::span<const std::byte> source)
{
std::copy(source.begin(), source.end(), destination.begin() + offset);
return true;
}
// Exemple générique uniquement ; ce n’est ni le code source d’ANGLE ni le correctif de CVE-2025-14174.
bool copyRange(std::span<std::byte> destination,
std::size_t offset,
std::span<const std::byte> source)
{
if (offset > destination.size() ||
source.size() > destination.size() - offset) {
return false;
}
std::copy(source.begin(), source.end(), destination.begin() + offset);
return true;
}
Liste de Contrôle de Sécurité pour l'Ingénierie
- ✓Mettez Chrome sur Mac à jour vers la version 143.0.7499.110 ou ultérieure ; pour les nouveaux déploiements, installez la dernière version prise en charge.
- ✓Recensez les bibliothèques d'analyse et de graphisme partagées (ANGLE, FreeType, libwebp, libxml2) dans vos produits et abonnez-vous à leurs avis de sécurité, pas seulement à ceux de chaque navigateur.
- ✓Exigez une arithmétique vérifiée (base::CheckedNumeric, std::ckd_mul en C23 ou checked_mul en Rust) pour toute taille de tampon calculée à partir de dimensions contrôlées par l'appelant, et signalez en revue de code les multiplications non vérifiées.
- ✓Fuzzez en CI les chemins d'envoi de textures et de tampons avec des dimensions extrêmes et nulles sous AddressSanitizer, pour que les copies hors limites fassent échouer les tests avant publication.
- ✓Suivez séparément l’avis ANGLE de Chrome et les entrées WebKit d’Apple : un identifiant ou une date identique ne prouve ni une cause ni une chaîne d’exploitation communes.
Sources
- CVE-2025-14174 — fiche CVE (ANGLE dans Google Chrome sur Mac)
- Google Chrome Releases — mise à jour du canal stable pour ordinateur (10 décembre 2025)
- Apple — à propos du contenu de sécurité d'iOS 26.2 et d'iPadOS 26.2
- CISA — entrée de CVE-2025-14174 au catalogue Known Exploited Vulnerabilities
- ANGLE — dépôt de code source Chromium