
Proof-of-Concept-Exploit für CVE-2026-38945, der Path Traversal in der Java-Erkennung von RayVentory Scan Engine demonstriert, um beliebige Binärdateien auszuführen.
rvia in Raynet führt einen find-Befehl mit falsch beendeten Suchkriterien aus, um Java-Installationen zu lokalisieren, wenn die Oracle-Option aufgerufen wird. Angreifer könnten spezifische Verzeichnisstrukturen erstellen, die die fehlerhaften Suchkriterien erfüllen, wodurch der Agent während des Java-Erkennungsprozesses eine schädliche Binärdatei ausführt.

/bin/sh -c "find / -not \( -path '/dev' -o -path '/etc' -o -path '/mnt' -o -path '/tmp' -o -path '/proc' \) \( -path '*/jdk/bin/java' -o -path '*/jdk/jre/bin/java' -o -path '*/jdk-*/bin/java' -o -path '*/jdk*/bin/java' -o -path '*/jdk*/jre/bin/java' \) \( -type f -o -type l \)"
Dieser Befehl sollte Java-Binärdateien unter /tmp ignorieren (auch unter /dev, , und , aber wir interessieren uns für das Beispiel mit , da dieses weltweit beschreibbar ist).
/etc/mnt/proc/tmpBeachten Sie, dass der Ausschluss anderer potenziell gefährlicher Verzeichnisse wie
/homefehlt.
Das Problem besteht darin, dass im ersten Teil des Befehls, der bestimmte Verzeichnisse ignorieren soll, das Zeichen * am Ende dieser Verzeichnisse fehlt und das Zeichen * am Anfang der anderen zu durchsuchenden Verzeichnisse verwendet wird.
Dies ermöglicht es jedem Benutzer, die während des Java-Erkennungsprozesses ausgeführte Java-Datei zu manipulieren, da die Oracle-Option üblicherweise als Cron-Job ausgeführt wird.
mkdir -p /tmp/jdk/bin
echo 'echo "rvia oracle wurde ausgeführt!" > /tmp/PoC' > /tmp/jdk/bin/java && chmod +rx /tmp/jdk/bin/java

Dies liegt daran, dass bei Verwendung der oracle-Option, „wenn der Java-Laufzeitpfad nicht in der Datei /opt/rvia/rvia.cfg konfiguriert ist, versucht RayVentory Scan Engine trotzdem jedes Mal danach zu suchen, wenn er benötigt wird.“ Und irgendwann versucht es, die Version der installierten Java-Umgebung durch Ausführen von java -version zu ermitteln.