PatrocinarIniciar sesiónEnviar
Blog

macOS 27.2.1 hace que curl deje de confiar en eMudhra. Esto es lo que revisaría en mi app de Mac

Por Justinas Rolando, creador de MacPip

Respuesta corta

El 9 de noviembre de 2026, Apple lanzó macOS 27.2.1, con 26.7.3 y 15.8.3 para Macs más antiguos. Además de ocho correcciones de seguridad, cierran una brecha que dejó el compromiso de certificados de eMudhra: desde el 19 de octubre, Safari, Mail y las apps que usan los frameworks de red y seguridad de Apple ya rechazaban 12 certificados malos, pero las herramientas de línea de comandos como curl, git, python3 y openssl leen /etc/ssl/cert.pem y seguían aceptándolos. Las actualizaciones eliminan cinco certificados raíz de ese archivo, incluido AAA Certificate Services. Si tu app, instalador o script de actualización usa esas herramientas, o incluye su propia lista de raíces de confianza, prueba tus descargas y tus propios servidores en las nuevas versiones.

La mayoría de las actualizaciones del Mac las instalo y me olvido. macOS 27.2.1, publicado el 9 de noviembre, es una de las que leería con atención si hiciera una app de Mac, porque cambia en qué certificados confían algunas de las herramientas de todos los Mac. Apple lo lanzó junto con macOS Tahoe 26.7.3 y Sequoia 15.8.3 para Macs más antiguos, y las tres versiones incluyen el mismo cambio.

Esto es lo que pasó, a quién afecta y qué probaría yo.

Qué pasó

Las mismas actualizaciones corrigen otros ocho fallos de seguridad, en Mensajes, AirPlay y Bluetooth, según MacRumors. Apple no dijo que ninguno se usara en ataques.

Por qué debería importarte si haces apps de Mac

Si tu app es una app normal de Swift que se comunica con internet mediante URLSession, lo más probable es que quedara cubierta en octubre. La página de Apple habla de apps que usan sus frameworks de red y seguridad, y Howard Oakley, citado por Michael Tsai, dice que las apps creadas con las API estándar de Apple usan el almacén de confianza de macOS.

Las apps que no quedaron cubiertas son las que muchos creadores independientes publican:

Así que la corrección de octubre puede no haber llegado a tu app, y la de noviembre tampoco si trae sus propias raíces.

Hay un segundo lado. AAA Certificate Services es una raíz antigua de Sectigo que ha firmado muchísimos certificados normales. La página de Apple avisa de que las herramientas que usan solo /etc/ssl/cert.pem pueden no verificar algunos sitios cuyas cadenas pasan por las raíces eliminadas. Si tu servidor de descargas, tu feed de actualizaciones o tu API de licencias resulta ser uno de ellos, curl en un Mac actualizado podría empezar a rechazarlo.

Lo que revisaría esta semana

Estos son mis propios pasos, no los de Apple.

  1. Actualiza un Mac a 27.2.1 y prueba las descargas desde la línea de comandos. Ejecuta tu script de instalación, tu brew install si tienes un cask, y curl -I contra las direcciones de tu descarga, tu appcast y tu licencia. Un certificado rechazado aparece como un error, no como una página lenta.
  2. Mira tu propia cadena de certificados. Ejecuta openssl s_client -connect yourapp.com:443 -showcerts y lee las líneas del emisor. Si ves eMudhra, emSign o AAA Certificate Services, pide a tu hosting o a quien te vendió el certificado una cadena que termine en otra raíz.
  3. Averigua qué almacén de confianza usa de verdad tu app. Electron, Go, Rust con raíces incluidas, Python con certifi y Java traen el suyo. Actualiza el runtime o el paquete de raíces a una versión que elimine los certificados malos, y anótalo en las notas de la versión.
  4. Ten lista una respuesta para soporte. Si alguien con un Mac antiguo no puede instalar actualizaciones, la página de Apple tiene pasos para quitar las raíces a mano. Yo enlazaría a la página de Apple en lugar de pegar en un correo comandos que usan sudo.
  5. Dile a la gente que actualice. Si los usuarios de tu app son bastante técnicos, una nota breve en tu próxima versión o boletín no cuesta nada.
  6. Revisa el archivo en un Mac de prueba. La página de Apple da el comando de abajo, que no muestra nada cuando las dos raíces clave ya no están.
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services'

Lo que no haría

No desactivaría la comprobación de certificados en un script para que desaparezca un error. Eso es justo lo que protege todo este cambio. Y tampoco diría a los usuarios que hackearon su Mac. No hay señales de que se usaran las claves, y la mayoría de las apps quedaron protegidas en octubre.

El enfoque de MacPip

MacPip no comprueba en qué certificados confía una app. Las fichas se analizan automáticamente al enviarse, y una marca azul solo significa que una persona probó la app en una fecha. Si haces una herramienta de desarrollo o una app de seguridad y privacidad, eres quien más probablemente tenga un script o un runtime incluido que esto afecte, así que vale una hora de tu tiempo.

Novedad de hoy: el verificador de manifiestos de privacidad. Pega tu PrivacyInfo.xcprivacy y comprueba cada tipo de dato, propósito y código de razón requerida, como CA92.1, con las listas de Apple. También te dice qué pide Apple en el Mac y qué no. Funciona en la propia página y no se envía nada. La guía del Info.plist y la guía de la notarización están al lado. Y si tu app de Mac aún no está en MacPip, listarla es gratis.

Fuentes

Sigue leyendo

Envía tu appHerramientas gratuitas para creadores