CVE-2026-107854: Jexactyl: IDOR in billing endpoint allows renewing others' servers
MEDIUMJexactyl, a game server management panel with billing, has an insecure direct object reference (CWE-639) in its free billing renewal endpoint: it accepts a client-supplied server_id and never checks that the server belongs to the authenticated account. Any logged-in user on a billing-enabled installation can renew or unsuspend another tenant's server, which makes this a tenant-isolation and billing-integrity problem rather than data theft or code execution. Risk is limited: CVSS is 5.4 (integrity and availability impact only), EPSS data is not available, there is no public exploit or Nuclei template, and it is not in CISA KEV. The product is also only loosely connected to AI/ML (it is classified as an ML UI component), so exposure is relevant only if you host it. If you run Jexactyl 4.0.0 through 4.0.4 with billing enabled, upgrade to 4.0.5 and review billing logs for renewals or unsuspensions that don't match the owning account.
What is the risk?
Medium-to-low overall. The flaw is network-reachable and low-complexity, and needs only a low-privileged authenticated account, so it is trivial to exploit once an account exists. Impact is limited to integrity and availability of billable server state (renewal dates, suspension status), with no confidentiality impact. It only applies when billing is enabled and the target server's renewal_date is non-null and more than seven days away. There are no exploitation signals: no KEV listing, no public exploit and no scanner template. Its AI relevance is marginal, since this is a general hosting panel rather than an ML framework.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade Jexactyl to 4.0.5 or later, which fixes the ownership check (see commit 356a5b46 and the GHSA-9xwv-p7r5-5h5p advisory). 2) If you can't patch immediately, disable billing, or block or restrict POST /api/client/billing/free/process at the reverse proxy or WAF. 3) Review application and access logs for calls to that endpoint where the server_id doesn't belong to the requesting user, and for unexpected renewal_date changes or unsuspension events. 4) Reconcile billing records against account ownership for the exposure window. 5) Apply a general rule that every object lookup is scoped to the authenticated account.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-107854?
Jexactyl, a game server management panel with billing, has an insecure direct object reference (CWE-639) in its free billing renewal endpoint: it accepts a client-supplied server_id and never checks that the server belongs to the authenticated account. Any logged-in user on a billing-enabled installation can renew or unsuspend another tenant's server, which makes this a tenant-isolation and billing-integrity problem rather than data theft or code execution. Risk is limited: CVSS is 5.4 (integrity and availability impact only), EPSS data is not available, there is no public exploit or Nuclei template, and it is not in CISA KEV. The product is also only loosely connected to AI/ML (it is classified as an ML UI component), so exposure is relevant only if you host it. If you run Jexactyl 4.0.0 through 4.0.4 with billing enabled, upgrade to 4.0.5 and review billing logs for renewals or unsuspensions that don't match the owning account.
Is CVE-2026-107854 actively exploited?
No confirmed active exploitation of CVE-2026-107854 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-107854?
1) Upgrade Jexactyl to 4.0.5 or later, which fixes the ownership check (see commit 356a5b46 and the GHSA-9xwv-p7r5-5h5p advisory). 2) If you can't patch immediately, disable billing, or block or restrict POST /api/client/billing/free/process at the reverse proxy or WAF. 3) Review application and access logs for calls to that endpoint where the server_id doesn't belong to the requesting user, and for unexpected renewal_date changes or unsuspension events. 4) Reconcile billing records against account ownership for the exposure window. 5) Apply a general rule that every object lookup is scoped to the authenticated account.
What systems are affected by CVE-2026-107854?
This vulnerability affects the following AI/ML architecture patterns: Multi-tenant hosting panels, Billing and subscription management, ML/AI workload hosting UIs.
What is the CVSS score for CVE-2026-107854?
CVE-2026-107854 has a CVSS v3.1 base score of 5.4 (MEDIUM). The EPSS exploitation probability is 0.21%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012Valid AccountsAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
Jexactyl is a customisable game management panel and billing system. From 4.0.0 until 4.0.5, the POST /api/client/billing/free/process endpoint accepts a client-controlled server_id and loads the server without restricting the lookup to servers owned by the authenticated account. On installations with billing enabled, an authenticated user can renew or unsuspend another tenant's billable server when its renewal_date is non-null and more than seven days away, even without a subuser relationship to that server. This issue is fixed in version 4.0.5.
Exploitation Scenario
An attacker registers a regular account on a multi-tenant Jexactyl hosting provider with billing enabled. They enumerate or guess server IDs, then send authenticated POST requests to /api/client/billing/free/process with another tenant's server_id. For servers whose renewal date is more than seven days away, the request renews or unsuspends them. The attacker can interfere with the provider's suspension enforcement, for example by keeping a delinquent server (their own or an accomplice's, including one running GPU or AI workloads) active, or by disturbing other tenants' billing cycles.
Weaknesses (CWE)
CWE-639Authorization Bypass Through User-Controlled KeyPrimaryCWE-639Authorization Bypass Through User-Controlled KeyCWE-639 — Authorization Bypass Through User-Controlled Key: The system's authorization functionality does not prevent one user from gaining access to another user's data or record by modifying the key value identifying the data.
- [Architecture and Design] For each and every data access, ensure that the user has sufficient privilege to access the record that is being requested.
- [Architecture and Design, Implementation] Make sure that the key that is used in the lookup of a specific user's record is not controllable externally by the user or that any tampering can be detected.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:LReferences
Timeline
Related Vulnerabilities
CVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Auth BypassGHSA-vvpj-8cmc-gx3910.0picklescan: security flaw enables exploitation
Same attack type: Auth BypassCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Auth BypassCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Auth BypassCVE-2026-2603010.0semantic-kernel: Code Injection enables RCE
Same attack type: Auth Bypass