W aplikacji WeGIA (web manager dla instytucji charytatywnych) w wersjach przed 3.6.6 istnieje krytyczna podatność typu SQL injection w skrypcie remover_produto_ocultar.php. Pozwala ona atakującemu na wykonanie dowolnych poleceń SQL, co może prowadzić do wycieku danych lub ataku typu DoS.
▸ Pokaż oryginał (EN)
WeGIA is a web manager for charitable institutions. Prior to version 3.6.6, a critical SQL injection vulnerability exists in the WeGIA application. The remover_produto_ocultar.php script uses extract($_REQUEST) to populate local variables and then directly concatenates these variables into a SQL query executed via PDO::query. This allows an authenticated (or auth-bypassed) attacker to execute arbitrary SQL commands. This can be used to exfiltrate sensitive data from the database or, as demonstrated in this PoC, cause a time-based delay (denial of service). This vulnerability is fixed in 3.6.6.
Skrypt remover_produto_ocultar.php wykorzystuje funkcję extract($_REQUEST) do automatycznego tworzenia zmiennych lokalnych na podstawie danych przesłanych przez użytkownika. Wartości tych zmiennych są następnie bezpośrednio wklejane (konkatenowane) do zapytania SQL wykonywanego przez PDO::query, bez żadnej sanityzacji ani użycia zapytań parametryzowanych. Atakujący – uwierzytelniony lub pomijający mechanizmy autoryzacji – może w ten sposób wstrzyknąć dowolne polecenia SQL, np. time-based payload powodujący opóźnienie odpowiedzi serwera (Denial of Service).
Atakujący może wydobyć wrażliwe dane z bazy danych aplikacji lub wywołać atak DoS poprzez technikę time-based SQL injection. Ze względu na wektor sieciowy bez wymaganych uprawnień, skala potencjalnego narażenia jest bardzo duża.
Należy zaktualizować WeGIA do wersji 3.6.6 lub nowszej, w której podatność została naprawiona. Szczegóły dostępne w referencjach producenta: https://github.com/LabRedesCefetRJ/WeGIA/security/advisories/GHSA-w7g3-87cr-8m83
WeGIA w wersjach przed 3.6.6
W opisie podatności wspomniano o publicznie dostępnym PoC (proof of concept) demonstrującym atak time-based DoS. Podatność zgłoszona i naprawiona przez projekt WeGIA w wersji 3.6.6.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HWegia
APPWegia< 3.6.6
Powiązane podatności
Reflected XSS w WeGIA — wstrzyknięcie kodu przez parametr sccd
Reflected XSS w WeGIA — wstrzyknięcie kodu JS przez parametr GET
SQL Injection w WeGIA — kompromitacja bazy danych przez parametr id_produto
WeGIA – pominięcie uwierzytelnienia w adicionar_tipo_docs_atendido.php
WeGIA – RCE przez command injection w funkcji przywracania bazy danych