Vai al contenuto principale
BlogSicurezzaBollettino di sicurezza Linode dal 13 al 19 marzo 2023

Linode Security Digest, 13-19 marzo 2023

Digesto di sicurezza di Linode

Nel digest di questa settimana, discuteremo di:

  • mancano i controlli di stato, nonce e PKCE per l'autenticazione OAuth ;
  • Apache Server HTTP: mod_proxy_uwsgi Suddivisione della risposta HTTP; 
  • ShadowsocksX-NG firma con i diritti com.apple.security.get-task-allow a causa di CODE_SIGNING_INJECT_BASE_ENTITLEMENTS; e
  • un problema di controllo degli accessi in runc che consente a un utente malintenzionato di aumentare i privilegi all'interno di un contenitore.
CVE-2023-27490: Mancano i controlli di stato, nonce e PKCE per l'autenticazione OAuth

Sfondo

OAuth (Open Authorization) è un protocollo standard aperto che consente alle applicazioni di terze parti di accedere alle risorse per conto di un utente senza doverne conoscere le credenziali, come nome utente e password. OAuth funziona consentendo all'utente di concedere l'accesso alle proprie risorse autenticandosi con il proprietario della risorsa (ad esempio, una piattaforma di social media) e ottenendo un token di accesso, che viene poi utilizzato per accedere alle risorse per conto dell'utente. Questo token di accesso viene emesso dal proprietario della risorsa e può essere utilizzato dall'applicazione di terze parti per accedere alle risorse dell'utente senza dover conoscere le sue credenziali di accesso.

Vulnerabilità

La vulnerabilità CVE-2023-27490 esiste nel pacchetto Next-auth, che è legato al flusso di autenticazione OAuth . In particolare, si verifica durante una sessione OAuth quando l'URL di autorizzazione viene intercettato e manipolato da un utente malintenzionato. Questa vulnerabilità può consentire all'aggressore di accedere come vittima e di aggirare la protezione CSRF normalmente in vigore. Nel flusso OAuth , l'URL di autorizzazione viene utilizzato per avviare il processo di autenticazione e richiedere l'accesso alle risorse dell'utente. L'URL contiene parametri importanti, come lo stato, il pkce e il nonce, utilizzati per prevenire attacchi come CSRF, attacchi replay e furto di token. Tuttavia, se l'URL di autorizzazione viene intercettato e manipolato da un aggressore, queste protezioni possono essere aggirate, portando alla vulnerabilità descritta nel pacchetto Next-auth.

La causa principale della vulnerabilità è un errore parziale che si verifica durante una sessione OAuth compromessa. In particolare, viene generato erroneamente un codice di sessione che consente all'aggressore di aggirare la protezione CSRF e di accedere come vittima.

Mitigazione

  • La vulnerabilità è stata risolta nella versione next-auth v4.20.1; l'aggiornamento alla versione più recente è il modo consigliato per risolvere il problema.
  • Tuttavia, utilizzando l'Inizializzazione avanzata, gli sviluppatori possono controllare manualmente la richiesta di callback per stato, pkce e nonce rispetto alla configurazione del provider e interrompere il processo di accesso in caso di mancata corrispondenza.
CVE-2023-27522: Apache HTTP Server: mod_proxy_uwsgi HTTP response splitting

Sfondo

L'HTTP Request Smuggling è una vulnerabilità delle applicazioni Web che si verifica quando un utente malintenzionato può manipolare il modo in cui un'applicazione o un server Web elabora le richieste HTTP inviate da un client. Questa vulnerabilità può consentire a un aggressore di aggirare i controlli di sicurezza, eseguire azioni non autorizzate o rubare dati sensibili.

L'attacco consiste tipicamente nello sfruttare le incongruenze nel modo in cui un server Web front-end e un server o un'applicazione back-end gestiscono le richieste HTTP, come l'interpretazione delle intestazioni Content-Length o la gestione della codifica chunked. Manipolando queste incongruenze, un aggressore può creare una richiesta che viene interpretata in modo diverso dai due server, con il risultato che la richiesta viene elaborata in modo improprio o che il server front-end agisce come proxy per l'aggressore per eseguire richieste dannose per conto di quest'ultimo.

Vulnerabilità

La vulnerabilità CVE-2023-27522 colpisce Apache HTTP Server nelle versioni da 2.4.30 a 2.4.55, in particolare attraverso il modulo mod_proxy_uwsgi. La vulnerabilità si verifica quando il server di origine invia un'intestazione di risposta HTTP appositamente creata che contiene alcuni caratteri speciali, come spazi o tabulazioni, seguiti da un'intestazione "Content-Length".

Il modulo mod_proxy_uwsgi di Apache HTTP Server può interpretare erroneamente questa intestazione e inoltrare la risposta al client con un'intestazione "Content-Length" troncata o divisa. Ciò può far sì che il client riceva risposte incomplete o errate, consentendo potenzialmente a un utente malintenzionato di eseguire vari tipi di attacchi, come la perdita di dati, la falsificazione della richiesta lato server (SSRF), il cross-site scripting (XSS) e l'esecuzione di codice remoto (RCE).

Mitigazione

  • Si consiglia di aggiornare alla versione più recente di Apache HTTP Server o di applicare le patch disponibili. 
  • Inoltre, i firewall per applicazioni Web e i sistemi di rilevamento delle intrusioni possono essere utilizzati per rilevare e prevenire gli attacchi di contrabbando di risposte HTTP. 
  • È inoltre importante assicurarsi che vengano utilizzate tecniche adeguate di convalida dell'input e di codifica dell'output per evitare l'iniezione di caratteri speciali nelle risposte HTTP.
CVE-2023-27574: ShadowsocksX-NG firma con com.apple.security.get-task-allow 

Sfondo

ShadowsocksX-NG è un'applicazione gratuita e open source che aiuta gli utenti a bypassare la censura di Internet creando un proxy socks5 sicuro attraverso il quale accedere a Internet.

Quando un'applicazione è sviluppata e pronta per la distribuzione, deve essere firmata con un certificato valido per garantire che sia legittima e non sia stata manomessa. Questo processo si chiama firma del codice.

Uno dei requisiti per la firma del codice è l'inclusione dei diritti, ovvero delle autorizzazioni di cui un'applicazione ha bisogno per funzionare correttamente. I diritti specificano le risorse e le azioni a cui l'applicazione può accedere, come la rete, il file system o l'hardware.

Vulnerabilità

La vulnerabilità CVE-2023-27574 è presente nell'applicazione ShadowsocksX-NG versione 1.10.0, firmata con un entitlement chiamato com.apple.security.get-task-allow. Questo entitlement consente all'applicazione di essere sottoposta a debug e ispezionata da strumenti di sviluppo, come Xcode, anche quando è in esecuzione sul dispositivo dell'utente.

Il motivo dell'inclusione di questo diritto è dovuto a una funzione chiamata CODE_SIGNING_INJECT_BASE_ENTITLEMENTS. Questa funzione fa parte del processo di firma del codice e consente agli sviluppatori di includere ulteriori diritti oltre a quelli esplicitamente specificati nel file dei diritti dell'applicazione. In altre parole, quando la funzione CODE_SIGNING_INJECT_BASE_ENTITLEMENTS è abilitata, Xcode inietterà automaticamente una serie di diritti predefiniti nella firma dell'applicazione. Questi diritti si basano sull'account dello sviluppatore e sulle impostazioni del progetto. Per impostazione predefinita, includono il diritto com.apple.security.get-task-allow.

Il problema di questo approccio è che il diritto com.apple.security.get-task-allow può essere sfruttato dagli aggressori per ottenere informazioni sensibili dalla memoria dell'applicazione, come chiavi di crittografia o altri dati sensibili. Ciò potrebbe avvenire sfruttando una vulnerabilità dell'applicazione o utilizzando uno strumento di terze parti per leggere la memoria dell'applicazione.

Mitigazione

  • Si consiglia agli utenti di ShadowsocksX-NG versione 1.10.0 di aggiornare a una versione successiva che non includa i diritti com.apple.security.get-task-allow o di rimuovere manualmente i diritti dalla firma del codice dell'applicazione.
  • Inoltre, gli utenti devono essere cauti nell'utilizzo di software VPN/proxy e assicurarsi di utilizzare una versione affidabile e sicura del software.
CVE-2019-5736: problema di controllo degli accessi in runc

Sfondo

runc è un'utilità a riga di comando per lo spawning e l'esecuzione di container secondo le specifiche della Open Container Initiative (OCI). È comunemente usata in ambienti di runtime per container come Docker, Kubernetes e altri.

Vulnerabilità

La vulnerabilità CVE-2019-5736 è un problema di controllo degli accessi che consente a un utente malintenzionato di scalare i privilegi all'interno di un container. In particolare, il problema è legato al modo in cui la versione di runc fino alla 1.1.4 gestisce il file system di root (rootfs) all'avvio di un container.

In libcontainer/rootfs_linux.gorunc imposta la rootfs di un contenitore montandola in sola lettura e sovrapponendovi uno strato scrivibile. Questo processo viene utilizzato per creare il file system del contenitore e isolarlo dal sistema host.

Tuttavia, una falla in questo codice consente a un utente malintenzionato di sovrascrivere il file /proc/self/exe che è un collegamento simbolico al binario runc stesso. In questo modo, l'aggressore può eseguire codice arbitrario con privilegi elevati, sfuggendo di fatto al contenitore e ottenendo il controllo del sistema host.

Mitigazione

  • Aggiornare a una versione patchata: L'aggiornamento a una versione patchata di runc è la mitigazione più efficace per questa vulnerabilità. Le versioni di runc 1.0.0-rc6 e successive includono una correzione per questa vulnerabilità.
  • Aggiornare i runtime dei container: Se si utilizza un ambiente di runtime per container come Docker o Kubernetes, assicurarsi di eseguire l'aggiornamento a una versione che includa la versione runc patchata.
  • Implementare i controlli di accesso: Per mitigare il rischio di questa vulnerabilità, è necessario implementare i controlli di accesso per limitare la capacità degli aggressori di generare container con configurazioni di montaggio dei volumi personalizzate ed eseguire immagini personalizzate. 
  • Ridurre al minimo i privilegi dei container: Ridurre al minimo i privilegi dei container può aiutare a limitare la portata di un potenziale attacco. Ciò può essere ottenuto eseguendo i container come utenti non root, limitando le capacità dei container e limitando l'accesso alle risorse sensibili dell'host.

Commenti

Lascia una risposta

Il vostro indirizzo e-mail non sarà pubblicato. I campi obbligatori sono contrassegnati da *