Description
OCO-Server is a self-hosted endpoint management application for computer inventory, software deployment, and mobile device management. Prior to 1.2.3, a valid Self-Service Portal user with permission to create job containers and read visibility on a computer and package can queue an uninstall job without deploy permission for those resources. Requests to `self-service/ajax-handler/job-containers.php` pass `uninstall_package_assignment_id[]` values to `lib/SelfService/CoreLogic.class.php::uninstallSelfService()`. Its permission-check loop continues after denied `METHOD_DEPLOY` checks without removing rejected IDs from `$installationIds`, then passes the original list to `lib/CoreLogic.class.php::uninstall()`. The CoreLogic object is constructed with a null SystemUser, causing `lib/CoreLogic.class.php::checkPermission()` to treat the operation as system context and unconditionally permit it. Enumerable `computer_package.id` values allow selection of readable installed-package assignments, including those on other users' computers. The `deploySelfService()` install path instead aborts on denied deployment permission, and resources lacking read permission remain blocked. This permits unauthorized software-removal jobs across resources visible to the acting user's role. This issue is fixed in version 1.2.3.
Published: 2026-10-22
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Authorization bypass allowing unauthorized uninstall jobs on other users' computers and packages
Action: Immediate Patch
AI Analysis

Impact

A valid Self‑Service Portal user who can create job containers and has read visibility on a computer and package can queue an uninstall job for those resources without ever having deploy permission. The application’s permission‑check loop continues after a denied deploy check, passes the original list to a core uninstall routine, and the core logic interprets the operation as a system context because the SystemUser is null. This permits the user to trigger the removal of software across any resources that are visible to their role, effectively bypassing authorization controls and enabling arbitrary deletion of installed packages. The vulnerability is resolved in version 1.2.3.

Affected Systems

OCO‑Server, a self‑hosted endpoint management application, is affected in all releases prior to 1.2.3. Users who rely on the Self‑Service Portal for software deployment and inventory are at risk if they have job‑container creation permissions and can view other users’ computers and packages.

Risk and Exploitability

The CVSS score of 6.5 indicates a moderate severity, but the vulnerability enables privilege escalation by allowing a non‑privileged user to execute uninstall actions that they should not be able to perform. No exploit code is publicly available, and the EPSS score is not published. The vulnerability is not listed in the CISA KEV catalog. An attacker would need authenticated access to the Self‑Service Portal and sufficient read visibility on the target resources. Once those prerequisites are satisfied, the exploit path is straightforward: submit a job‑creation request with the uninstall_package_assignment_id[] values and the application will perform the removal under system context. This provides a high damage potential if an attacker can gain access to the portal.

Generated by OpenCVE AI on October 22, 2026 at 16:18 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade OCO‑Server to version 1.2.3 or later, which removes the vulnerable code path
  • Re‑evaluate and restrict Self‑Service Portal users’ permissions so that only users who truly require job‑container creation rights retain them
  • Implement strict role‑based access controls to limit visibility of computers and packages to only those that a user’s role should see

Generated by OpenCVE AI on October 22, 2026 at 16:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 22 Oct 2026 15:15:00 +0000

Type Values Removed Values Added
Description OCO-Server is a self-hosted endpoint management application for computer inventory, software deployment, and mobile device management. Prior to 1.2.3, a valid Self-Service Portal user with permission to create job containers and read visibility on a computer and package can queue an uninstall job without deploy permission for those resources. Requests to `self-service/ajax-handler/job-containers.php` pass `uninstall_package_assignment_id[]` values to `lib/SelfService/CoreLogic.class.php::uninstallSelfService()`. Its permission-check loop continues after denied `METHOD_DEPLOY` checks without removing rejected IDs from `$installationIds`, then passes the original list to `lib/CoreLogic.class.php::uninstall()`. The CoreLogic object is constructed with a null SystemUser, causing `lib/CoreLogic.class.php::checkPermission()` to treat the operation as system context and unconditionally permit it. Enumerable `computer_package.id` values allow selection of readable installed-package assignments, including those on other users' computers. The `deploySelfService()` install path instead aborts on denied deployment permission, and resources lacking read permission remain blocked. This permits unauthorized software-removal jobs across resources visible to the acting user's role. This issue is fixed in version 1.2.3.
Title OCO-Server: Self-Service Portal uninstall-job authorization bypass
Weaknesses CWE-862
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-22T14:58:02.272Z

Reserved: 2026-10-21T16:15:06.492Z

Link: CVE-2026-114515

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-22T15:17:05.650

Modified: 2026-10-22T17:40:46.877

Link: CVE-2026-114515

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T16:30:08Z

Weaknesses