CVE-2026-114611
KrytyczneCVSS 9.1Streszczenie
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.
Ocena ryzyka
Atakujący może przejąć relację MDM urządzenia ofiary, czytać dane zarządzania, podmienić token push oraz zakłócić lub przekierować rejestrację. Wymagana jest jedynie znajomość numeru seryjnego zarejestrowanego urządzenia, a żądanie nie wymaga uwierzytelnienia.
Rekomendacja
Zaktualizuj OCO-Server do wersji 1.2.3 lub nowszej, która naprawia problem. Do czasu aktualizacji ogranicz dostęp do endpointu /api-mdm.php i monitoruj nietypowe żądania rejestracji.
Inne podatności w OCO-Server
Zobacz wszystkie- CVE-2026-61791Wysokie
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.
- 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.
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.3,the Apple MDM enrollment endpoint `frontend/api-mdm.php` verifies the signed enrollment-request plist with `openssl_pkcs7_verify(..., PKCS7_NOVERIFY, ...)`. `PKCS7_NOVERIFY` disables signer certificate chain and trust validation, so the signature only has to be self-consistent with whatever certificate is embedded in the PKCS#7 blob. A self-signed certificate from an unrelated attacker is accepted. Because the endpoint trusts the `SERIAL` field taken from the unverified payload, anyone who knows a registered device's serial number can sign a forged plist (`SERIAL` = victim device, attacker-chosen `UDID`) with an arbitrary self-signed certificate; POST it unauthenticated to `/api-mdm.php/profile` (Content-Type: `application/pkcs7-signature`); and receive the victim device's freshly minted MDM identity: a certificate with `CN=<serial>` issued by the server's internal MDM device CA, bundled with its private key in a PKCS#12 payload inside the returned `.mobileconfig` enrollment profile. Additionally, the victim's `mobile_device` database row is silently overwritten with the attacker-supplied `UDID` (device-record hijack). With the stolen certificate and key, the attacker can impersonate the victim device on all subsequent MDM traffic (`/checkin`, `/mdm`, `/parameters`), which authenticate callers by the certificate CN (the serial number) via `checkSignature()` in the same file. This yields control over the victim device's MDM relationship: reading its management data, replacing its push token, and disrupting or redirecting its enrollment. Version 1.2.3 fixes the issue.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

