/

CVE-2026-111605

Severity:

HIGH RISK

(8.1)

Authorization Bypass (CWE-639) in Jpom SSH File Controller

CVE-2026-111605

Deferred

Vulnerability type

Category:

Authorization Bypass

CWE:

CWE-639

Impact:

Cross-Workspace Unauthorized File Access and Modification

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Jpom contains an authorization bypass in its SSH file management controller that allows an authenticated workspace user to reference SSH assets belonging to another workspace. When the user has SSH file permissions in their own workspace, supplying a foreign asset identifier may enable unauthorized file access, modification, or deletion on the other workspace's host.

Jpom contains an authorization bypass in its SSH file management controller that allows an authenticated workspace user to reference SSH assets belonging to another workspace. When the user has SSH file permissions in their own workspace, supplying a foreign asset identifier may enable unauthorized file access, modification, or deletion on the other workspace's host.

Affected context

The issue occurs in Jpom deployments where SSH file operations rely on a user-supplied asset identifier without sufficiently verifying that the referenced SSH host belongs to the user's workspace. Affected operations include file download, upload, reading, updating, deletion, renaming, and directory creation. Exploitability depends on the attacker being an authenticated workspace user with access to applicable SSH file-management endpoints.

The issue occurs in Jpom deployments where SSH file operations rely on a user-supplied asset identifier without sufficiently verifying that the referenced SSH host belongs to the user's workspace. Affected operations include file download, upload, reading, updating, deletion, renaming, and directory creation. Exploitability depends on the attacker being an authenticated workspace user with access to applicable SSH file-management endpoints.

Exploit preconditions

  • Attack surface: Jpom SSH file-management API endpoints
  • Required access: An authenticated account with SSH file permissions in at least one workspace
  • Trigger point: Supplying an SSH asset identifier associated with another workspace to file operation endpoints
  • Why exploitation is possible: Authorization checks may validate the user's general file-management permission without binding the requested asset to the user's authorized workspace
  • Attack surface: Jpom SSH file-management API endpoints
  • Required access: An authenticated account with SSH file permissions in at least one workspace
  • Trigger point: Supplying an SSH asset identifier associated with another workspace to file operation endpoints
  • Why exploitation is possible: Authorization checks may validate the user's general file-management permission without binding the requested asset to the user's authorized workspace

Why this happens

The vulnerability is an object-level authorization failure mapped to CWE-639: Authorization Bypass Through User-Controlled Key. The application accepts a client-controlled SSH asset identifier and uses it to select a host, but does not consistently enforce ownership or workspace membership for that object. This creates an insecure direct object reference pattern in which possession of a valid identifier can cross an authorization boundary.

The vulnerability is an object-level authorization failure mapped to CWE-639: Authorization Bypass Through User-Controlled Key. The application accepts a client-controlled SSH asset identifier and uses it to select a host, but does not consistently enforce ownership or workspace membership for that object. This creates an insecure direct object reference pattern in which possession of a valid identifier can cross an authorization boundary.

Potential impact

  • Unauthorized users may read files from SSH hosts assigned to other workspaces
  • Attackers could upload or modify files on hosts outside their authorized workspace
  • Sensitive configuration, credentials, or application data may be exposed
  • Files or directories could be deleted, renamed, or replaced
  • Compromised files could support operational disruption or further host compromise
  • Unauthorized users may read files from SSH hosts assigned to other workspaces
  • Attackers could upload or modify files on hosts outside their authorized workspace
  • Sensitive configuration, credentials, or application data may be exposed
  • Files or directories could be deleted, renamed, or replaced
  • Compromised files could support operational disruption or further host compromise

General mitigation guidance

Mitigation should focus on enforcing server-side, object-level authorization for every SSH file operation.

Common defensive patterns include:

  • Resolve the requested SSH asset on the server and verify workspace ownership before performing any action
  • Derive authorization context from the authenticated session rather than trusting workspace or asset identifiers supplied by the client
  • Apply consistent authorization checks across download, upload, read, update, delete, rename, and directory-creation operations
  • Use deny-by-default policies and least-privilege service credentials for SSH access
  • Reduce the sensitivity of stored SSH credentials and isolate workspaces where practical
  • Return generic authorization failures without exposing whether foreign asset identifiers exist

Mitigation should focus on enforcing server-side, object-level authorization for every SSH file operation.

Common defensive patterns include:

  • Resolve the requested SSH asset on the server and verify workspace ownership before performing any action
  • Derive authorization context from the authenticated session rather than trusting workspace or asset identifiers supplied by the client
  • Apply consistent authorization checks across download, upload, read, update, delete, rename, and directory-creation operations
  • Use deny-by-default policies and least-privilege service credentials for SSH access
  • Reduce the sensitivity of stored SSH credentials and isolate workspaces where practical
  • Return generic authorization failures without exposing whether foreign asset identifiers exist

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules that identify database or service lookups using client-controlled object identifiers without nearby authorization checks
  • Code review signals such as workspace or tenant checks performed only at the UI layer or only on selected endpoints
  • API tests that attempt to reuse valid object identifiers across users, projects, or workspaces
  • Access-log monitoring for repeated requests involving asset identifiers outside the caller's normal workspace
  • Policy enforcement requiring centralized object-level authorization middleware for multi-tenant APIs

Automated security testing and code review tools may help identify inconsistent authorization coverage.

Organizations can look for this class of issue through:

  • Static analysis rules that identify database or service lookups using client-controlled object identifiers without nearby authorization checks
  • Code review signals such as workspace or tenant checks performed only at the UI layer or only on selected endpoints
  • API tests that attempt to reuse valid object identifiers across users, projects, or workspaces
  • Access-log monitoring for repeated requests involving asset identifiers outside the caller's normal workspace
  • Policy enforcement requiring centralized object-level authorization middleware for multi-tenant APIs

Automated security testing and code review tools may help identify inconsistent authorization coverage.

Sources

SourceLink
github.comgithub.com/dromara/Jpom
github.comgithub.com/dromara/Jpom/blob/v2.11.12/modules/server/src/main/java/org/dromara/jpom/controller/ssh/SshFileController.java#L44-L65
hackmd.iohackmd.io/@hieuPenguinnn/jpom-ssh-file-cross-workspace-idor
vulncheck.comvulncheck.com/advisories/jpom-through-2.11.12-cross-workspace-authorization-bypass-via-sshfilecontroller

Frequently asked

questions

It may be exploitable through Jpom's SSH file-management API when the service is reachable and the attacker has a valid authenticated account with suitable file permissions.

The attacker generally needs an authenticated workspace account with SSH file-management privileges. They do not necessarily need membership in the target workspace if asset authorization is incomplete.

Perform server-side object-level authorization for every request, confirming that the selected SSH asset belongs to a workspace the authenticated user is authorized to access.

Enforce centralized authorization policies, test cross-tenant object access in automated API tests, avoid trusting client-supplied ownership context, and monitor for anomalous asset-identifier access patterns.

It may be exploitable through Jpom's SSH file-management API when the service is reachable and the attacker has a valid authenticated account with suitable file permissions.

The attacker generally needs an authenticated workspace account with SSH file-management privileges. They do not necessarily need membership in the target workspace if asset authorization is incomplete.

Perform server-side object-level authorization for every request, confirming that the selected SSH asset belongs to a workspace the authenticated user is authorized to access.

Enforce centralized authorization policies, test cross-tenant object access in automated API tests, avoid trusting client-supplied ownership context, and monitor for anomalous asset-identifier access patterns.

Find out what's already
exploitable in your codebase.