Jexactyl: Free-billing order endpoint renews and unsuspends arbitrary servers by ID (missing ownership check)
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-107854
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 18:26 UTC · Revision 1
Source evidence
Jexactyl: Free-billing order endpoint renews and unsuspends arbitrary servers by ID (missing ownership check)
core-osv · Original sourcePublished 9 Oct 2026, 20:31 UTC
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.
osv:CVE-2026-107854
Complete source record
{
"id": "f92794fff2b2e5bf83e66e32bc27c994ab7831ae94f6c830e4b2402e0fa38803",
"url": "https://osv.dev/vulnerability/CVE-2026-107854",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Jexactyl: Free-billing order endpoint renews and unsuspends arbitrary servers by ID (missing ownership check)",
"summary": "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.",
"evidence": "osv:CVE-2026-107854",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-107854",
"aliases": [
"CVE-2026-107854",
"GHSA-9xwv-p7r5-5h5p"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/jexactyl/jexactyl",
"type": "GIT",
"events": [
{
"introduced": "5106d69df2f0144fc05b2541b764682f996eb936"
},
{
"fixed": "4bccd3d0eaf34d9db5255842d18340d08af90400"
},
{
"fixed": "356a5b46a18d483ae90c862e130b1969e6df0777"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "4.0.0"
},
{
"fixed": "4.0.5"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "356a5b46a18d483ae90c862e130b1969e6df0777"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "4bccd3d0eaf34d9db5255842d18340d08af90400"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v4.0.5"
}
]
}
}
],
"versions": [
"v4.0.4",
"v4.0.3",
"v4.0.2",
"v4.0.1",
"v4.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-107854.json"
}
}
],
"modified": "2026-10-28T02:30:22.221033675Z",
"provider": "osv",
"references": [
"https://github.com/Jexactyl/Jexactyl/releases/tag/v4.0.5",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107854.json",
"https://github.com/Jexactyl/Jexactyl/security/advisories/GHSA-9xwv-p7r5-5h5p",
"https://nvd.nist.gov/vuln/detail/CVE-2026-107854",
"https://github.com/Jexactyl/Jexactyl/commit/356a5b46a18d483ae90c862e130b1969e6df0777"
],
"provider_metadata": {
"cwe_ids": [
"CWE-639"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107854.json"
}
},
"related_cves": [
{
"value": "CVE-2026-107854",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 488399,
"published_at": "2026-10-09T20:31:02.541+00:00"
}