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 :
apache2 -vhttpd -v/usr/local/apache2/bin/httpd -vSur 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é :
sudo grep -rn -A3 '<Directory />' /etc/apache2/ /etc/httpd/ /usr/local/apache2/conf/ 2>/dev/nullsudo apachectl -M 2>/dev/null | grep -i cgiLes tentatives laissent des points encodés dans les journaux d'accès :
sudo grep -rhiE '\.%2e/|%2e\./|%2e%2e/|%%32%65|\.%%32' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20Corriger
Passez à 2.4.51 ou ultérieur (la mise à jour redémarre Apache : choisissez un moment calme) :
sudo apt-get update
sudo apt-get install --only-upgrade apache2
apache2 -vsudo dnf upgrade httpd
httpd -vRecompilez 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 :
<Directory />
AllowOverride None
Require all denied
</Directory>sudo apachectl configtest && sudo apachectl gracefulAttention: 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é
- L'agent note quels ports SSH et quels sites répondent.
- Il écrit la règle (identifiant ModSecurity 9920002) entre ses propres marqueurs dans son fichier ModSecurity, lance
apachectl configtestet recharge Apache en douceur. Un test en échec remet le fichier précédent en place. - Il vérifie que SSH et les sites répondent toujours, et retire le correctif sinon.
- 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
DetectionOnlyse 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.
