FlawOpen

flawopen.com/Incidents/angle-cross-platform-zero-day-december-2025

● Google / Apple · CVE-2025-14174 · December 2025 · CVSS 8.8 · Alta
Investigación · FlawOpen

CVE-2025-14174: fallo ANGLE en Chrome y referencia de Apple

Google confirmó la explotación de ANGLE en Chrome. Apple usa este CVE para otro fallo de inicialización de memoria en WebKit.

💡 Explicación en Lenguaje Sencillo (ELI5)

Una persona que copia un formulario escribe fuera de la casilla asignada y entra en el siguiente registro: así se representa un acceso fuera de límites. Un registro también puede reutilizar un número para entradas distintas; compartir identificador no demuestra que los defectos sean iguales.

Conceptos Clave y Términos

ANGLE
Almost Native Graphics Layer Engine: la biblioteca de código abierto de Google que traduce llamadas de OpenGL ES y WebGL a API nativas como Metal, Direct3D y Vulkan.
Backend Metal
Parte de ANGLE dirigida a la API Metal. Google identifica un problema de ANGLE en Chrome para Mac, pero no revela la función afectada ni el mecanismo de la corrección.
Acceso fuera de límites (CWE-787)
Acceso fuera de límites (CWE-787): operación que accede a memoria fuera del límite previsto de un búfer. CWE-787 clasifica específicamente la escritura fuera de límites; Google no publicó la operación exacta ni la causa.
Aritmética comprobada
Operaciones con enteros que avisan del desbordamiento en lugar de dar la vuelta en silencio, como base::CheckedNumeric en Chromium y ANGLE.
Zero-day
Zero-day: fallo explotado antes de que exista una corrección. Google confirmó la explotación del problema de ANGLE en Chrome. Apple describió por separado explotación dirigida de problemas de WebKit en el aviso de iOS 26.2.

Mapeos de marcos

Cronología del Incidente

2025-12-10

Google publica Chrome 143.0.7499.110 para macOS e indica que existe un exploit en circulación para el fallo de ANGLE (issue 466192044 de Chromium).

2025-12-12

El aviso de Apple enumera CVE-2025-14174 para inicialización de memoria en WebKit y, por separado, CVE-2025-43529 para corrupción de memoria en WebKit. Apple vincula este último informe con posible explotación dirigida; eso no demuestra una causa común con ANGLE de Chrome. CISA añadió CVE-2025-14174 a KEV.

Flujo de Ataque Paso a Paso

Paso 1

Una página manipulada llega a la capa gráfica

El registro CVE describe una página HTML manipulada que activa el problema de ANGLE en Chrome para Mac. El vector CVSS requiere interacción del usuario, por lo que la víctima debe abrir contenido web controlado por el atacante.

Paso 2

ANGLE traduce a Metal

Google identifica ANGLE como el componente afectado de Chrome. El aviso público no identifica la función responsable ni afirma que WebKit utilice el mismo código vulnerable.

Paso 3

Se accede a memoria fuera de un búfer

Google describe un acceso a memoria fuera de límites, pero no indica si fue lectura o escritura, qué búfer se afectó ni qué cálculo causó el fallo. El código siguiente es genérico; no es código de ANGLE ni reconstruye este CVE.

Paso 4

Usado en ataques dirigidos

Google confirma explotación de CVE-2025-14174. Apple informa por separado de explotación dirigida de problemas de WebKit y también usa este CVE para una entrada de inicialización de memoria de WebKit. Los avisos no establecen una cadena común entre Chrome y WebKit.

Código Fuente: Vulnerable vs. Seguro

Google no publicó la causa a nivel de función ni los detalles del parche. Este ejemplo genérico en C++20 valida el desplazamiento y compara mediante una resta la longitud solicitada con la capacidad restante para evitar desbordamientos. No reproduce el CVE ni la corrección real de ANGLE.

IMPLEMENTACIÓN VULNERABLE
// Solo es un ejemplo genérico; no es código fuente de ANGLE ni la implementación 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;
}
PARCHE SEGURO Y ROBUSTO
// Solo es un ejemplo genérico; no es código fuente de ANGLE ni el parche 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;
}

Lista de Verificación de Seguridad para Ingeniería

Fuentes