Unauthentifizierte RCE auf Gitlab-Version < 13.10.3
Unauthentifizierter RCE-Exploit für Gitlab-Version < 13.10.3
Nur für Bildungs- und Forschungszwecke. Verwendung auf eigene Gefahr.
Grundursache:
- Beim Hochladen von Bilddateien reicht Gitlab Workhorse alle Dateien mit den Erweiterungen jpg|jpeg|tiff an ExifTool weiter, um alle nicht auf der Whitelist stehenden Tags zu entfernen.
- Eines der unterstützten Formate ist DjVu. Beim Parsen der DjVu-Annotation werden die Tokens per eval ausgeführt, um „C-Escape-Sequenzen zu konvertieren“.
- Der Artikel des Autors: https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html
# convert C escape sequences (allowed in quoted text)
$tok = eval qq{"$tok"};
Danksagungen
Verwendung
Zum Funktionieren müssen djvumake und djvulibre installiert sein.
Installiere djvulibre (falls du es noch nicht installiert hast)
sudo apt-get install -y djvulibre-bin
Führe den Exploit aus
python3 exploit.py -t <gitlab_url> -c <command>
Getestet auf Version 13.10.1-ce.0