
Demonstra vulnerabilidades de injeção de comandos na ferramenta rvia do RayVentory Scan Engine, permitindo execução arbitrária de comandos por meio das opções getconfig, upload, inventory e oracle.
Injeção de comandos no rvia da Raynet permite que adversários executem comandos por meio das opções getconfig, upload, inventory e oracle.
Uma validação é realizada apenas (se configurada por meio da propriedade de configuração ForbiddenCurlChars em /etc/rvia_configuration) ao obter a URL do arquivo de configuração /opt/rvia/rvia.cfg, e não quando a URL é passada diretamente para as opções ou .
getconfigupload/opt/rvia/rvia getconfig \;command\;

Internamente, o comando construído é o seguinte:

Através da opção oracle, também é possível injetar comandos.
Essa opção pode falhar se um ambiente Java não for encontrado pelo
rvia(internamente é feita uma chamada ao comandofind) e a opçãojavaPathsem/opt/rvia/rvia.cfgnão estiver definida
Nesse caso, o /opt/rvia/rvia.cfg é definido com a opção javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/.
/opt/rvia/rvia oracle \;command\;

O comando construído é assim:

O mesmo ocorre no arquivo de configuração (/opt/rvia/rvia.cfg) com as opções oracleUser e oraclePass.

Internamente, a chamada é a seguinte:

O mesmo se aplica à opção upload, especificando um comando para executar após a especificação da URL. Nesse caso, é necessário um escape prévio das aspas duplas e também uma hashtag no final do comando para ignorar os argumentos seguintes.
Essa opção pode falhar se não houver arquivos de inventário no diretório
/opt/rvia/results(por padrão) para upload, que são criados pela opçãoinventory
/opt/rvia/rvia upload \"\;command\;#

Com ltrace, vemos o seguinte:

Por fim, a opção inventory também é vulnerável.
/opt/rvia/rvia inventory \;command\;

O comando construído internamente:
