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 :
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.)"
doneLes tentatives sont des requêtes à l'API avec le paramètre public :
sudo grep -rhiE '/api/index\.php/v1/[^ ]*[?&]public=' --include='*access*' --exclude='*.gz' /var/log/apache2 /var/log/httpd 2>/dev/null | tail -20Corriger
- Sauvegardez les fichiers du site et la base de données.
- 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.
- Si les journaux montrent des requêtes réussies (statut 200) avec
public=true, considérez les identifiants deconfiguration.phpcomme connus : changez le mot de passe de la base de données (et mettez à jourconfiguration.php), le mot de passe de messagerie et tout autre secret qui y est stocké. - 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é
- L'agent note quels ports SSH et quels sites répondent.
- Il écrit la règle (identifiant ModSecurity 9920008) 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-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.
