Blog2Social: scoperti due problemi di sicurezza sul noto plugin WordPress

Blog2Social: scoperti due problemi di sicurezza sul noto plugin WordPress

Blog2Social: scoperti due problemi di sicurezza sul noto plugin WordPress

Ahimè oggi torniamo a parlare di plugin di WordPress bucati, stavolta a riguardo di Blog2Social, plugin installato su oltre 70.000 siti che consente agli utenti di impostare la condivisione degli articoli/post su vari social network.

Le versioni vulnerabili di Blog2Social sono tutte quelle più basse o uguali alla 6.9.11; queste consentirebbero agli utenti malintenzionati con privilegi minimi di modificare le impostazioni del plugin.

Blog2Social è un plugin che consente, a chi si occupa di gestire un sito web WordPress, di condividere rapidamente i contenuti del sito sui propri account social media, compresa la condivisione automatica degli articoli o post.

Proprio alcune di queste impostazioni più avanzate sono state implementate in modo non sicuro, consentendo ai malintenzionati autenticati di aggiornare queste impostazioni anche senza l’autorizzazione a farlo.

Blog2Social: la vulnerabilità

Andando più nello specifico Blog2Social consente di utilizzare la modalità “legacy” che ha lo scopo di ridurre il carico del server.

In questa modalità il plugin carica i contenuti un elemento alla volta invece di caricare tutti i contenuti in blocco, nel tentativo di ridurre la probabilità di blocchi della dashboard, compreso il caricamento in ordine sequenziale degli account di social media anziché contemporaneamente.

Sebbene la funzionalità non dovrebbe risentire del problema di sicurezza in modo significativo per la maggior parte dei casi, questa impostazione “legacy” è riservata solo agli amministratori e sfortunatamente a causa della mancanza di controllo sulla funzione e nell’interfaccia utente, gli utenti del sito hanno avuto accesso a questa impostazione tramite la dashboard:

/wp-admin/admin.php?page=blog2social-settings

Inoltre, lo stesso URL offre l’accesso a una scheda Social Meta Data, che contiene moduli disabilitati per utenti non amministratori.

Tuttavia, i browser offrono strumenti di ispezione, che possono essere utilizzati per modificare l’HTML “al volo” al fine di modificare le proprietà di tali moduli e dei loro elementi.

Ad esempio, un pulsante di salvataggio con le seguenti proprietà può essere modificato per renderlo funzionale rimuovendo l’attributo disabled dal pulsante:

<button class="btn btn-primary pull-right" disabled="disabled" type="submit">save</button>

La conseguenza di tutto ciò è che tale modulo può essere inviato da un utente loggato nel sito web. Una richiesta, ad esempio, può essere presentata utilizzando uno strumento di terze parti simile a questo:

</pre>
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: 127.0.0.1
Cookie:

b2s_og_default_title=SiteTitle&b2s_og_default_desc=Just%20another%20WordPress%20site&b2s_og_default_image=&b2s_og_imagedata_active=1&b2s_og_objecttype_active=1&b2s_og_locale_active=1&b2s_og_locale=en_US&b2s_card_default_type=Summary&b2s_card_default_title=SiteTitle&b2s_card_default_desc=Just%20another%20WordPress%20site&b2s_card_default_image=&is_admin=1&version=0&action=b2s_save_social_meta_tags&b2s_security_nonce=<nonce>
<pre>

Gli utenti del sito quindi potrebbero in questo modo modificare i tag social che potrebbero essere utilizzati per influire sulla reputazione del brand aziendale.

Blog2Social: un’ulteriore problema di sicurezza

Come se non bastasse è stata scoperta un’ulteriore vulnerabilità che gestisce il meccanismo generale di autorizzazione del plugin:

public function lockAutoPostImport() {
if (current_user_can('read') && isset($_POST['b2s_security_nonce']) && (int) wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['b2s_security_nonce'])), 'b2s_security_nonce') > 0) {
if (isset($_POST['userId']) && (int) $_POST['userId'] > 0) {
update_option('B2S_LOCK_AUTO_POST_IMPORT_' . (int) $_POST['userId'], 1, false);
}
echo json_encode(array('result' => true));
wp_die();
} else {
echo json_encode(array('result' => false, 'error' => 'nonce'));
wp_die();
}
}

La prima istruzione “if” ha lo scopo di impedire l’uso non autorizzato di questa funzione e di quelle simili che usano la stessa protezione. Le seguenti parti devono essere valutate come “true” affinché l’istruzione “if” faccia lo stesso:

  • current_user_can(‘read’): questo dà accesso alle schermate di amministrazione e ai profili utente. Questa autorizzazione è generalmente disponibile per tutti gli utenti autenticati;
  • isset($_POST[‘b2s_security_nonce’]): questo nonce è impostato dal plugin e può essere ottenuto cercando nel codice di /wp-admin/profile.php la stringa ‘b2s_security_nonce‘. Questo nonce viene generato per gli utenti normali o con privilegi superiori;
  • (int) wp_verify_nonce(sanitize_text_field(wp_unslash($_POST[‘b2s_security_nonce’])), ‘b2s_security_nonce’) > 0:  questo verifica il nonce.

Finché viene fornito un ID utente, a chi nel proprio sito web utilizza il plugin Wordfence, quest’ultimo è riuscito a bloccare B2S_LOCK_AUTO_POST_IMPORT_, impedendo quindi a quell’utente di importare automaticamente i post.

Conclusioni

Per chi sta utilizzando il plugin Blog2Social: Social Media Auto Post & Scheduler in versione uguale o minore alla 6.9.11 consigliamo di aggiornare all’ultima versione 6.9.14 così da risolvere il problema.

Per chi invece ha notato dei problemi l’unica cosa da fare è una grossa pulizia e, magari utilizzare un backup per ripristinare il tutto per poi aggiornare il plugin alla versione 6.9.14.

Saremo sempre ripetitivi ma non ci stancheremo mai di dirvi di fare attenzione con i plugin, questi sono delle vere e proprie porte aperte che lasciamo nel nostro sito web e bisogna fare molta attenzione.

Non ci resta che tenervi aggiornati sugli sviluppi futuri, nella speranza che notizie simili siano sempre meno frequenti.

Fonte

 

Rispondi all'articolo

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


The reCAPTCHA verification period has expired. Please reload the page.