W systemie RuoYi w wersji 4.7.9 i wcześniejszych wykryto krytyczną podatność typu SQL Injection w funkcji createTable w pliku SqlUtil.java. Umożliwia ona zdalnemu, nieuwierzytelnionemu atakującemu wykonanie dowolnego kodu na podatnym serwerze.
▸ Pokaż oryginał (EN)
SQL Injection vulnerability in RuoYi v.4.7.9 and before allows a remote attacker to execute arbitrary code via the createTable function in SqlUtil.java.
Podatność wynika z braku odpowiedniej walidacji i sanityzacji danych wejściowych przekazywanych do funkcji createTable w SqlUtil.java, co pozwala na wstrzyknięcie złośliwego kodu SQL. Atakujący może przesłać specjalnie spreparowane żądanie sieciowe bez konieczności uwierzytelnienia. Skuteczne wstrzyknięcie umożliwia wykonanie arbitralnych poleceń na poziomie bazy danych, a w konsekwencji także wykonanie kodu na serwerze (RCE).
Atakujący może uzyskać pełną kontrolę nad systemem — odczytać, zmodyfikować lub usunąć dane w bazie, a także wykonać arbitralny kod na serwerze (RCE), co może prowadzić do całkowitego przejęcia systemu.
Należy zastosować patch dostępny w repozytorium producenta (commit ddd858ca732618a472b10eaab2f8e4b45812ffc5 w repozytorium Gitee). Zaleca się jak najszybszą aktualizację do wersji zawierającej poprawkę oraz ograniczenie dostępu sieciowego do panelu administracyjnego RuoYi.
RuoYi v.4.7.9 oraz wszystkie wcześniejsze wersje.
Dla tej podatności publicznie dostępne jest Proof of Concept (PoC) opublikowane w repozytorium GitHub (mrlihd/CVE-2024-57521-SQL-Injection-PoC), co znacząco obniża próg wejścia dla potencjalnych atakujących i uzasadnia pilne wdrożenie poprawki.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HRuoyi
APPRuoyi≤ 4.7.9
Powiązane podatności
RuoYi v4.8.2 — nieprawidłowa kontrola dostępu w funkcji aktualizacji
Eskalacja uprawnień w RuoYi v.4.8.0 poprzez parametr jobLogId
RuoYi 4.8.0 – privilege escalation przez metodę changeStatus
Eskalacja uprawnień przez parametr jobId w RuoYi v.4.8.0
RuoYi 4.8.0 — privilege escalation przez brak walidacji parametru deptId