JC Rueda
Ciberseguridad · Aviso

Apple Safari / motor WebKit (iOS, iPadOS y macOS) · Uso después de liberación con ejecución de código

Apple corrigió en febrero de 2022 un fallo de día cero en WebKit, el motor de Safari, que permitía ejecutar código con solo abrir una página maliciosa y que, según la propia compañía, ya se estaba explotando.

Publicado Lectura 5 min Ref. CVE-2022-22620 CVSS 8.8 (NVD (NIST), CVSS v3.1) Estado Explotación activa

Resumen

La vulnerabilidad CVE-2022-22620 es un fallo de tipo use-after-free (uso de memoria después de haberla liberado) en WebKit, el motor que usa Safari y todos los navegadores de iPhone y iPad. Procesar una página web manipulada podía provocar la ejecución de código arbitrario en el dispositivo. Apple publicó los parches el 10 de febrero de 2022 (iOS/iPadOS 15.3.1, macOS Monterey 12.2.1 y Safari 15.3) y reconoció que el fallo podía estar siendo explotado. La corrección consiste únicamente en actualizar.

Materias: Vulnerabilidades, Apple, Navegadores web, WebKit, Día cero (zero-day), Ejecución de código, CISA KEV

Apple corrigió una vulnerabilidad de día cero —un fallo que los atacantes conocen y aprovechan antes de que exista parche— en WebKit, el motor de navegación que mueve Safari y, por imposición del sistema, cualquier navegador instalado en iPhone y iPad. El defecto, identificado como CVE-2022-22620, permitía que una simple página web maliciosa ejecutara código en el equipo de la víctima. La compañía reconoció que el fallo podía estar siendo explotado de forma activa y la agencia estadounidense CISA lo incluyó en su catálogo de vulnerabilidades explotadas. La única medida eficaz es actualizar.

Descripción

Qué es y a quién afecta

CVE-2022-22620 es una vulnerabilidad de tipo use-after-free (CWE-416), es decir, un error de gestión de memoria en el que el programa sigue usando un espacio de memoria que ya había marcado como libre; un atacante que controle qué ocupa después ese espacio puede llegar a dirigir la ejecución del programa. El fallo reside en WebKit, el motor de renderizado web desarrollado por Apple que convierte el código de las páginas (HTML, JavaScript) en lo que vemos en pantalla.

El matiz importante es que WebKit no solo mueve Safari: en iOS y iPadOS todos los navegadores (incluidos Chrome, Firefox o Edge para iPhone/iPad) están obligados a usar WebKit por debajo. Por eso un fallo en WebKit afecta a prácticamente cualquier navegación en esos dispositivos, no solo a quienes usan Safari.

Versiones afectadas: todas las anteriores a las correcciones del 10 de febrero de 2022, es decir, iOS y iPadOS previos a 15.3.1, macOS Monterey previo a 12.2.1 y Safari previo a 15.3 (este último para usuarios de macOS Big Sur y Catalina). En iPhone, el listado de Apple abarca desde el iPhone 6s en adelante, junto a los modelos equivalentes de iPad e iPod touch.

Mecánica

Cómo funciona el fallo

El vector de ataque es el habitual en los fallos de navegador: la víctima solo tiene que visitar una página web especialmente manipulada. En la terminología técnica, «procesar contenido web diseñado con fines maliciosos podía dar lugar a la ejecución de código arbitrario». No requiere instalar nada ni conceder permisos; sí requiere interacción del usuario (abrir el enlace o la página), lo que se refleja en el vector CVSS con UI:R (User Interaction: Required).

El análisis de causa raíz más detallado lo publicó Google Project Zero (Maddie Stone) bajo el título «An autopsy on a zombie in-the-wild 0-day». Según ese informe, el error vivía en la History API de WebKit (la interfaz que gestiona el historial de navegación): tras el retorno de una función de callback, parte del código continuaba operando sobre un objeto (this) que ya había sido liberado. Lo llamativo es que se trata de una vulnerabilidad «zombi»: el mismo fallo se había corregido en 2013, pero una gran refactorización de diciembre de 2016 —que cambió un puntero con conteo de referencias por un puntero «crudo» y tocó decenas de archivos a la vez— lo reintrodujo sin que nadie lo advirtiera, y así permaneció explotable hasta 2022.

El impacto en los tres ejes de seguridad es alto (C:H/I:H/A:H): un ataque con éxito compromete la confidencialidad, la integridad y la disponibilidad del contenido procesado por el navegador, y sirve como primer eslabón para cadenas de explotación más amplias.

Respuesta del creador

Respuesta del fabricante y de las autoridades

Apple publicó las actualizaciones correctoras y, en su boletín de seguridad, incluyó la fórmula que reserva para los casos más serios: «Apple tiene constancia de un informe según el cual este problema puede haber sido explotado activamente». La compañía no atribuyó el ataque a ningún actor ni detalló las campañas; la vulnerabilidad le fue reportada por un investigador anónimo. Conviene ser prudente: «puede haber sido explotada» es la propia cautela de Apple y no equivale a una campaña masiva confirmada públicamente.

La agencia estadounidense de ciberseguridad CISA incorporó el fallo a su catálogo de vulnerabilidades explotadas conocidas (KEV) el 11 de febrero de 2022, fijando a las agencias federales un plazo de corrección hasta el 25 de febrero de 2022. En la ficha KEV no consta uso conocido por grupos de ransomware. La exhaustiva autopsia técnica corrió a cargo de Google Project Zero, cuyo mensaje de fondo fue una llamada a dedicar tiempo suficiente a auditar parches y refactorizaciones para que un fallo ya corregido no vuelva a colarse años después.

Parches y mitigaciones

Parches, versiones corregidas y qué hacer

Apple distribuyó las correcciones el 10 de febrero de 2022. Las versiones que ya incluyen la solución son:

  • iOS 15.3.1 y iPadOS 15.3.1 (iPhone y iPad).
  • macOS Monterey 12.2.1 (Mac).
  • Safari 15.3, como actualización independiente para quienes seguían en macOS Big Sur o Catalina.

La corrección, en palabras de Apple, consistió en «abordar el uso después de liberación mediante una mejor gestión de la memoria». No existen mitigaciones provisionales equivalentes al parche: como el fallo está en el motor del navegador, la única medida realmente eficaz es actualizar el sistema o el navegador a una versión igual o superior a las indicadas.

Qué hacer hoy:

  1. En un dispositivo al día (iOS/iPadOS actuales, macOS reciente), este fallo concreto ya está resuelto desde hace tiempo; no requiere acción adicional.
  2. Si gestiona equipos antiguos que se quedaron sin actualizar, aplique al menos las versiones citadas; comprobar en Ajustes/Preferencias → Actualización de software.
  3. Como buena práctica general, mantener activadas las actualizaciones automáticas: los fallos de día cero en WebKit se repiten y la ventana entre su divulgación y su explotación es corta.

Fuentes