Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged billing user
-
DeliveryEnumerate or guess target server_id
-
ExploitPOST crafted server_id to /billing/free/process
-
ExecutionServer loaded without ownership check
-
ImpactRenew/unsuspend victim's server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires that billing is enabled on the Jexactyl installation and that the attacker holds a valid authenticated account (PR:L) on that instance. The targeted server must be billable with a renewal_date that is non-null and more than seven days in the future; servers outside this state are not affected. Critically, no subuser or ownership relationship to the victim's server is required - the only knowledge needed is a valid target server_id. Limiting factors: the attack is confined to multi-tenant installations with the free-product billing feature active, the impact is restricted to renewing/unsuspending (no data disclosure or code execution), and all versions 4.0.0 through pre-4.0.5 are affected (fixed in 4.0.5). |
| Impact | This is a moderate, real-but-bounded authorization flaw (CWE-639, IDOR) rather than a critical priority. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L = 5.4) is internally consistent with the description: network-reachable, low-complexity, and requiring an authenticated but low-privileged account, with no confidentiality loss and only limited integrity/availability impact (renewing or unsuspending another tenant's server). No EPSS score, KEV listing, or SSVC decision data was supplied, so exploitation-probability and automatability cannot be quantified from the input. A vendor patch commit and GitHub Security Advisory (GHSA-9xwv-p7r5-5h5p) are confirmed present, but no public exploit code is referenced - the commit diff is a fix, not a weaponized PoC. The signals are not conflicting: a genuinely authenticated IDOR with low technical impact and no mass-exploitation indicators points to a targeted, opportunistic issue for multi-tenant Jexactyl operators, not a widespread emergency. Note that the impact is primarily cross-tenant state manipulation (unexpected renewal/unsuspension) rather than data theft or code execution. |
| Exploit ScenarioDerived | An attacker registers or already holds a low-privileged account on a Jexactyl installation with billing enabled, then sends a POST to /api/client/billing/free/process supplying another tenant's server_id. Because the endpoint loaded the server via Server::findOrFail without scoping to the caller's owned servers, the attacker can renew or unsuspend a victim's billable server (when its renewal_date is non-null and more than seven days out) without any subuser relationship. No public exploit code is referenced, but the fix commit clearly reveals the vulnerable lookup, making reproduction straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
An authorization bypass (IDOR) in Jexactyl 4.0.0 through 4.0.5 allows any authenticated user to renew or unsuspend another tenant's billable game server by submitting an arbitrary server_id to the POST /api/client/billing/free/process endpoint, which loads the server without scoping the lookup to the caller's own account. Exploitation requires billing to be enabled, the target server to be billable with a non-null renewal_date more than seven days in the future, and a valid account on the instance - no ownership or subuser relationship to the victim's server is needed, only knowledge of its server_id. The impact is bounded to unauthorized renewal/unsuspension actions (no data disclosure or code execution) with CVSS 5.4; no public exploit code identified at time of analysis, and the vendor fix is available in version 4.0.5.
RemediationAI
Vendor-released patch: Jexactyl 4.0.5. Upgrade every panel instance running 4.0.0 through 4.0.4 to 4.0.5, which scopes the server lookup in POST /api/client/billing/free/process to the authenticated user via $user->servers()->where('id', ...)->firstOrFail() and returns a 404 for servers belonging to other tenants; see the advisory at https://github.com/Jexactyl/Jexactyl/security/advisories/GHSA-9xwv-p7r5-5h5p, the release at https://github.com/Jexactyl/Jexactyl/releases/tag/v4.0.5, and the upstream fix commit at https://github.com/Jexactyl/Jexactyl/commit/356a5b46a18d483ae90c862e130b1969e6df0777. If upgrading cannot be done immediately, the most effective compensating control is to disable the free-product billing feature so the endpoint is unreachable, at the cost of removing free renewals for legitimate customers; an alternative is to place a reverse-proxy or WAF rule that rejects POSTs to /api/client/billing/free/process for accounts not intended to use it, or to temporarily restrict that route to trusted administrative roles - both carry the trade-off of breaking the free billing workflow and requiring rule maintenance as legitimate traffic patterns change. Because exploitation does not require any subuser relationship, filtering by role or ownership cannot be inferred from request parameters alone, so removing or disabling the feature is preferable to partial input validation. Finally, review billing and audit logs for anomalous renewal or unsuspension events on servers whose owning account was not the actor, and where a manual fix was applied instead of the upstream patch, verify that the ownership-scoped query is present rather than relying on a client-supplied server_id check.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Jexactyl is a Laravel-based game server management panel and billing system built on the Pterodactyl codebase. The vulnerable controller, app/Http/Controllers/Api/Client/Billing/FreeProductController.php, resolved the target server with a globally scoped Eloquent lookup - Server::findOrFail($request->input('server_id')) - which performs no ownership check and therefore trusts a client-controlled primary key. This is the classic CWE-639 pattern (Authorization Bypass Through User-Controlled Key), a subset of IDOR: the object reference is attacker-supplied and the authorization decision is effectively delegated to the request body rather than to the session identity. The upstream commit 356a5b46a18d483ae90c862e130b1969e6df0777 corrects this by scoping the query through the relationship, $user->servers()->where('id', $request->input('server_id'))->firstOrFail(), so that a server belonging to another tenant resolves to a 404 instead of being mutated. The endpoint sits behind the panel's client API middleware, so a valid authenticated session is required (PR:L in the CVSS vector), and the abuse path is a state-changing free-billing workflow (renew/unsuspend), which explains the limited Integrity and Availability ratings with no Confidentiality impact.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
Authenticated low-privileged user (PR:L) sends a network request (AV:N/AC:L) to alter another tenant's server state; integrity and availability limited (I:L/A:L), no data read (C:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-95983
NVD
CVE.org
EPSS
GitHub
Exploit-DB