
CVE-2025-69600 명령어 삽입 취약점에 대한 개념 증명 익스플로잇: RayVentory Scan Engine rvia에서 getconfig, upload, inventory, oracle 옵션을 통한 원격 코드 실행을 시연합니다.
Raynet의 rvia에서 명령 삽입(Command Injection) 취약점으로 인해 공격자가 getconfig, upload, inventory, oracle 옵션을 통해 명령을 실행할 수 있습니다.
검증은 /opt/rvia/rvia.cfg 설정 파일에서 URL을 가져올 때만 수행되며(/etc/rvia_configuration의 설정 속성 ForbiddenCurlChars를 통해 구성된 경우), URL이 getconfig 또는 upload 옵션에 직접 전달될 때는 수행되지 않습니다.
/opt/rvia/rvia getconfig \;command\;

내부적으로 구성된 명령은 다음과 같습니다:

oracle 옵션을 통해서도 명령을 주입할 수 있습니다.
이 옵션은
rvia가 Java 환경을 찾지 못하고(내부적으로find명령을 호출함)/opt/rvia/rvia.cfg에javaPaths옵션이 설정되지 않은 경우 실패할 수 있습니다.
이 경우 /opt/rvia/rvia.cfg에 javaPaths=/usr/lib/jvm/java-21-openjdk-amd64/ 옵션이 정의되어 있습니다.
/opt/rvia/rvia oracle \;command\;

구성된 명령은 다음과 같습니다:

설정 파일(/opt/rvia/rvia.cfg)에서도 oracleUser 및 oraclePass 옵션과 동일한 현상이 발생합니다.

내부 호출은 다음과 같습니다:

upload 옵션에도 동일하게 적용되며, URL 지정 후 실행할 명령을 지정합니다. 이 경우 이중 따옴표를 먼저 이스케이프하고 명령 끝에 해시태그를 추가하여 다음 인수를 무시해야 합니다.
이 옵션은
inventory옵션에 의해 생성된 업로드할 인벤토리 파일이/opt/rvia/results(기본값) 디렉터리에 없는 경우 실패할 수 있습니다.
/opt/rvia/rvia upload \"\;command\;#

ltrace에서 다음과 같은 내용을 볼 수 있습니다:

마지막으로 inventory 옵션도 취약합니다.
/opt/rvia/rvia inventory \;command\;

내부적으로 구성된 명령:
