
Démontre les vulnérabilités d'injection de commandes dans l'outil rvia de RayVentory Scan Engine, permettant l'exécution arbitraire de commandes via les options getconfig, upload, inventory et oracle.
L'injection de commandes dans rvia de Raynet permet à des adversaires d'exécuter des commandes via les options getconfig, upload, inventory et oracle.
Une validation n'est effectuée (si elle est configurée via la propriété de configuration ForbiddenCurlChars dans /etc/rvia_configuration) que lorsque l'URL est récupérée depuis le fichier de configuration /opt/rvia/rvia.cfg et non lorsqu'elle est directement transmise aux options ou .
getconfigupload/opt/rvia/rvia getconfig \;command\;

Sous le capot, la commande construite ressemble à ceci:

Via l'option oracle, il est également possible d'injecter des commandes.
Cette option peut échouer si
rviane trouve pas d'environnement Java (sous le capot, un appel à la commandefindest effectué) et que l'optionjavaPathsdans/opt/rvia/rvia.cfgn'est pas définie.
Dans ce cas, /opt/rvia/rvia.cfg est défini avec l'option javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/.
/opt/rvia/rvia oracle \;command\;

La commande construite ressemble à ceci:

La même chose se produit dans le fichier de configuration (/opt/rvia/rvia.cfg) avec les options oracleUser et oraclePass.

Sous le capot, l'appel est le suivant:

La même chose s'applique à l'option upload en spécifiant une commande à exécuter après l'URL. Dans ce cas, un échappement préalable des guillemets doubles est nécessaire, ainsi qu'un hashtag à la fin de la commande pour ignorer les arguments suivants.
Cette option peut échouer s'il n'y a pas de fichiers d'inventaire à téléverser dans le répertoire
/opt/rvia/results(par défaut), fichiers créés par l'optioninventory.
/opt/rvia/rvia upload \"\;command\;#

Avec ltrace, nous voyons ce qui suit:

Enfin, l'option inventory est également vulnérable.
/opt/rvia/rvia inventory \;command\;

La commande construite sous le capot:
