/

CVE-2026-100720

Severity:

HIGH RISK

(8.7)

Stored XSS (CWE-79) in Froxlor SSL Certificate APIs

CVE-2026-100720

Deferred

Vulnerability type

Category:

Stored Cross-Site Scripting

CWE:

CWE-79

Impact:

Privileged Session Compromise and Potential Root-Level Code Execution

Severity:

HIGH RISK

(8.7)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Froxlor contains a stored cross-site scripting vulnerability in its SSL certificate handling. A low-privileged customer may be able to place script content in a certificate issuer field, which can execute when an administrator or reseller views the certificate list.

Affected context

The issue occurs in Froxlor deployments where customers can upload SSL certificates for domains they control and the resulting issuer organization value is displayed in the administrative certificate listing. Risk is present when that value is stored without output-safe encoding and rendered with a mechanism that disables normal HTML escaping. The affected privilege boundary is between a customer and higher-privileged administrator or reseller users.

Exploit preconditions

  • Attack surface: SSL certificate upload and update functionality
  • Required access: Authenticated customer-level access to a permitted domain
  • Trigger point: An administrator or reseller views the SSL certificate table
  • Why exploitation is possible: Attacker-influenced certificate metadata is persisted and later emitted without contextual HTML encoding
  • Privilege boundary: Content supplied by a customer is processed in a session belonging to a more privileged user

Why this happens

The vulnerability results from combining insufficient output encoding with a renderer configuration that marks scalar table values as trusted HTML. Certificate metadata derived from the issuer organization field is stored verbatim, and the Twig raw filter prevents automatic escaping when the value is displayed. This maps to CWE-79: Improper Neutralization of Input During Web Page Generation, because attacker-controlled data reaches a browser as executable markup rather than contextually encoded text.

Potential impact

  • A malicious customer may execute script in an administrator's browser session
  • An attacker could perform privileged actions through the compromised session
  • Administrator credentials or session data may be exposed
  • Froxlor configuration and managed services could be altered
  • Server-side command execution could occur if administrative control reaches root-operated management workflows

General mitigation guidance

Mitigation generally focuses on treating all certificate metadata and other externally derived values as untrusted data.

Common defensive patterns include:

  • Applying context-appropriate HTML escaping at every output boundary
  • Avoiding raw or equivalent trust-bypassing rendering filters for user-influenced values
  • Validating certificate fields against a narrowly defined expected format before storage
  • Separating data rendering from trusted HTML generation
  • Restricting administrative privileges and minimizing the capabilities of root-operated automation
  • Using browser security controls such as an effective Content Security Policy as defense in depth
  • Reviewing stored data already collected from customer-controlled certificate uploads

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis rules for unescaped template variables and use of raw-style rendering filters
  • Code review checks tracing uploaded files and parsed certificate metadata into administrative views
  • Dynamic testing that places harmless marker values in certificate metadata and verifies contextual encoding
  • Policy enforcement requiring output encoding for all customer-controlled values
  • Monitoring administrative pages for unexpected script-like markup and unusual privileged actions
  • Automated security review tools that flag tainted data flows into HTML responses

Sources

SourceLink
github.comgithub.com/froxlor/froxlor/security/advisories/GHSA-89vj-gqqr-73p8
vulncheck.comvulncheck.com/advisories/froxlor-before-2.3.12-stored-xss-via-ssl-certificate-issuer

Frequently asked

questions

Generally, exploitation requires authenticated customer-level access to upload or update an SSL certificate for an eligible domain. The vulnerable script executes later when a privileged user views the affected certificate listing.

The payload crosses from a low-privileged customer context into an administrator or reseller session. Because those users may control hosting and server configuration, successful session compromise could enable broader administrative or server-level consequences.

Treat certificate metadata as untrusted and apply context-aware output encoding. Administrative templates should not use raw-rendering mechanisms for values that can originate from customers.

Use taint-aware code review, validate data at trust boundaries, encode at output sinks, restrict privileged actions, and include stored XSS tests in security and regression testing.

Find out what's already
exploitable in your codebase.