W oficjalnym obrazie Docker platformy Termix (wersje 1.5.0 i wcześniejsze) błędna konfiguracja reverse proxy Nginx powoduje, że mechanizm weryfikacji lokalności adresu IP zawsze zwraca wartość True, umożliwiając nieautoryzowany dostęp do wrażliwych danych. Skutkuje to pełną ekspozycją przechowywanych danych uwierzytelniających SSH (adresów, nazw użytkowników i haseł) bez jakiegokolwiek logowania.
▸ Pokaż oryginał (EN)
Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities. The official Docker image for Termix versions 1.5.0 and below, due to being configured with an Nginx reverse proxy, causes the backend to retrieve the proxy's IP instead of the client's IP when using the req.ip method. This results in isLocalhost always returning True. Consequently, the /ssh/db/host/internal endpoint can be accessed directly without login or authentication. This endpoint records the system's stored SSH host information, including addresses, usernames, and passwords, posing an extremely high security risk. Users who use the official Termix docker image, build their own image using the official dockerfile, or utilize reverse proxy functionality will be affected by this vulnerability. This issue is fixed in version 1.6.0.
Aplikacja Termix korzysta z metody req.ip do ustalenia, czy żądanie pochodzi z lokalnego hosta — jeśli tak, funkcja isLocalhost zwraca True i dostęp do chronionych endpointów jest przyznawany bez uwierzytelnienia. Gdy platforma działa za Nginx działającym jako reverse proxy (jak w oficjalnym obrazie Docker), backend zamiast rzeczywistego adresu klienta widzi adres IP samego proxy, co sprawia, że isLocalhost zawsze ewaluuje się jako True. Atakujący zdalny, bez żadnych danych uwierzytelniających, może bezpośrednio wywołać endpoint /ssh/db/host/internal i pobrać kompletną bazę zapisanych połączeń SSH wraz z hasłami. Podatność wynika z błędnej kontroli dostępu (CWE-284), zaufania do niezweryfikowanego nagłówka IP (CWE-348) oraz braku weryfikacji autentyczności pochodzenia żądania (CWE-345).
Atakujący bez żadnego uwierzytelnienia może uzyskać pełny dostęp do przechowywanych na serwerze danych SSH — adresów hostów, nazw użytkowników i haseł — co w konsekwencji umożliwia przejęcie kontroli nad wszystkimi serwerami zarządzanymi przez platformę Termix.
Należy zaktualizować Termix do wersji 1.6.0, w której problem został naprawiony. Jako doraźne obejście zaleca się ograniczenie dostępu sieciowego do endpointu /ssh/db/host/internal na poziomie firewalla lub konfiguracji reverse proxy wyłącznie do zaufanych adresów IP.
Termix w wersjach 1.5.0 i wcześniejszych — dotyczy użytkowników korzystających z oficjalnego obrazu Docker Termix, budujących własny obraz na podstawie oficjalnego Dockerfile lub korzystających z funkcji reverse proxy.
Podatność dotyczy wyłącznie instalacji opartych na oficjalnym obrazie Docker lub własnych obrazach budowanych na podstawie oficjalnego Dockerfile Termix — instalacje bez reverse proxy nie są podatne. Poprawka dostępna w wersji 1.6.0 zgodnie z informacją producenta.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XTermix
APPTermix0.1.1 – 1.6.0
Powiązane podatności
Command injection w Termix File Manager via parametr path (GET resolvePath)
Termix: OS command injection w endpointcie resolvePath (RCE)
Broken Access Control w Termix — nieautoryzowany dostęp do sesji File Manager
Command injection w Termix – endpoint SSH tunnel bez sanityzacji danych wejściowych
Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities. ...