CVE-2026-61791
WysokieCVSS 7.4Streszczenie
OCO-Server w wersjach przed 1.2.1 zawiera podatność, w której Html::commandButton() w lib/Html.class.php osadza URL akcji zawierający przechowywaną nazwę hosta komputera w łańcuchu JavaScript w obsłudze onclick, używając htmlspecialchars(ENT_QUOTES) tylko do escapowania HTML. Przeglądarki dekodują encje HTML przed interpretacją obsługi jako JavaScript, więc spreparowana nazwa hosta może uciec z łańcucha i wykonać skrypt w uwierzytelnionej sesji administratora po aktywowaniu przycisku polecenia. Zdalny atakujący posiadający współdzielony agent-registration-key może zapisać niekontrolowaną nazwę hosta przez oco.agent.hello, gdy włączona jest samorejestracja agenta (domyślnie wyłączona). Problem naprawiono w wersji 1.2.1.
Ocena ryzyka
Atakujący może wykonać dowolny skrypt w sesji administratora i wykorzystać jego uprawnienia, w tym wdrażanie zadań oprogramowania na zarządzanych komputerach. Może to prowadzić do przejęcia zarządzanych stacji.
Rekomendacja
Zaktualizuj OCO-Server do wersji 1.2.1 lub nowszej. Do czasu aktualizacji pozostaw samorejestrację agenta wyłączoną i chroń współdzielony agent-registration-key.
Inne podatności w OCO-Server
Zobacz wszystkie- CVE-2026-114515Średnie
OCO-Server przed wersją 1.2.3 pozwala użytkownikowi Self-Service Portal z uprawnieniami do tworzenia kontenerów zadań i odczytu komputera oraz pakietu na zakolejkowanie zadania odinstalowania bez uprawnień do wdrożenia. Pętla sprawdzania uprawnień nie usuwa odrzuconych identyfikatorów, a następnie przekazuje oryginalną listę do funkcji odinstalowania, która jest wykonywana w kontekście systemowym.
- CVE-2026-114611Krytyczne
W OCO-Server przed wersją 1.2.3 endpoint rejestracji Apple MDM (frontend/api-mdm.php) weryfikuje podpisany plist żądania rejestracji z flagą PKCS7_NOVERIFY, co wyłącza walidację łańcucha certyfikatów i zaufania. W efekcie atakujący może podpisać sfałszowany plist dowolnym certyfikatem self-signed, podając numer seryjny znanego urządzenia, i nieuwierzytelnionym żądaniem uzyskać tożsamość MDM ofiary (certyfikat i klucz prywatny) oraz nadpisać rekord urządzenia w bazie.
Oryginalny opis (angielski, źródło NVD)
OCO-Server is a self-hosted endpoint management application for computer inventory, software deployment, and mobile device management. Prior to 1.2.1, `Html::commandButton()` in `lib/Html.class.php` embeds an action URL containing a stored computer hostname into a JavaScript string in an inline `onclick` handler, using `htmlspecialchars(ENT_QUOTES)` only for HTML escaping. Browsers decode the HTML entities before interpreting the handler as JavaScript, allowing a crafted hostname to escape the string and execute script in an administrator's authenticated session when an affected command button is activated. `frontend/views/computer-details.php` passes `$computer->hostname` to this helper using `Computer::DEFAULT_COMPUTER_COMMANDS` in `lib/Models/Computer.class.php`, whose VNC, RDP, SSH, and Ping entries use `new_tab=false` and the vulnerable `window.location` branch. A remote attacker who possesses the shared `agent-registration-key` can use the `oco.agent.hello` handler in `frontend/api-agent.php` to store an unchecked hostname when `agent-self-registration-enabled` is enabled; self-registration is disabled by default. The vulnerable default command buttons require no custom command configuration. The injected script can abuse the administrator's privileges, including permission to deploy software jobs to managed computers. This issue is fixed in version 1.2.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

