
Demuestra vulnerabilidades de inyección de comandos en la herramienta rvia de RayVentory Scan Engine, permitiendo la ejecución arbitraria de comandos a través de las opciones getconfig, upload, inventory y oracle.
Inyección de comandos en rvia de Raynet permite a los atacantes ejecutar comandos a través de las opciones getconfig, upload, inventory y oracle.
Solo se realiza una validación (si está configurada mediante la propiedad de configuración ForbiddenCurlChars en /etc/rvia_configuration) al obtener la URL del archivo de configuración /opt/rvia/rvia.cfg y no cuando la URL se pasa directamente a las opciones o .
getconfigupload/opt/rvia/rvia getconfig \;command\;

Internamente, el comando construido se ve de la siguiente manera:

A través de la opción oracle también es posible inyectar comandos.
Esta opción podría fallar si
rviano encuentra un entorno Java (internamente se realiza una llamada al comandofind) y la opciónjavaPathsen/opt/rvia/rvia.cfgno está configurada
En este caso, el /opt/rvia/rvia.cfg está definido con la opción javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/.
/opt/rvia/rvia oracle \;command\;

El comando construido se ve así:

Lo mismo ocurre en el archivo de configuración (/opt/rvia/rvia.cfg) con las opciones oracleUser y oraclePass.

La llamada interna es la siguiente:

Lo mismo aplica para la opción upload al especificar un comando para ejecutar después de la especificación de la URL. En este caso, se necesita un escapado previo de las comillas dobles y también un hashtag al final del comando para ignorar los argumentos siguientes.
Esta opción podría fallar si no hay archivos de inventario en el directorio
/opt/rvia/results(por defecto) para cargar, los cuales son creados por la opcióninventory
/opt/rvia/rvia upload \"\;command\;#

Desde ltrace vemos lo siguiente:

Finalmente, la opción inventory también es vulnerable.
/opt/rvia/rvia inventory \;command\;

El comando construido internamente:
