Skip to main content

Jexactyl EUVDEUVD-2026-95982

| CVE-2026-107852 HIGH
Insufficient Verification of Data Authenticity (CWE-345)
2026-10-09 GitHub_M
7.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as billing client
  2. Exploit
    Create order and underpaid Stripe session
  3. Execution
    POST paid session to process endpoint
  4. Impact
    Server provisioned below required price

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Data authenticity verification
Exploitation Conditions

Requires an instance where the billing module is explicitly enabled AND a Stripe secret key is configured (config modules.billing.keys.secret) - both non-default deployment prerequisites. The attacker must hold a valid authenticated client account (PR:L) and an order referencing a server. Exploitation then needs only a Stripe Checkout Session whose payment_status is 'paid' with a lower amount_total or a different currency than the order; the pre-4.0.5 code trusts 'paid' without comparing amount_total or currency to the order total and configured billing currency. Limiting factors: requires authentication, requires the optional billing+Stripe configuration to be active, and only affects versions prior to 4.0.5.

Impact

This is a genuine but bounded business-logic/payment-integrity flaw rather than a critical infrastructure risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L, 7.1 High) is internally consistent with the description: network-reachable, low complexity, but requiring an authenticated client (PR:L) and producing an integrity impact (VI:H) with no confidentiality loss (VC:N) - correctly contradicting the 'Information Disclosure' tag, since no data is exposed. No EPSS score, KEV listing, or public exploit is present in the provided data, so there is no public exploit identified at time of analysis and no confirmed active exploitation; the realistic threat is targeted financial fraud by existing authenticated customers against hosting operators, not mass/automated exploitation. Priority should be scoped to operators who actually run the billing module with a live Stripe secret key - for them this is a direct revenue-loss and provisioning-abuse issue and the fix (v4.0.5) should be applied, but for the broad install base that does not enable billing it is not a pressing concern. EPSS and KEV data are simply absent (not an error), so probability-of-exploitation cannot be quantified from the inputs.

Exploit ScenarioDerived

An authenticated customer on a Jexactyl instance with the billing module enabled and Stripe configured initiates a real order, then completes a Stripe Checkout Session for a deliberately low amount or a cheap currency (e.g. 100 JPY instead of 100 USD). They POST the 'paid' session to /api/client/billing/stripe/process, and because the server never compares amount_total or currency against the order, the server is provisioned, renewed, upgraded, or unsuspended for a fraction of the real price. No public exploit code was identified in the provided data, but the mechanism is confirmed by the fix commit and its integration tests.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 09, 2026

Jexactyl releases prior to 4.0.5 accept a client-supplied Stripe Checkout Session at POST /api/client/billing/stripe/process based solely on its payment_status being 'paid', without checking amount_total or currency against the referenced order or the panel's configured billing currency. On instances where the optional billing module is enabled and a Stripe secret key is set, an authenticated client can therefore settle an order with an under-valued or mismatched-currency payment and still have the order fulfilled, provisioning, renewing, upgrading, or unsuspending the associated server for less than the required price. The issue is a bounded payment-integrity/business-logic flaw rather than a critical infrastructure risk; it requires authentication plus the non-default billing and Stripe configuration, is fixed in 4.0.5, and no public exploit code or active exploitation has been identified at time of analysis.

RemediationAI

Upgrade to Jexactyl 4.0.5 or later, the vendor-released patched version, which adds the missing amount_total and currency comparison in StripeController::process() and rejects sessions whose totals or currency do not match the order (commit fdee722c560ac13dc2d26271912203a6085dffe3; release https://github.com/Jexactyl/Jexactyl/releases/tag/v4.0.5; advisory https://github.com/Jexactyl/Jexactyl/security/advisories/GHSA-rf56-676w-hj4g). If immediate upgrading is not possible, the most effective compensating control is to disable the billing module (set modules.billing.enabled to false) or remove the Stripe secret key from modules.billing.keys.secret, which closes the vulnerable endpoint entirely - the trade-off is that all paid checkout, renewal, and upgrade flows stop working until the patch is applied. As a narrower alternative, restrict access to POST /api/client/billing/stripe/process at the reverse proxy or application middleware layer so only trusted traffic reaches it, and manually reconcile any pending or recently processed orders against Stripe's records (checking amount_total and currency) to detect sessions that were accepted below list price. After patching, audit orders created on pre-4.0.5 versions for underpayment or currency mismatches and re-bill or suspend affected services as policy dictates. No public exploit code or confirmed active exploitation has been reported, so emergency out-of-band response is not indicated unless the billing module and Stripe key are in use.

Affected VersionsENISA

Jexactyl < 4.0.5

Affected Packages

euvd jexactyl fix: 4.0.5

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 PHP game-server management panel with an optional billing subsystem that integrates Stripe Checkout. The root cause is CWE-345 (Insufficient Verification of Data Authenticity): the StripeController::process() method treats the Stripe API response field payment_status == 'paid' as proof that the correct amount was collected, without binding the session to the local order record. A Stripe Checkout Session reports 'paid' irrespective of how much was collected or in which currency, and amounts are expressed as integers in the currency's minor unit (matching the value sent to Stripe in PaymentService::create()). Because the pre-4.0.5 code never compared (int) $transaction->amount_total against (int) round($order->total * 100), nor lowercased $transaction->currency against strtolower(config('modules.billing.currency.code')), any session with a 'paid' status and metadata pointing at a valid order was accepted - for example a 100 JPY (~USD 0.63) session against a USD 100.00 order. The vulnerability is confined to deployments where the billing module is enabled and a Stripe secret key (modules.billing.keys.secret) is configured, and the attacker must hold an authenticated client account plus an existing order tied to a server. The affected component is registered in CPE as cpe:2.3:a:jexactyl:jexactyl:*:*:*:*:*:*:*:* (all versions before 4.0.5). The upstream fix in commit fdee722c560ac13dc2d26271912203a6085dffe3 adds the currency/amount comparison and throws a DisplayException on mismatch, and additionally allows a StripeClient instance to be resolved from the service container for testability.

Know when Stripe gets its next vulnerability

  • 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

Vendor (GitHub_M) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Remote authenticated client (PR:L, AV:N, AC:L) bypasses payment validation causing high integrity impact to billing/provisioning (I:H), minor availability gain (A:L), no data disclosure (C:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 09, 2026 - 22:17 EUVD
CVE Published
Oct 09, 2026 - 20:28 cve.org
HIGH 7.1

DescriptionCVE.org

Jexactyl is a customisable game management panel and billing system. Prior to 4.0.5, the POST /api/client/billing/stripe/process endpoint accepts a client-supplied Stripe Checkout Session when payment_status is paid but does not compare amount_total or currency with the referenced order and configured billing currency. On an instance where the billing module is enabled and a Stripe secret key is configured, an authenticated client can therefore complete a lower-value or mismatched-currency payment and cause the order to be processed, provisioning, renewing, upgrading, or unsuspending the purchased server for less than the required price. This issue is fixed in version 4.0.5.

Technical POC Analysis

CWE-345, insufficient verification of data authenticity, in Jexactyl's Stripe billing confirmation handler.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Jexactyl, a game server management panel, contains a payment validation flaw in its optional billing module that could allow actors to pay less than the required amount and still receive server provisioning, renewals, or upgrades. Organizations using Jexactyl with Stripe integration may face revenue loss and unauthorized service fulfillment. Security leadership should prioritize remediation to protect billing integrity and prevent abuse of paid services.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
niche game-hosting panel; billing module is an optional non-default feature
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy