InfraFenceInfraFence

Live Security Operations

Commencer

CVE-2023-23752 : divulgation d'informations par l'API Joomla 4, vérifier et corriger

Dernière mise à jour:

Joomla 4.0.0 à 4.2.7 contrôlent mal l'accès à leur API de services web : ajouter public=true à une requête vers /api/index.php/v1/… saute le contrôle. L'exploit public lit ainsi la configuration du site, qui inclut l'utilisateur et le mot de passe de la base de données.

Le NVD lui attribue 5.3, puisqu'elle ne fait que divulguer des informations. En pratique, les identifiants divulgués ouvrent la base de données partout où elle accepte des connexions distantes, et les attaques ont commencé juste après la divulgation. La CISA l'a ajoutée au KEV en janvier 2024.

En bref

CVE
CVE-2023-23752
Logiciel
Joomla! CMS
Versions concernées
4.0.0 à 4.2.7
Corrigé dans
4.2.8
Score CVSS
5.3 Moyenne (NVD, CVSS 3.1) · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
CISA Known Exploited Vulnerabilities
Oui, ajoutée le 8 janvier 2024
Publiée par le NVD
16 février 2023
Correctif virtuel InfraFence
vp-cve-2023-23752 (ModSecurity id 9920008)

Ce qui est concerné

Joomla 4.0.0 à 4.2.7. Joomla 3 n'a pas cette API et n'est pas concerné par cette CVE (il n'est plus pris en charge depuis août 2023). La correction est Joomla 4.2.8.

Vérifier si un serveur est vulnérable

Trouvez chaque Joomla sur le serveur et affichez sa version :

Toute distribution Linux
sudo nice -n 19 ionice -c3 find / -xdev -path '*/libraries/src/Version.php' 2>/dev/null \
  | while read -r f; do
      echo "$f: $(grep -oE '(MAJOR|MINOR|PATCH)_VERSION = [0-9]+' "$f" | grep -oE '[0-9]+$' | paste -sd.)"
    done

Les tentatives sont des requêtes à l'API avec le paramètre public :

Journaux d'accès Apache
sudo grep -rhiE '/api/index\.php/v1/[^ ]*[?&]public=' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20

Corriger

  1. Sauvegardez les fichiers du site et la base de données.
  2. Mettez à jour Joomla depuis le panneau d'administration (System › Update › Joomla) vers 4.2.8 ou ultérieur, de préférence la dernière version d'une branche prise en charge.
  3. Si les journaux montrent des requêtes réussies (statut 200) avec public=true, considérez les identifiants de configuration.php comme connus : changez le mot de passe de la base de données (et mettez à jour configuration.php), le mot de passe de messagerie et tout autre secret qui y est stocké.
  4. Assurez-vous que la base de données n'accepte pas de connexions depuis internet.

Comment InfraFence la bloque pendant que vous mettez à jour

Le correctif virtuel pour CVE-2023-23752 est une règle ModSecurity qui bloque une requête vers un chemin contenant /api/index.php/v1/ quand la query string a un paramètre public. Les autres requêtes à l'API, avec leur authentification normale, passent.

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 9920008) 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-2023-23752 (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.