Ricerche sulle CyberMinacce

Il plugin di WordPress consente agli utenti di diventare amministratori – Aggiornate subito, aggiornate spesso!

Se gestite un sito WordPress con il plugin Ultimate Members installato, allora assicuratevi di averlo aggiornato all'ultima versione

Durante lo scorso fine settimana il creatore del plugin Ultimate Members ha pubblicato la versione 2.6.7, che dovrebbe correggere una grave falla di sicurezza descritta dall’utente @softwaregeek sul sito di supporto di WordPress come segue:

Una vulnerabilità grave nel plugin (CVE-2023-3460) consente ad un utente non autenticato di registrarsi come amministratore e di assumere il pieno controllo del sito web. Il problema si verifica nel modulo di registrazione del plugin. In questo form sembra possibile modificare alcuni valori per l’account da registrare. Tra questi vi è il valore wp_capabilities, che determina il ruolo dell’utente sul sito web.

Il plugin non consente agli utenti di inserire questo valore, ma questo filtro risulta essere facilmente aggirabile, rendendo possibile modificare wp_capabilities e diventare in questo modo un amministratore.

In altre parole, quando si creano o gestiscono i propri account online, il modulo web presentato agli utenti sul lato client non consente ufficialmente di dotarsi di superpoteri.

Ma il software di back-end non è in grado di rilevare e bloccare in modo affidabile gli utenti disonesti che inviano deliberatamente richieste improprie.

Il plugin promette “facilità assoluta”

Il software Ultimate Member si propone di aiutare i siti WordPress a offrire vari livelli di accesso agli utenti, definendosi il “miglior profilo utente e plugin per l’iscrizione a WordPress” e parlando di sé stesso nel suo annuncio pubblicitario in questi termini:

Il plugin numero 1 di WordPress per profile & membership dell’utente.Il plugin consente agli utenti di iscriversi e diventare membri del vostro sito web in modo semplice. Il programma permette di aggiungere splendidi profili utente al vostro sito ed è perfetto per creare comunità online avanzate e siti di iscrizione. Leggero e facilmente estendibile, Ultimate Member vi consentirà di creare quasi tutti i tipi di siti in cui gli utenti possono iscriversi e diventare membri con assoluta facilità.

Purtroppo, i programmatori non sembrano molto fiduciosi nella possibilità di coniugare la “facilità estrema” di utilizzo del plugin con una solida sicurezza.

In una risposta ufficiale alla segnalazione di @softwaregeek, l’azienda ha descritto il suo processo di correzione dei bug in questo modo [testo citato sic]:

Elaboriamo le correzioni relative a questa vulnerabilità a partire dalla versione 2.6.3 non appena riceviamo una segnalazione da uno dei nostri clienti. Le versioni 2.6.4, 2.6.5 e 2.6.6 risolvono parzialmente questa vulnerabilità, ma stiamo ancora collaborando con il team di WPScan per ottenere il risultato migliore. Riceviamo inoltre il loro rapporto con tutti i dettagli necessari.

Tutte le versioni precedenti sono vulnerabili, quindi consigliamo vivamente di aggiornare i siti web alla versione 2.6.6 e di continuare ad applicare gli aggiornamenti in futuro per ottenere i recenti miglioramenti della sicurezza e delle funzionalità.

Attualmente stiamo lavorando per risolvere un problema in sospeso e rilasceremo un ulteriore update non appena possibile.

Bug in più punti

Se eravate in servizio di cybersicurezza durante la famigerata vulnerabilità Log4Shell durante le vacanze di Natale 2021, saprete che alcuni tipi di bug di programmazione finiscono per richiedere patch che richiedono patch e così via.

Ad esempio, se si verifica un buffer overflow in un singolo punto del codice in cui sono stati inavvertitamente riservati 28 byte di memoria, ma si è sempre voluto digitare 128, la correzione di quel numero errato sarebbe sufficiente a risolvere il bug in un colpo solo.

Ora, però, immaginate che il bug non sia dovuto a un errore di digitazione in un solo punto del codice, ma che sia causato dall’assunto che 28 byte sia la dimensione giusta del buffer in ogni momento e in ogni luogo.

Voi e il vostro team di programmazione potreste aver ripetuto il bug in altri punti del vostro software, per cui dovrete dedicarvi a una sessione prolungata di caccia al bug.

In questo modo, potete rilasciare prontamente e in modo proattivo ulteriori patch se trovate altri bug causati dallo stesso errore o da un errore simile. (I bug sono generalmente più facili da trovare una volta che si sa in primo luogo cosa cercare).

Nel caso di Log4J, gli aggressori hanno anche iniziato a scandagliare il codice, sperando di trovare errori di programmazione correlati in altri punti del codice prima che lo facessero i programmatori di Log4J.

Fortunatamente, il team di programmazione di Log4J non solo ha rivisto il proprio codice per correggere i bug correlati in modo proattivo, ma ha anche tenuto gli occhi aperti su nuovi exploit proof-of-concept.

Alcune nuove vulnerabilità sono state rivelate pubblicamente da entusiasti cacciatori di bug che, a quanto pare, hanno preferito la fama istantanea su Internet alla forma più sobria di riconoscimento ritardato che avrebbero ottenuto rivelando il bug in modo responsabile ai programmatori di Log4J.

Abbiamo assistito a una situazione simile nella recente vulnerabilità command injection di MOVEit, in cui i membri della banda del ransomware Clop hanno trovato e sfruttato un bug zero-day nel front-end basato sul Web di MOVEit consentendo ai truffatori di rubare dati aziendali sensibili per poi cercare di ricattare le vittime per ottenere il “silenzio”.

Progress Software, l’azienda produttrice di MOVEit, ha prontamente corretto il bug zero-day, poi ha pubblicato una seconda patch dopo aver trovato bachi correlati in una propria sessione di bug-hunting, per poi pubblicare una terza patch poco dopo, quando un sedicente cacciatore di minacce ha trovato un’altra falla che a Progress era sfuggita.

Purtroppo, il “ricercatore” ha deciso di rivendicare il merito di aver trovato la vulnerabilità pubblicandola perché tutti potessero vederla, invece di concedere a Progress un giorno o due per occuparsene preventivamente.

Questo ha costretto Progress a dichiarare che si trattava di un altro zero-day e ha costretto i suoi clienti a disattivare completamente la parte del software infetta per circa 24 ore, mentre veniva creata e testata una patch.

In questa vicenda del bug di Ultimate Members, i produttori del plugin non sono stati così premurosi come i produttori di MOVEit, che hanno esplicitamente consigliato ai loro clienti di interrompere l’uso del software mentre la nuova e sfruttabile falla veniva corretta.

Ultimate Members si è limitato a consigliare ai propri utenti di tenere d’occhio gli aggiornamenti in corso, di cui la recente versione 2.6.7 è il quarto anello di una catena di correzioni di bug per un problema riscontrato per la prima volta a metà del giugno 2023, quando il numero di versione corrente era 2.6.3.

Cosa fare?

  • Se siete utenti di UltimateMember, applicate urgentemente una patch. Dato il modo frammentario in cui il team di codifica del plugin sembra affrontare il problema, assicuratevi di controllare i futuri aggiornamenti e di applicarli il prima possibile.
  • Se siete programmatori lato server, pensate sempre al peggioS. Non affidatevi mai al codice lato client che non potete controllare, come l’HTML o il JavaScript che viene eseguito nel browser dell’utente, per garantire la sicurezza dei dati immessi. Convalidate i vostri input, come ci piace dire su Naked Security. Misurate sempre, non date nulla per scontato.
  • Se siete programmatori, cercate accuratamente i problemi correlati quando viene segnalato un bug. Gli errori di codifica commessi in un punto da un programmatore potrebbero essere stati duplicati altrove, dallo stesso programmatore che ha lavorato su altre parti del progetto o da altri programmatori che hanno “”appreso”” cattive abitudini o si sono fidati di ipotesi progettuali errate.