// 1 ZERO-DAY · 1 CVE · 2 EXPLOIT NELLE ULTIME 24H→
Jamf Threat Labs ha analizzato una nuova variante di PamStealer che usa scambio di chiavi ECDH con il server C2 per decrittare il payload. Quattro metodi di

Il 25 settembre 2026 i ricercatori di Jamf Threat Labs hanno pubblicato l'analisi di una nuova variante del malware macOS PamStealer che introduce una novità strutturale nel landscape delle minacce Apple: la decrittazione del payload finale è condizionata alla disponibilità del server di comando e controllo. Senza connessione live con il C2, il secondo stadio rimane irrecuperabile all'analisi statica. Il dato non è marginale: cambia l'equazione tra difensori e attaccanti, rendendo inutili le sandbox tradizionali che eseguono campioni in isolamento.

Punti chiave
  • Il malware PamStealer per macOS decrittizza il payload finale solo dopo uno scambio di chiavi ECDH Curve25519 con il server C2, rendendo il secondo stadio inerte fuori dal contesto di esecuzione live.
  • Quattro meccanismi di persistenza ridondanti sono installati simultaneamente: LaunchAgent, script zsh di riparazione, hook shell in ~/.zshrc e Git hooks in post-checkout/pre-commit.
  • Il componente stealer è stato riscritto da Rust a Swift, con targeting di oltre 13 browser inclusi prodotti privacy-focused come Arc, Zen, Waterfox e LibreWolf.
  • L'intero livello JXA (JavaScript for Automation) funziona ora da puro carrier senza materiale chiave incorporato, a differenza delle varianti precedenti che includevano la chiave di decrittazione nel sorgente.

Il meccanismo che uccide l'analisi offline

L'evoluzione tecnica centrale riguarda l'utilità pkgunpack, scaricata dal dominio wavel.apple03cloudstore[.]com. Durante ogni esecuzione, questa utility genera una coppia di chiavi effimera Curve25519 e avvia uno scambio con il server. Il server detiene la chiave privata complementare: solo completando l'ECDH può generare lo shared secret necessario a decrittare la data encryption key (DEK). Il payload resta cifrato in assenza di questa cooperazione.

Thijs Xhaflaire di Jamf Threat Labs ha sintetizzato il vantaggio operativo per gli attaccanti: Where earlier variants embedded their payload key material directly in the JXA source, it now fetches a purpose-built decryption utility and completes a key exchange with the server before the payload can be unwrapped. La conseguenza è che ogni esecuzione genera una nuova coppia di chiavi effimere, prevenendo il replay di una DEK eventualmente catturata in una sessione precedente.

L'architettura rappresenta un salto rispetto alle tecniche di offuscamento tradizionali. Non si tratta di rendere il reverse engineering più laborioso, ma di renderlo impossibile in assenza del server. Le sandbox automatiche che eseguono campioni in isolamento non ricevono mai la DEK: il secondo stadio non si materializza, le firme comportamentali non si attivano, la catena di infection resta incompleta.

"Without the server's cooperation, the payload cannot be recovered statically"
— Thijs Xhaflaire, Jamf Threat Labs

I quattro anelli della persistenza: quando la reinfezione è il default

La nuova variante installa quattro metodi di persistenza sovrapposti, ridondanti tra loro. Il primo è un LaunchAgent classico. Il secondo è uno script zsh di riparazione che reinstalla i componenti se mancanti. Il terzo è un hook shell inserito nel file ~/.zshrc. Il quarto, e il più insidioso per l'ambiente di sviluppo, sfrutta i Git hooks.

Lo script di riparazione viene copiato nelle cartelle post-checkout e pre-commit dentro ~/Library/Application Support/System/.githooks/, con la configurazione globale git config --global core.hooksPath reindirizzata su quel percorso. Ogni git checkout o commit in qualsiasi repository locale attiva il malware. L'abuso dei Git hooks trasforma operazioni di routine degli sviluppatori in trigger di reinfezione, con un impatto specifico su ambienti che gestiscono codice sorgente, repository privati e pipeline CI/CD.

Xhaflaire ha notato come l'inclusione di browser come Arc, Zen e prodotti regionali come Yandex Browser e Cốc Cốc estenda il target noticeably beyond what is typical in commodity macOS stealers. Questa cura nel targeting suggerisce attenzione a utenti tecnicamente consapevoli, che potrebbero avere accesso privilegiato a infrastrutture critiche.

Il nuovo stealer in Swift e la raccolta delle credenziali

Il componente stealer finale è stato riscritto in Swift, abbandonando l'implementazione Rust del predecessore. La variazione del linguaggio potrebbe indicare un refactoring dell'infrastruttura o l'adozione di un toolchain diverso nel gruppo di sviluppo. Il malware cattura la password di sistema servendo una falsa finestra di crash e validando l'input tramite approccio PAM-based.

Dai browser Chromium- e Firefox-based vengono estratte credenziali da Chrome, Edge, Firefox, Brave, Vivaldi, Opera, Opera GX, Arc, Zen, Waterfox, LibreWolf, Yandex Browser e Cốc Cốc. Sono inoltre raccolti file user-centric: .zsh_history, .zshrc, .bash_history e .gitconfig. La combinazione di credenziali browser, storico shell e configurazione Git permette ricostruzioni dettagliate delle attività della vittima, con esposizione di token di accesso a repository e ambienti cloud.

Il vettore di ingresso attuale passa attraverso un sito fittizio, wavel[.]app, che pubblicizza un servizio di wallet cryptocurrency inesistente denominato Wavel. Il clic su "Download for macOS" recupera un'immagine disco Wavel.dmg contenente un file AppleScript compilato. L'intero livello JXA è ridotto a carrier puro: quando Script Editor esegue il file, decodifica una stringa base64 e la invia a /bin/zsh -s, che a sua volta recupera pkgunpack e avvia la catena di decrittazione.

Cosa fare adesso

  • Verificare la presenza di directory ~/Library/Application Support/System/.githooks/ e di configurazioni Git globali anomale puntate su percorsi fuori standard, con particolare attenzione a core.hooksPath.
  • Ispezire i LaunchAgent in ~/Library/LaunchAgents per entry non riconducibili a software legittimo, data la sovrapposizione di questo meccanismo con gli altri tre nella variante attuale.
  • Analizzare il traffico DNS e le connessioni in uscita verso domini simili a wavel.apple03cloudstore[.]com, considerando che il payload cifrato viene scaricato solo dopo lo scambio di chiavi e potrebbe non attivare firme statiche.
  • Rivedere le politiche di esecuzione di file DMG e AppleScript compilati sui sistemi degli sviluppatori, data l'identificazione di questi formati come carrier nella campagna Wavel.

Le domande che il dossier non risolve

Non è confermato se PamStealer e MacSync — famiglia malware correlata documentata da Kaspersky che condivide tecniche come pkgunpack e ECDH Curve25519 — rappresentino lo stesso progetto o due operazioni distinte con contractor o toolchain comuni. Kaspersky ha descritto MacSync nel contesto di delivery via DMG e utility di decrittazione con le stesse primitive crittografiche, ma non ha analizzato PamStealer direttamente.

Restano inoltre non specificati il numero di vittime confermate, la geografia delle infezioni e la possibile presenza di un componente backdoor oltre allo stealer. Il brief non documenta se GitHub Security Lab o altri vendor abbiano rilasciato firme di detection dedicate, né se la campagna Wavel rappresenti un'operazione isolata o un deployment più ampio di malware-as-a-service.

Il dato che emerge con chiarezza è l'investimento deliberato nell'infrastruttura di delivery. La trasformazione del JXA da contenitore di chiavi a carrier neutro, l'introduzione dello scambio ECDH vincolato al C2 e la quadruplicazione dei metodi di persistenza indicano un progetto mantenuto attivamente, con iterazioni che rispondono ai punti di frizione incontrati nelle varianti precedenti. Per le organizzazioni che si affidano a sandbox e analisi statica per la prima linea di difesa, questo specifico campione segna un limite concreto: senza emulazione del server C2, il vero payload non si mostra.

Fonti

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. securelist.com
  2. github.com
  3. guardianmssp.com
  4. infosectoday.io
  5. support.github.com
  6. thehackernews.com