CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-54543

CVE-2026-54543: DNS Resource Record (RR) Injection in Froxlor DomainZones API

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 19, 2026·7 min read·10 visits

Executive Summary (TL;DR)

Authenticated users with DNS edit permissions can inject arbitrary DNS records into BIND zone files via Froxlor's unsanitized DomainZones.add API.

CVE-2026-54543 is a DNS Resource Record (RR) Injection vulnerability in Froxlor, an open-source server administration control panel. Prior to version 2.3.8, the DomainZones.add API command failed to perform strict sanitization and validation on the user-controlled record (label) and type parameters before serializing them into BIND-compatible zone files. An authenticated customer with DNS zone management permissions can inject control characters, breaking out of the original record context to define unauthorized resource records within managed zones.

Vulnerability Overview

Froxlor is an open-source server administration control panel that enables administrators to manage domains, web hosting, email accounts, and DNS zones. Among its core capabilities is a DNS management system that interfaces directly with Berkeley Internet Name Domain (BIND) to generate and maintain authoritative DNS zone files. This configuration relies on database entries containing domain definitions, which are periodically serialized into standard, space-delimited configuration files.

The core of the vulnerability resides in the DomainZones.add API command, implemented in the PHP file lib/Froxlor/Api/Commands/DomainZones.php. An authenticated user with domain editing privileges can request the addition of custom DNS resource records. However, because the application did not sanitize the record or type inputs prior to serialization, an attacker can input carriage returns, line feeds, and horizontal tabs into these fields to inject downstream commands.

The primary risk associated with this flaw is DNS injection, which corresponds to CWE-74. If successfully exploited, an attacker can hijack resolution paths for specific domains, creating unauthorized TXT, MX, or A records. Because the DNS server acts as the source of truth for the local network segment or the internet, this permits the attacker to bypass access controls or spoof trusted identities.

Root Cause Analysis

To understand the root cause, one must examine how BIND processes zone files. BIND zone files are strictly line-oriented text files. Each physical line defines a single resource record or a structural directive unless explicitly continued using parentheses. Elements within a record—such as the owner name, TTL, class, record type, and resource data (RDATA)—are separated by whitespace, which can be spaces or horizontal tabs (\t).

The vulnerability exists because Froxlor's serialization system in lib/Froxlor/Dns/DnsEntry.php took user-defined parameters from the database and concatenated them directly into the output stream during the periodic cron-based zone file generation. Because the application did not validate that the $record parameter consists solely of alphanumeric characters and periods, or that the $type parameter is a valid DNS record class, it was possible to pass control characters directly to the generation engine.

Specifically, when an attacker injects a Line Feed (\n) or Carriage Return and Line Feed (\r\n) into the record parameter, BIND parses the single input field as multiple structural lines. By structuring the payload to contain a newline sequence followed by a valid DNS record format, and concluding with a semicolon (;), the attacker effectively ends the legitimate record early, inserts a custom record on the next line, and comments out the remainder of the system-generated configuration line. This breaks the syntactic boundary of the original database entry and forces BIND to load unauthorized zones.

Code Analysis

Prior to the security patch in commit a4f09f09fa71337b6cdff364d0a641d631a0130a, the API accepted both $record and $type with minimal validation, simply trimming whitespace and applying basic structural handling. This allowed raw injection into the configuration file.

// Vulnerable Code Path
$record = trim(strtolower($record));
// No character validation was performed on $record
// No allowlist check existed for the $type parameter

The remediation introduces a strict character filtering pass on $record and a structural allowlist validation on $type within lib/Froxlor/Api/Commands/DomainZones.php. Below is an analysis of the critical modifications:

// Patched Code
$record = trim(strtolower($record));
// Remove invalid control characters (allowing only printable ASCII)
$record = preg_replace('/[^\x20-\x7E]/', '', $record);
 
$type = trim(strtoupper($type));
// Strict type allowlist validation
if (!in_array($type, [
    'A',
    'AAAA',
    'CAA',
    'CNAME',
    'DNAME',
    'LOC',
    'MX',
    'NAPTR',
    'NS',
    'RP',
    'SRV',
    'SSHFP',
    'TLSA',
    'TXT'
])) {
    $errors[] = lng('error.dns_unknown_type');
}

The application of the regular expression /[^\x20-\x7E]/ completely strips all control characters, including vertical tabs, line breaks, and null bytes, neutralizing the ability to generate a physical line break in BIND's output file. Additionally, the explicit validation of $type against the standard DNS records array prevents attackers from specifying non-standard records or injecting spaces inside the type parameter. Lastly, the patch routes the cleaned domain string through a secondary RFC-compliant domain validation test via Validate::validateDomain(). This ensures that even printable but syntactically illegal DNS characters (such as semicolons and spaces) are rejected before being written to the database.

Exploitation & Attack Path

Exploiting CVE-2026-54543 requires the attacker to hold an authenticated customer account with active privileges to manage DNS entries. This is represented by the database fields isbinddomain == 1 and system-wide setting dnsenabled == 1. The attack is executed over HTTP or HTTPS by interacting with the administrative API or user interface.

An attacker crafts a request targeting the DomainZones.add API command. The payload modifies the record parameter by appending a Carriage Return Line Feed (\r\n) sequence, followed by an instruction to insert a TXT or MX record, and ending with a semicolon (;).

POST /lib/ajax.php?action=add HTTP/1.1
Host: target-panel.local
Content-Type: application/x-www-form-urlencoded
Cookie: froxlor_session=xyz
 
domain_id=12&record=subdomain%0d%0a%09IN%09TXT%09%22vulnerable-proof%22%0d%0a%3b&type=A&content=127.0.0.1

When processed, the resulting configuration file will contain a standard A record definition immediately followed by a new line that BIND parses as a discrete, authoritative TXT record. The trailing semicolon ensures that the original remaining configuration generated by Froxlor is interpreted as a comment, preventing syntax errors that would trigger BIND loading errors and expose the manipulation to system administrators monitoring error logs.

Impact Assessment

The impact of CVE-2026-54543 is categorized as Medium, with a CVSS v3.1 score of 5.4. While the vulnerability requires authentication, the impact is limited to the DNS zones that the authenticated customer has permission to manage. However, within those authorized zones, the integrity of the name resolution service is completely compromised.

An attacker can abuse this flaw to conduct localized domain hijacking. For example, an attacker could inject MX records pointing to an external rogue mail server, allowing them to intercept inbound email transmissions intended for subdomains within the hijacked zone. This facilitates subsequent attacks, such as password resets or credential harvesting.

Additionally, the injection of TXT records allows attackers to generate SPF, DKIM, or DMARC records, or complete domain validation challenges (e.g., ACME certificates, Google Webmaster tools). This allows them to issue valid SSL certificates or authenticate outbound phishing emails as originating from the victim's domain name, significantly elevating the risk of social engineering campaigns.

Detection, Mitigation & Remediation

The standard remediation for this vulnerability is to upgrade the Froxlor installation to version 2.3.8 or above. This version contains the complete fix, restricting the record parameter to printable ASCII and enforcing a strict allowlist on the type parameter.

For deployments where upgrading immediately is not possible, administrators should apply manual code modifications to the file lib/Froxlor/Api/Commands/DomainZones.php. To secure the input vectors, insert the regular expression filter to strip non-printable ASCII and enforce a strict array search check on the $type parameter before any SQL database inserts or updates occur.

Additionally, system administrators can audit existing zone files for indicators of compromise. Run a search across the DNS directories to find anomalous semicolon characters at the end of configuration lines or suspicious whitespace sequences:

grep -rE "^\s*;|;\s*$" /var/lib/froxlor/dns/

Database monitoring can also assist in detecting active exploitation. Examine the query log or execute direct lookups on the panel_dns table to locate any records containing control characters, line breaks, or carriage returns.

Fix Analysis (1)

Technical Appendix

CVSS Score
5.4/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

Affected Systems

Froxlor Server Administration Control Panel prior to 2.3.8

Affected Versions Detail

Product
Affected Versions
Fixed Version
Froxlor
Froxlor
< 2.3.82.3.8
AttributeDetail
CWE IDCWE-74
Attack VectorNetwork
CVSS5.4 (Medium)
EPSSNot Assigned
ImpactDNS manipulation within managed zones
Exploit StatusNone
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1565.002Network Manipulation
Impact
CWE-74
Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

The software constructs an output using input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the interpretation or actions of the downstream component.

Vulnerability Timeline

Security patch commit a4f09f09fa71337b6cdff364d0a641d631a0130a authored
2026-06-05
Official release of Froxlor 2.3.8 containing the security fix
2026-08-18
Disclosure of GHSA-5rw4-4665-cvwf advisory and publication of CVE-2026-54543
2026-08-18

References & Sources

  • [1]Official GitHub Advisory
  • [2]Vulnerability Remediation Commit
  • [3]Froxlor 2.3.8 Release Notes
  • [4]CVE Record Details on CVE.org

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read