CVE-2026-55593: Froxlor CSRF vulnerability in AJAX endpoint

CVE-2026-55593 · Severity: medium · CVSS 6.5 · Published 2026-08-18

Froxlor's AJAX endpoint (lib/ajax.php) lacks Cross-Site Request Forgery (CSRF) protection, whereas the main application enforces CSRF tokens on all state-changing requests. An attacker can craft a malicious webpage that, when visited by an authenticated Froxlor administrator, silently modifies API key properties such as adding the attacker's IP address to the whitelist or extending expiration indefinitely. This allows unauthorized API access when combined with other attacks to obtain the API secret.

Technologies: Froxlor, froxlor/froxlor (Packagist). Vendors: Froxlor, Packagist.

Quick answers

Is CVE-2026-55593 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-55593 being exploited in the wild.
How severe is CVE-2026-55593?
Medium severity, with a CVSS score of 6.5, published 18 August 2026.
Which products and versions are affected?
Froxlor <= 2.3.7; froxlor/froxlor (Packagist) <= 2.3.7, ECOSYSTEM:introduced=0,fixed=2.3.8.
Is there a fix for CVE-2026-55593?
Yes. froxlor/froxlor (Packagist): upgrade to 2.3.8 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-55593 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-55593?
Check whether you run Froxlor or froxlor/froxlor (Packagist) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • froxlor/froxlor (Packagist): upgrade to 2.3.8 or later
    composer require froxlor/froxlor:^2.3.8

Technical details

The vulnerability is a missing CSRF token validation in the AJAX endpoint (lib/ajax.php). While the main application bootstrap (lib/init.php) enforces CSRF token validation on POST/PUT/PATCH/DELETE requests before processing state-changing operations, the standalone AJAX endpoint bypasses this security control entirely and validates only session existence. The vulnerable code path: lib/ajax.php does not include lib/init.php and instantiates Ajax class directly; Ajax::__construct() and Ajax::handle() perform session validation but skip CSRF checks; Ajax::editApiKey() modifies the database (api_keys table) with attacker-controlled POST parameters without verifying request origin. An unauthenticated attacker cannot exploit this, but any attacker who can trick an authenticated administrator into visiting a malicious webpage can modify API key settings (allowed_from, valid_until) via cross-site POST request. The endpoint's SameSite=Lax cookie provides partial mitigation in modern browsers, but this fails on HTTP deployments, older browser versions, and same-site subdomain attacks. Patch available in version 2.3.8.

Affected products

  • Froxlor Froxlor <= 2.3.7

Identifiers

  • CVE-2026-55593
  • GHSA-xpr4-8vp6-c87j

Timeline

  • 2026-06-29: disclosed: GitHub Security Advisory GHSA-xpr4-8vp6-c87j published
  • 2026-08-18: advisory: CVE-2026-55593 assigned
  • 2026: patched: Fix available in Froxlor 2.3.8

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.