Back to blog
ApacheHTTP ServerCVE-2021-41773CVE-2021-42013RCEpath traversal

Apache HTTP Server : CVE critiques et sécurisation de votre serveur web

Apache HTTP Server concentre des vulnérabilités critiques régulièrement exploitées. Analyse des CVE majeures incluant Log4Shell, CVE-2021-41773, CVE-2021-42013 et meilleures pratiques.

April 23, 20264 min read

Apache HTTP Server est le serveur web open source le plus utilisé au monde depuis plus de 25 ans. Sa présence massive sur internet en fait une cible constante. Plusieurs vulnérabilités critiques ont marqué son histoire récente, dont certaines permettant une exécution de code à distance.

CVE-2021-41773 et CVE-2021-42013 : Path Traversal et RCE (CVSS 9.8)

Les deux CVE jumelles d'octobre 2021

CVE-2021-41773 est une faille de path traversal dans Apache HTTP Server 2.4.49. Une normalisation défaillante des chemins permettait à un attaquant de traverser les répertoires hors de la racine web en utilisant des séquences encodées URL.

GET /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1

Condition : require all denied n'est pas configuré sur le répertoire cible, et mod_cgi est activé pour le RCE.

CVE-2021-42013 est le bypass du patch de CVE-2021-41773. Apache a tenté de corriger la première faille, mais le patch était incomplet — CVE-2021-42013 contournait la correction avec un encodage double.

GET /cgi-bin/%%32%65%%32%65/%%32%65%%32%65/etc/passwd HTTP/1.1

Versions affectées : Apache 2.4.49 (CVE-2021-41773), Apache 2.4.50 (CVE-2021-42013)
Score CVSS : 9.8

Ces deux versions sont sorties dans un intervalle de deux semaines. L'exploitation massive a débuté dans les 24 heures suivant la publication du patch de CVE-2021-41773.

CVE-2017-7679 : Buffer Overflow dans mod_mime (CVSS 9.8)

Un débordement de buffer dans le module mod_mime permettant une exécution de code à distance via la manipulation d'en-têtes HTTP Content-Type. Affectait Apache 2.2.x avant 2.2.33 et 2.4.x avant 2.4.26.

CVE-2014-0226 : Race Condition dans mod_status (CVSS 6.8)

Une condition de course dans mod_status pouvant conduire à une corruption mémoire et potentiellement à une exécution de code. Illustre que même des modules de monitoring peuvent être vecteurs d'attaque.

CVE-2024-38476 : Information Disclosure via Réponse Backend (CVSS 9.1)

En 2024, une faille dans la gestion des réponses backend permettait l'exécution de scripts locaux non intentionnels dans certaines configurations d'Apache httpd utilisé comme proxy frontal.

Configurations dangereuses d'Apache

Au-delà des CVE, de nombreuses configurations par défaut ou erreurs courantes exposent Apache :

Directory listing activé

# DANGEREUX — expose l'arborescence de fichiers
Options Indexes FollowSymLinks

# CORRECT — désactiver le listing
Options -Indexes

Exposition d'informations serveur

# DANGEREUX — révèle la version et les modules
ServerTokens Full
ServerSignature On

# CORRECT — masquer les informations
ServerTokens Prod
ServerSignature Off

mod_status exposé publiquement

# DANGEREUX
<Location /server-status>
    SetHandler server-status
</Location>

# CORRECT — restreindre aux IPs internes
<Location /server-status>
    SetHandler server-status
    Require ip 127.0.0.1 10.0.0.0/8
</Location>

Sécuriser Apache HTTP Server

1. Mettre à jour régulièrement

# Vérifier la version
apache2 -v
# ou
httpd -v

# Mettre à jour Debian/Ubuntu
apt-get update && apt-get upgrade apache2

# Mettre à jour CentOS/RHEL
yum update httpd

2. Désactiver les modules inutiles

# Lister les modules actifs
apache2ctl -M

# Désactiver un module
a2dismod autoindex  # désactive le directory listing
a2dismod status     # désactive server-status
a2dismod cgi        # désactive CGI si non utilisé

3. Configurer les en-têtes de sécurité HTTP

# Ajouter dans la configuration Apache ou .htaccess
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Content-Security-Policy "default-src 'self'"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

4. Restricter l'accès aux fichiers sensibles

# Bloquer l'accès aux fichiers de configuration
<FilesMatch "\.(htaccess|htpasswd|env|ini|conf|bak|sql|log)$">
    Require all denied
</FilesMatch>

# Bloquer l'accès aux répertoires de contrôle de version
<DirectoryMatch "/(\.git|\.svn|\.hg)">
    Require all denied
</DirectoryMatch>

5. Limiter les méthodes HTTP

<Directory "/var/www/html">
    # N'autoriser que GET, POST, HEAD
    <LimitExcept GET POST HEAD>
        Require all denied
    </LimitExcept>
</Directory>

6. Activer ModSecurity (WAF)

# Installer ModSecurity
apt-get install libapache2-mod-security2

# Activer les règles OWASP CRS
apt-get install modsecurity-crs

Apache vs Nginx : sécurité comparée

Apache et Nginx partagent de nombreuses CVE de catégories similaires (buffer overflow, path traversal, déni de service), mais avec des différences de surface d'attaque :

  • Apache : plus de modules actifs par défaut, surface plus large
  • Nginx : configuration plus stricte par défaut, moins de modules chargés

Les deux nécessitent une mise à jour régulière et une configuration sécurisée.


Vérifiez les CVE Apache pour votre version sur cveo.tech — cherchez apache http server pour l'historique complet.

Monitor CVEs with AI

AI-powered search, CVSS scoring, asset monitoring and automatic alerts.