Apache ha rilasciato un aggiornamento di sicurezza che risolve un'importante vulnerabilità nel server web Tomcat che potrebbe consentire a malintenzionati di eseguire codice remoto. Apache Tomcat è un server web open source e un contenitore servlet ampiamente utilizzato per distribuire ed eseguire applicazioni web basate su Java. Fornisce un ambiente di runtime per le tecnologie Java Servlet, JavaServer Pages (JSP) e Java WebSocket. Il prodotto è popolare tra le grandi aziende che gestiscono app Web personalizzate, i provider SaaS che si affidano a Java per i servizi backend. I servizi cloud e di hosting integrano Tomcat per l'hosting delle app e gli sviluppatori software lo utilizzano per creare, testare e distribuire app web.
La vulnerabilità corretta nella nuova versione è tracciata come CVE-2024-56337 e risolve una mitigazione incompleta per CVE-2024-50379. Si tratta di un'esecuzione di codice remoto (RCE) critica, per la quale il fornitore ha rilasciato una patch incompleta il 17 dicembre. Il problema di sicurezza è una vulnerabilità di race condition time-of-check time-of-use (TOCTOU) che colpisce i sistemi con la scrittura servlet predefinita abilitata (parametro di inizializzazione 'readonly' impostato su false) e in esecuzione su file system non sensibili alle maiuscole/minuscole. Il problema riguarda Apache Tomcat 11.0.0-M1 fino a 11.0.1, 10.1.0-M1 fino a 10.1.33 e 9.0.0.M1 fino a 9.0.97.
Apache: necessarie alcune azioni dopo l’aggiornamento di Tomcat
Gli utenti devono eseguire l'aggiornamento alle ultime versioni di Apache Tomcat 11.0.2, 10.1.34 e 9.0.98. Per risolvere il problema sono necessari ulteriori passaggi. A seconda della versione Java in uso, oltre all’aggiornamento, gli utenti devono eseguire alcune azioni specifiche. Ad esempio, per Java 8 o 11, si consiglia di impostare la proprietà di sistema 'sun.io.useCanonCaches' su 'false' (default: true). Per Java 17, bisogna assicurarsi che 'sun.io.useCanonCaches', se impostato, sia configurato come 'false' (default: false). Per Java 21 e versioni successive, non è necessaria alcuna configurazione. La proprietà e la cache problematica sono state rimosse.
Il team di Apache ha condiviso i piani per i miglioramenti della sicurezza nelle prossime versioni di Tomcat, 11.0.3, 10.1.35 e 9.0.99. In particolare, Tomcat verificherà che ‘sun.io.useCanonCaches’ sia impostato correttamente prima di abilitare l'accesso in scrittura per il servlet predefinito su file system non sensibili alle maiuscole e minuscole. Inoltre, imposterà ‘sun.io.useCanonCaches’ su false, ove possibile. Queste modifiche mirano a imporre automaticamente configurazioni più sicure e a ridurre il rischio di sfruttamento di CVE-2024-50379 e CVE-2024-56337.