
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
OpenKM to platforma klasy DMS wykorzystywana do zarządzania dokumentami, obiegiem pracy i przechowywania danych biznesowych. Publicznie opisany zestaw podatności wskazuje, że OpenKM Community Edition 6.3.12 oraz OpenKM Pro Edition 7.1.47 i starsze wersje mogą być narażone na wieloetapowe ataki prowadzące do odczytu plików lokalnych, wykonywania poleceń systemowych oraz pozyskania danych uwierzytelniających z bazy danych.
Z perspektywy bezpieczeństwa jest to scenariusz o najwyższym poziomie ryzyka, ponieważ łączy ekspozycję panelu administracyjnego z możliwością nadużycia funkcji o bardzo szerokich uprawnieniach. W praktyce skutkiem może być nie tylko kompromitacja samej aplikacji, ale również naruszenie poufności dokumentów i wykorzystanie serwera jako punktu wyjścia do dalszych działań w infrastrukturze organizacji.
W skrócie
- Opisany publicznie exploit dotyczy OpenKM Community Edition 6.3.12 oraz OpenKM Pro Edition 7.1.47 i wcześniejszych wydań.
- Wskazane problemy obejmują odczyt plików lokalnych, zdalne wykonywanie poleceń oraz dostęp do danych użytkowników w bazie.
- Łańcuch ataku wykorzystuje funkcje administracyjne dostępne z poziomu interfejsu webowego.
- Efektem może być przejęcie kont uprzywilejowanych, ujawnienie hashy haseł i pełna kompromitacja środowiska OpenKM.
- Organizacje powinny pilnie ograniczyć dostęp do paneli administracyjnych i zweryfikować dostępność poprawek lub obejść producenta.
Kontekst / historia
Systemy DMS, takie jak OpenKM, często pełnią rolę centralnego repozytorium dokumentów w organizacjach. Przechowują umowy, dokumentację operacyjną, dane kadrowe, materiały finansowe i inne informacje o wysokiej wartości, dlatego są szczególnie atrakcyjnym celem dla cyberprzestępców, operatorów ransomware oraz grup nastawionych na kradzież danych.
Opublikowany materiał w bazie exploitów został oznaczony jako zweryfikowany i opisuje zestaw luk określanych jako zero-day. Istotnym elementem sprawy jest brak przypisanego identyfikatora CVE, co może utrudnić wykrycie zagrożenia w organizacjach opierających proces zarządzania podatnościami wyłącznie na standardowych wpisach CVE i komunikatach agregowanych przez zewnętrzne narzędzia.
Zakres opisu obejmuje zarówno edycję Community, jak i Pro, co sugeruje, że problem może dotyczyć różnych wdrożeń opartych na zbliżonych mechanizmach administracyjnych. To zwiększa znaczenie sprawy dla firm korzystających z OpenKM jako kluczowego komponentu obsługi dokumentów i procesów biznesowych.
Analiza techniczna
Z opisu exploita wynika, że atak obejmuje kilka ścieżek aplikacji związanych z uwierzytelnianiem, panelem administracyjnym i modułami GWT. Jednym z pierwszych etapów jest użycie standardowego mechanizmu logowania, po którym następuje przejście do funkcji administracyjnych dostępnych przez interfejs webowy.
Kluczowym elementem łańcucha ataku ma być panel admin/Scripting. Według opisu exploit wykorzystuje parametr fsPath w akcji typu Load do odczytu plików lokalnych z serwera. Taki mechanizm przypomina niekontrolowany dostęp do systemu plików i może umożliwić pozyskanie konfiguracji, danych aplikacyjnych lub innych informacji pomocnych w dalszej eskalacji.
Ta sama funkcjonalność ma być również wykorzystywana do uruchamiania kodu przy użyciu akcji Evaluate. W przedstawionym scenariuszu wstrzyknięty skrypt wywołuje mechanizm wykonywania poleceń systemowych, co odpowiada klasycznemu zdalnemu wykonywaniu kodu po stronie serwera aplikacyjnego. W praktyce oznacza to możliwość uruchamiania poleceń w kontekście procesu OpenKM i przejęcia kontroli nad hostem.
Drugi istotny obszar to endpoint admin/DatabaseQuery, który według opisu pozwala na wykonywanie arbitralnych zapytań SQL z poziomu panelu administracyjnego. Opublikowany kod odwołuje się do tabeli użytkowników i zapisuje identyfikatory wraz z wartościami haseł do pliku. Nie jest to klasyczna SQL injection, lecz nadużycie zbyt szerokich możliwości funkcji administracyjnej. Skutek pozostaje jednak bardzo poważny, ponieważ napastnik może uzyskać dostęp do danych uwierzytelniających i wykorzystać je do dalszych działań.
Eksploit przewiduje także etap łamania pozyskanych hashy offline z użyciem słownika. Oznacza to, że słaba polityka haseł może bardzo szybko przełożyć się na przejęcie kont użytkowników. Ryzyko rośnie dodatkowo, jeśli poświadczenia są współdzielone z innymi systemami, takimi jak LDAP, Active Directory lub usługi firm trzecich.
Warto podkreślić, że opis obejmuje pobieranie tokenu CSRF i wykonywanie żądań w pozornie prawidłowy sposób. Sugeruje to, że źródłem problemu nie jest wyłącznie ochrona przed CSRF, ale przede wszystkim nadmiernie uprzywilejowane funkcje administracyjne oraz niewystarczające ograniczenia autoryzacyjne dla operacji wysokiego ryzyka.
Konsekwencje / ryzyko
Najgroźniejszym skutkiem opisanych podatności jest możliwość pełnego przejęcia środowiska OpenKM. Jeśli atakujący uzyska dostęp do konta administracyjnego lub wykorzysta słabo zabezpieczony interfejs o szerokich uprawnieniach, może przejść od rozpoznania do aktywnej kompromitacji systemu w bardzo krótkim czasie.
- odczyt poufnych plików z serwera i konfiguracji aplikacji,
- pozyskanie danych użytkowników oraz hashy haseł z bazy danych,
- uruchamianie poleceń systemowych na serwerze aplikacyjnym,
- dostęp do dokumentów, metadanych i workflow przechowywanych w systemie,
- wykorzystanie przejętego hosta do ruchu bocznego w sieci wewnętrznej.
Ryzyko należy uznać za krytyczne zwłaszcza tam, gdzie OpenKM jest dostępny z Internetu, zintegrowany z centralnym systemem tożsamości lub działa na współdzielonej infrastrukturze. Dodatkowym czynnikiem podnoszącym poziom zagrożenia jest publiczna dostępność kodu PoC, co obniża próg wejścia dla mniej zaawansowanych napastników.
Rekomendacje
Organizacje korzystające z OpenKM powinny potraktować sprawę priorytetowo i wdrożyć działania ograniczające ekspozycję bez oczekiwania na pełne potwierdzenie wszystkich scenariuszy w środowisku produkcyjnym.
- Natychmiast ograniczyć dostęp sieciowy do interfejsów administracyjnych, szczególnie ścieżek związanych z modułami skryptowymi i zapytaniami do bazy.
- Udostępniać panele administracyjne wyłącznie z wydzielonej sieci zarządzającej, przez VPN lub kontrolowany bastion.
- Przeprowadzić przegląd kont uprzywilejowanych i wymusić zmianę haseł administratorów oraz użytkowników o podwyższonych uprawnieniach.
- Zweryfikować, czy w środowisku nie są używane domyślne lub słabe dane logowania oraz czy poświadczenia nie są współdzielone z innymi systemami.
- Przeanalizować logi aplikacyjne, systemowe, reverse proxy i serwera WWW pod kątem żądań do wrażliwych endpointów administracyjnych.
- Wdrożyć kontrole kompensacyjne, takie jak reguły WAF, monitoring EDR, segmentacja sieci i minimalizacja uprawnień procesu aplikacyjnego.
- Sprawdzić dostępność oficjalnych poprawek, zaleceń producenta oraz nowszych wydań usuwających lub ograniczających ryzykowne funkcje.
Jeżeli architektura rozwiązania na to pozwala, warto rozważyć czasowe wyłączenie najbardziej ryzykownych modułów administracyjnych do momentu pełnej remediacji. Równolegle należy przeprowadzić analizę śladów potencjalnej kompromitacji, szczególnie jeśli system był dostępny publicznie.
Podsumowanie
Opisany publicznie zestaw luk pokazuje, jak niebezpieczne mogą być funkcje administracyjne umożliwiające szeroki dostęp do plików, skryptów i bazy danych. W przypadku OpenKM taki model może prowadzić od ujawnienia danych użytkowników do zdalnego wykonywania poleceń i pełnego przejęcia serwera.
Dla administratorów i zespołów bezpieczeństwa oznacza to konieczność pilnego przeglądu ekspozycji systemu, ograniczenia dostępu do paneli administracyjnych oraz sprawdzenia, czy środowisko nie nosi już oznak naruszenia. W systemach przechowujących dokumenty biznesowe i dane wrażliwe opóźnienie reakcji może znacząco zwiększyć skalę skutków incydentu.
Źródła
- Exploit Database – OpenKM 6.3.12 – Multiple – Multiple webapps Exploit
https://www.exploit-db.com/exploits/52520 - OpenKM – Official Website
https://www.openkm.com/ - OpenKM Community Edition Docker Image
https://hub.docker.com/r/openkm/openkm-ce