
Ein schreibgeschützter, passiver Scanner, der einen REDCap-Host auf Exposition gegenüber und Kompromittierung durch **CVE-2026-90817** prüft – die nicht authentifizierte Remote-Code-Execution-Schwachstelle am Survey-Endpunkt, die von der von Palo Alto Unit 42 dokumentierten XMRig-Kryptomining-Kampagne ausgenutzt wird
redcap_cve_2026_90817_scan.py ist ein schreibgeschützter, passiver Scanner, der einen
REDCap-Host auf Exposition gegenüber und Kompromittierung durch CVE-2026-90817 prüft — die
nicht authentifizierte Remote-Code-Execution-Schwachstelle am Survey-Endpunkt, die von der
XMRig-Kryptomining-Kampagne ausgenutzt wurde, die von Palo Alto Unit 42 dokumentiert wurde
(2026-10-07-XMRig-campaign-through-CVE-2026-90817).
Er beantwortet zwei Fragen über den Host, auf dem er läuft:
Dieses Tool dient ausschließlich der Erkennung. Es:
Es ist für Administratoren gedacht, die es gegen ihren eigenen REDCap-Server ausführen.
pip-Installationen. Eine einzige Datei; kopieren
Sie sie auf den Host und führen Sie sie aus./var/log/apache2 (Debian) oder /var/log/httpd
(RHEL/CentOS/Rocky/Alma) durchsucht, nginx unter /var/log/nginx. Unter RHEL 8 ist das
System-python3 Version 3.6, daher dort python3.9 (oder neuer) aufrufen; RHEL/Rocky/Alma 9
liefern 3.9+. Führen Sie es als root aus für einen vollständigen Scan (benutzerspezifische Crontabs, authorized_keys anderer Benutzer
und /proc/<pid>/exe sowie einige Logs sind andernfalls
nicht lesbar). Ohne root läuft es weiterhin und kennzeichnet das Ergebnis eindeutig als
Teilscan.# Simplest: defaults to /var/www/html/redcap, auto-detects the mitigation date
sudo python3 -I redcap_cve_2026_90817_scan.py
# Point at a non-default install, pin the mitigation date, list every attack entry
sudo python3 -I redcap_cve_2026_90817_scan.py \
--redcap-root /var/https/redcap \
--mitigation-date 2026-09-21 \
--max-log-matches all
# Machine-readable output for monitoring / ticketing
sudo python3 -I redcap_cve_2026_90817_scan.py --json
Unter Windows führen Sie den Befehl in einer Eingabeaufforderung mit erhöhten Rechten aus und richten --redcap-root auf die
Installation (Plattform und Standard-Logverzeichnisse werden automatisch erkannt):
# IIS or Apache/XAMPP; logs under C:\inetpub\logs\LogFiles or the Apache logs dir
python -I redcap_cve_2026_90817_scan.py --redcap-root C:\redcap --json
-I führt Python im isolierten Modus aus (ignoriert $PYTHONPATH und das CWD) — gute Hygiene
beim Scannen eines möglicherweise manipulierten Hosts.
| Flag | Standard | Zweck |
|---|---|---|
--redcap-root PATH | /var/www/html/redcap | REDCap-Installationsverzeichnis. |
--log-dir DIR (wiederholbar) | plattformspezifisch (Apache/nginx unter Linux; IIS LogFiles + Apache unter Windows) | Zu scannende Web-Server-Logverzeichnisse (verarbeitet rotierte .gz- und IIS-W3C-Logs). |
--home-dir DIR (wiederholbar) | /root + jedes /home/* (Linux); jedes C:\Users\* (Windows) | Zusätzliche Home-Verzeichnisse, die nach SSH-Schlüsseln / Shell-/Profil-Dateien durchsucht werden. |
--platform auto|linux|windows | auto | Anzunehmende Host-Plattform. Wird automatisch vom Betriebssystem erkannt; erzwingt die Auswahl eines Providers (betriebssystemspezifische Host-Prüfungen laufen weiterhin nur auf dem passenden laufenden Betriebssystem). |
--mitigation-date YYYY-MM-DD | automatisch erkannt | Datum, an dem die Schwachstelle durch ein Upgrade geschlossen wurde. Siehe Angriffszeitpunkt. |
--since YYYY-MM-DD | — | Nur Web-Log-Einträge an oder nach diesem Datum (einschließlich) untersuchen. Logdateien, die früher zuletzt geändert wurden, werden nicht geöffnet. Gilt für beide Log-Durchläufe; Host-Status-Prüfungen sind nicht betroffen. Siehe Angriffszeitpunkt. |
--until YYYY-MM-DD | — | Nur Web-Log-Einträge an oder vor diesem Datum (einschließlich) untersuchen. |
--full-hash-scan | aus | Dateien unter temp/cache und Staging-Verzeichnissen rekursiv hashen (langsamer). |
--max-log-matches N | all | 100 | Wie viele Angriffs-Log-Einträge pro Kategorie aufgelistet werden, wörtlich beibehalten. |
--attacker-ip IP (wiederholbar) | — | Zusätzliche bekannte Angreifer-IP (z. B. aus dem Scan eines anderen Hosts). Wird wie die dokumentierte IOC-IP behandelt. Siehe Zweiter Durchlauf. |
--json | aus | JSON statt des Textberichts ausgeben. |
--quiet | aus | OK/INFO-Zeilen in der Textausgabe unterdrücken. |
| Code | Bedeutung |
|---|---|
0 | Sauber und gepatcht, und der Scan wurde vollständig abgeschlossen. |
1 | Ein oder mehrere Befunde (verwundbare Version und/oder IOC/Angriff) — untersuchen. |
2 | Scan konnte nicht vollständig abgeschlossen werden (Fehler, oder unprivilegiert und ansonsten sauber — ein sauberes Ergebnis konnte nicht vollständig bestätigt werden). |
Jedes dokumentierte IOC entspricht einer passiven lokalen Prüfung:
redcap_vX.Y.Z und vergleicht sie mit den gepatchten Releases
(16.0.49 LTS / 17.3.10 LTS / 17.4.4 Standard; betroffene Untergrenze 13.3.0).temp/cache — jede Datei dort (und in den
Staging-Verzeichnissen) wird gegen den Unit-42-Dropper-SHA-256 gehasht. Hinweis: Das Tool
markiert Dateien nicht anhand der .bladec-Erweiterung. Der REDCap-Kern verwendet die BladeOne-Template-
Engine, die hash-benannte kompilierte .bladec-Templates als
normale Ausgabe in temp/cache schreibt, sodass die Erweiterung kein Kompromittierungsindikator ist; eine tatsächlich
bösartig abgelegte Datei wird anhand ihres Inhalts-Hashes erkannt, unabhängig von der Erweiterung..syslog-*-Verzeichnisse, xmrig*-Archive und die Konkurrenz-
Verzeichnisse (/dev/shm/duet, /var/tmp/.bin), die die Kampagne auf Berechtigungen 000 sperrt./var/tmp, /dev/shm, /tmp laufen, und sich als syslog-ng-* tarnende Prozesse.127.0.0.1:50001 und aktive
Verbindungen zu den Angreifer-Quell-IP(s) — der dokumentierten, den
beobachteten, jeder --attacker-ip und jeder IP, die die Web-Log-Prüfung entdeckt hat.authorized_keys — Schlüssel, die zum Backdoor-Fingerabdruck des Angreifers passen.
(Es listet bewusst keine unabhängigen Schlüssel zur „Überprüfung" auf — auf einem normalen Host
gehören diese zu echten Konten und sind nicht unabhängig verifizierbar.)~/.profile — injizierter Startcode und HISTFILE-Anti-Forensik.