osTicket w wersji 1.18.3 generuje klucze API w sposób przewidywalny, oparty na funkcji skrótu MD5 z danymi wejściowymi o niskiej entropii. Umożliwia to atakującemu odgadnięcie klucza API w realnym czasie, co prowadzi do pełnego przejęcia kontroli nad interfejsem API systemu.
▸ Pokaż oryginał (EN)
osTicket 1.18.3 generates API keys using a predictable construction based on MD5 hashing. The use of MD5, combined with predictable inputs such as the current timestamp and client IP address, significantly reduces entropy. An attacker can approximate the key generation time and brute-force the key space within a feasible time window.
Klucze API są tworzone z użyciem MD5 na podstawie przewidywalnych danych wejściowych, takich jak aktualny znacznik czasu (timestamp) oraz adres IP klienta. Niska entropia wynikająca z tych danych znacznie zawęża przestrzeń możliwych kluczy. Atakujący, znając przybliżony czas wygenerowania klucza i adres IP, może przeprowadzić atak brute-force na ograniczoną przestrzeń wartości i odtworzyć poprawny klucz API.
Atakujący nieposiadający żadnego uwierzytelnienia może uzyskać prawidłowy klucz API i wykonywać autoryzowane operacje przez API osTicket, w tym odczytywać, tworzyć lub modyfikować zgłoszenia oraz dane użytkowników — co odpowiada pełnemu naruszeniu poufności, integralności i dostępności systemu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — commit naprawczy dostępny pod adresem: https://github.com/osTicket/osTicket/commit/feccb6a3a90863fd31215ee738b39762177e658c. Do czasu aktualizacji zaleca się ograniczenie dostępu do API osTicket na poziomie sieci (firewall, listy ACL) oraz rotację wszystkich istniejących kluczy API.
osTicket w wersji 1.18.3
Szczegółowa analiza podatności oraz kod źródłowy klasy generującej klucze dostępne są w referencjach producenta (class.api.php, class.misc.php). Podatność zgłoszona przez badacza fr3akhacks zgodnie z informacją w repozytorium ujawnień CVE.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H