InfraFenceInfraFence

Live Security Operations

Commencer

CVE-2021-42013 : path traversal Apache 2.4.50, vérifier et corriger

Dernière mise à jour:

Apache HTTP Server 2.4.50 a corrigé CVE-2021-41773, mais pas complètement : encoder le point deux fois (%%32%65, où %32 est 2 et %65 est e) permettait toujours de sortir des dossiers exposés. Elle concerne 2.4.49 et 2.4.50, avec les mêmes conséquences : des fichiers hors de la racine des documents, et l'exécution de code là où CGI est activé.

Apache l'a corrigée dans 2.4.51, publiée trois jours après 2.4.50.

En bref

CVE
CVE-2021-42013
Logiciel
Apache HTTP Server
Versions concernées
2.4.49 et 2.4.50
Corrigé dans
2.4.51
Score CVSS
9.8 Critique (NVD, CVSS 3.1) · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CISA Known Exploited Vulnerabilities
Oui, ajoutée le 3 novembre 2021
Publiée par le NVD
7 octobre 2021
Correctif virtuel InfraFence
vp-cve-2021-42013 (ModSecurity id 9920002)

Ce qui est concerné

Apache 2.4.49 et 2.4.50 uniquement. Comme pour CVE-2021-41773, des fichiers sont exposés là où <Directory /> ne conserve pas le Require all denied par défaut, et du code s'exécute là où mod_cgi ou mod_cgid sert un dossier avec alias comme /cgi-bin/.

Vérifier si un serveur est vulnérable

Vérifiez la version :

Debian / Ubuntu
apache2 -v
Famille RHEL
httpd -v
Compilé depuis les sources (préfixe par défaut)
/usr/local/apache2/bin/httpd -v

Sur 2.4.49 ou 2.4.50, vérifiez que la racine du système de fichiers refuse l'accès et si un module CGI est chargé :

Toute distribution
sudo grep -rn -A3 '<Directory />' /etc/apache2/ /etc/httpd/ /usr/local/apache2/conf/ 2>/dev/null
Toute distribution
sudo apachectl -M 2>/dev/null | grep -i cgi

Les tentatives laissent des points encodés dans les journaux d'accès :

Journaux d'accès Apache
sudo grep -rhiE '\.%2e/|%2e\./|%2e%2e/|%%32%65|\.%%32' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20

Corriger

Passez à 2.4.51 ou ultérieur (la mise à jour redémarre Apache : choisissez un moment calme) :

Debian / Ubuntu
sudo apt-get update
sudo apt-get install --only-upgrade apache2
apache2 -v
Famille RHEL
sudo dnf upgrade httpd
httpd -v

Recompilez une installation depuis les sources à partir de la version 2.4 actuelle, ou récupérez une nouvelle image de conteneur. Gardez la racine du système de fichiers fermée et rechargez :

httpd.conf / apache2.conf
<Directory />
    AllowOverride None
    Require all denied
</Directory>
Toute distribution
sudo apachectl configtest && sudo apachectl graceful

Attention: Des requêtes réussies (statut 200) avec des points doublement encodés dans les journaux signifient que des fichiers ont pu être lus et, avec CGI, des commandes exécutées : examinez le serveur avant de lui faire de nouveau confiance.

Comment InfraFence la bloque pendant que vous mettez à jour

Le correctif virtuel pour CVE-2021-42013 est une règle ModSecurity sur le chemin brut de la requête : il bloque le point doublement encodé (%%32%65, %%32e, .%%32, %2%65). Appliquez-le avec le correctif pour CVE-2021-41773, qui bloque la forme encodée une seule fois.

Comment le correctif est appliqué

  1. L'agent note quels ports SSH et quels sites répondent.
  2. Il écrit la règle (identifiant ModSecurity 9920002) entre ses propres marqueurs dans son fichier ModSecurity, lance apachectl configtest et recharge Apache en douceur. Un test en échec remet le fichier précédent en place.
  3. Il vérifie que SSH et les sites répondent toujours, et retire le correctif sinon.
  4. Il vérifie que ModSecurity bloque réellement avec la règle, au moyen d'une requête de sonde locale inoffensive. Un ModSecurity en DetectionOnly se contente de journaliser : le correctif est alors retiré et signalé comme inefficace, jamais comme appliqué.

Chaque requête bloquée par le correctif est signalée avec CVE-2021-42013 (agent 1.0.37 ou ultérieur) : vous voyez les tentatives dans l'activité du serveur et sur la page Exploitation du tableau de bord, et vous savez ainsi que la vulnérabilité est tentée contre vous.

Attention: Un correctif virtuel bloque la forme connue de l'attaque sur les requêtes qui passent par Apache sur ce serveur. Il ne remplace pas la mise à jour : installez la version corrigée, puis retirez le correctif depuis Activité avec Annuler si vous n'en avez plus besoin.

Les correctifs virtuels nécessitent Apache avec ModSecurity, le réglage Autoriser les modifications de la configuration du serveur web, et aucun panneau d'hébergement ni outil de gestion de configuration aux commandes du serveur web ; ils font partie du plan Pro et d'AutoMode. Une personne les applique depuis l'analyse IA, ou AutoMode le fait. Voir Correctifs virtuels.

Sources

Les faits de cette page viennent de ces sources ; consultez-les pour les mises à jour.

Essayez gratuitement sur 1 serveur

Starter est gratuit pour un serveur, avec la protection complète et le blocage automatique. Sans carte bancaire.

Installez l'agent en root, avec votre jeton à la place de <TOKEN> :

curl -fsSL https://github.com/infrafence/infrafence-agent/releases/latest/download/install.sh | sudo bash -s -- --token <TOKEN>

Le jeton se crée dans le tableau de bord, dans Serveurs › Ajouter un serveur.