Esecuzione di codice remoto non autenticata in Ivanti EPMM tramite EL Injection nella Bean Validation (CVE-2025-4427 & CVE-2025-4428)

Una grave vulnerabilità è stata scoperta in Ivanti Endpoint Manager Mobile (EPMM), che consente ad attaccanti di eseguire codice sul server senza autenticazione. Il problema risiede nel modo in cui il sistema valida l’input prima di verificare se un utente è autorizzato. Questo difetto permette di compromettere l’applicazione semplicemente inviando una richiesta web appositamente costruita.

ProdottoMobileIron-MDM
Data2025-05-20 14:04:56
InformazioniFix Available, Active Exploitation

Riassunto tecnico

CVE-2025-4427 e CVE-2025-4428 derivano da come Ivanti EPMM gestisce la validazione e i controlli di sicurezza in Spring MVC. In particolare:

  • Quando un utente invia una richiesta a endpoint come /api/v2/featureusage, i parametri della richiesta vengono associati a un oggetto dati (DeviceFeatureUsageReportQueryRequest).
  • Se viene utilizzata l’annotazione @Valid, Spring invoca i validatori personalizzati come DeviceFeatureUsageReportQueryRequestValidator prima di verificare se l’utente è autenticato o autorizzato.
  • All’interno di questo validatore, Ivanti utilizza buildConstraintViolationWithTemplate() con input non filtrato controllato dall’attaccante.
  • Poiché Hibernate Validator può elaborare espressioni EL (ad es. ${3*333}), queste vengono valutate immediatamente nel contesto del server.
  • Di conseguenza, un attaccante può ottenere esecuzione di codice remoto (RCE) non autenticata iniettando espressioni EL dannose (Expression Language Injection).
  • Un problema simile esiste anche in ScepSubjectValidator, attivato durante l’iscrizione SCEP ai certificati da parte di un amministratore autenticato.
  • La vulnerabilità è stata introdotta a causa di un difetto fondamentale nell’ordine di validazione di Spring: la bean-validation avviene prima dei controlli di accesso @PreAuthorize di Spring Security.

Esempio:

Una richiesta GET a:

GET /api/v2/featureusage?format=${3*333} HTTP/2

restituisce:

Format '999' is invalid. Valid formats are 'json', 'csv'.

confermando che le espressioni EL vengono valutate—anche senza autenticazione.

Raccomandazioni

Le organizzazioni che utilizzano Ivanti EPMM dovrebbero aggiornare immediatamente ad una delle versioni patchate:

  • 11.12.0.5
  • 12.3.0.2
  • 12.4.0.2
  • 12.5.0.1

Inoltre:

  • Verificare i validatori personalizzati per assicurarsi che non inseriscano dati non affidabili nei messaggi di errore.
  • Disabilitare la valutazione EL nel rendering dei template dove non necessaria.
  • Assicurarsi che i controlli di autorizzazione avvengano sempre prima di qualsiasi elaborazione dell’input utente o logica di validazione.

Vuoi una Threat Intelligence realmente costruita sul tuo business?

Affidati a ISGroup per:

  • Demo personalizzata sui tuoi asset digitali
  • Assessment gratuito per valutare il rischio in 48h
  • Confronto diretto con un ethical hacker senior
Parla con un esperto di Threat Intelligence