CVE-2026-114611: OCO-Server: MDM /profile endpoint accepts self-signed PKCS#7 signatures (PKCS7_NOVERIFY): device MDM identity (certificate + private key) disclosure and device-record hijack

Published Oct 22, 2026
·
Updated

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 opensslpkcs7verify(..., PKCS7NOVERIFY, ...). PKCS7NOVERIFY 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 mobiledevice 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.

Affected Software

1 affected component
OCO OCO-Server<1.2.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade OCO-Server to a version that resolves this vulnerability.

    Fixed in 1.2.3

Event History

Oct 22, 2026
CVE Published
via MITRE·05:33 PM
Data Sourced
via MITRE·05:33 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which installations should be treated as affected?

OCO-Server versions prior to 1.2.3 are affected. The exposed enrollment handler is frontend/api-mdm.php at the /api-mdm.php/profile path.

2

What does an attacker need to exploit the issue?

The attacker needs the serial number of a registered device and network access to the profile endpoint. They can submit an unauthenticated PKCS#7-signed plist using an arbitrary self-signed certificate and an attacker-selected UDID.

3

Does exploitation require a certificate trusted by the server?

No. The affected verification uses PKCS7_NOVERIFY, so signer certificate-chain and trust validation are disabled; a self-signed certificate is accepted if the PKCS#7 signature is internally consistent.

4

What can an attacker obtain after a successful request?

The response can provide the victim device's newly minted MDM identity in an enrollment profile. This includes a certificate issued by the server's internal MDM device CA and its private key in a PKCS#12 payload.

5

How can I determine whether my server is exposed?

Check the deployed OCO-Server version. Installations running a version earlier than 1.2.3 should be considered vulnerable.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203