SponsorAccediInvia
Blog

macOS 27.2.1 fa smettere a curl di fidarsi di eMudhra. Ecco cosa controllerei nella mia app per Mac

Di Justinas Rolando, creatore di MacPip

Risposta breve

Il 9 novembre 2026 Apple ha rilasciato macOS 27.2.1, con 26.7.3 e 15.8.3 per i Mac più vecchi. Oltre a otto correzioni di sicurezza, chiudono una falla lasciata dalla compromissione dei certificati eMudhra: dal 19 ottobre, Safari, Mail e le app che usano i framework di rete e sicurezza di Apple rifiutavano già 12 certificati compromessi, ma gli strumenti da riga di comando come curl, git, python3 e openssl leggevano /etc/ssl/cert.pem e continuavano ad accettarli. Gli aggiornamenti rimuovono cinque certificati radice da quel file, tra cui AAA Certificate Services. Se la tua app, il tuo installer o il tuo script di aggiornamento usa quegli strumenti, o include una propria lista di radici attendibili, prova i tuoi download e i tuoi server sulle nuove versioni.

La maggior parte degli aggiornamenti per Mac li installo e me ne dimentico. macOS 27.2.1, uscito il 9 novembre, è uno di cui leggerei le note in piccolo se facessi app per Mac, perché cambia di quali certificati si fidano alcuni strumenti presenti su ogni Mac. Apple lo ha rilasciato insieme a macOS Tahoe 26.7.3 e Sequoia 15.8.3 per i Mac più vecchi, e tutti e tre portano la stessa modifica.

Ecco cos'è successo, chi riguarda e cosa testerei.

Cos'è successo

Gli stessi aggiornamenti correggono altri otto bug di sicurezza, in Messaggi, AirPlay e Bluetooth, secondo MacRumors. Apple non ha detto che alcuni siano stati usati in attacchi.

Perché dovrebbe importarti se fai app Mac

Se la tua app è una normale app Swift che comunica con internet tramite URLSession, a ottobre era molto probabilmente coperta. La pagina di Apple parla di app che usano i suoi framework di rete e sicurezza, e Howard Oakley, citato da Michael Tsai, dice che le app basate sulle API standard di Apple usano l'archivio di fiducia di macOS.

Le app che non erano coperte sono quelle che molti maker indipendenti pubblicano:

Quindi la correzione di ottobre potrebbe non aver raggiunto la tua app, e quella di novembre potrebbe non raggiungerla se porta con sé le proprie radici.

C'è anche un altro lato. AAA Certificate Services è una vecchia radice di Sectigo che ha firmato moltissimi certificati normali. La pagina di Apple avverte che gli strumenti che usano solo /etc/ssl/cert.pem potrebbero non riuscire a verificare alcuni siti le cui catene passano per le radici rimosse. Se il tuo server di download, il feed degli aggiornamenti o l'API delle licenze è uno di questi, curl su un Mac aggiornato potrebbe iniziare a rifiutarlo.

Cosa controllerei questa settimana

Questi sono i miei passaggi, non quelli di Apple.

  1. Aggiorna un Mac a 27.2.1 e prova i download da riga di comando. Esegui il tuo script di installazione, il tuo brew install se hai un cask, e curl -I sugli indirizzi di download, appcast e licenza. Un certificato rifiutato compare come errore, non come pagina lenta.
  2. Guarda la catena di certificati del tuo sito. Esegui openssl s_client -connect yourapp.com:443 -showcerts e leggi le righe dell'emittente. Se vedi eMudhra, emSign o AAA Certificate Services, chiedi al tuo hosting o a chi ti vende il certificato una catena che termini su un'altra radice.
  3. Scopri quale archivio di fiducia usa davvero la tua app. Electron, Go, Rust con radici incluse, Python con certifi e Java ne portano uno proprio. Aggiorna il runtime o il pacchetto delle radici a una versione che elimina i certificati compromessi e segnalalo nelle note di rilascio.
  4. Tieni pronta una risposta per il supporto. Se qualcuno con un Mac più vecchio non può installare gli aggiornamenti, la pagina di Apple ha i passaggi per rimuovere le radici a mano. Io linkerei la pagina di Apple invece di incollare in un'email comandi che usano sudo.
  5. Dì alle persone di aggiornare. Se chi usa la tua app è piuttosto tecnico, una breve nota nel prossimo rilascio o nella newsletter non costa niente.
  6. Controlla il file su un Mac di prova. La pagina di Apple indica il comando qui sotto, che non stampa nulla quando le due radici principali non ci sono più.
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services'

Cosa non farei

Non disattiverei i controlli sui certificati in uno script per far sparire un errore. È proprio l'unica cosa da cui questa modifica ti protegge. E non direi agli utenti che il loro Mac è stato hackerato. Non ci sono segni che le chiavi siano state usate e la maggior parte delle app era protetta già a ottobre.

Il punto di vista di MacPip

MacPip non controlla di quali certificati si fida un'app. Le schede vengono scansionate automaticamente quando sono inviate, e una spunta blu significa solo che una persona ha provato l'app in una certa data. Se crei uno strumento per sviluppatori o un'app di sicurezza e privacy, sei tra i più esposti ad avere uno script o un runtime incluso toccato da questa modifica, quindi vale un'ora del tuo tempo.

Novità di oggi: il verificatore di privacy manifest. Incolla il tuo PrivacyInfo.xcprivacy e controlla ogni tipo di dato, finalità e codice motivo richiesto, come CA92.1, rispetto alle liste ufficiali di Apple. Dice anche cosa Apple richiede su Mac e cosa no. Funziona nella pagina e non viene inviato nulla. La guida all'Info.plist e la guida alla notarizzazione sono lì accanto. E se la tua app per Mac non è ancora su MacPip, inserirla è gratis.

Fonti

Continua a leggere

Invia la tua appStrumenti gratuiti per i creatori