Froxlor DomainZones.add allows DNS zone-file RR injection via record/type fields
Froxlor's DomainZones.add API command accepts user-controlled DNS record and type values and later writes them into generated BIND zone files without rejecting line delimiters, tab characters, or zone-file comment delimiters.
The stronger variant is in record. An authenticated customer with DNS-zone permissions can submit a normal A record request where record is:
www\t60\tIN\tA\t6.6.6.6 ;\n@
with type=A and content=127.0.0.1. The current record flow trims/lower-cases/IDNA-encodes the value, but does not reject CR/LF/HTAB or semicolon. The real Froxlor\Dns\DnsEntry::__toString() sink renders it as:
www 60 in a 6.6.6.6 ; @ 18000 IN A 127.0.0.1
BIND accepts the generated zone file:
named-checkzone example.com froxlor_dns_record_injected.zone zone example.com/IN: loaded serial 2026060501 OK
named-compilezone -D confirms both records are parsed as real DNS RRs:
example.com. 18000 IN A 127.0.0.1 www.example.com. 60 IN A 6.6.6.6 zone example.com/IN: loaded serial 2026060501 OK
Affected code in 2.3.7:
- lib/Froxlor/Api/Commands/DomainZones.php:92-93 reads record/type from API params.
- lib/Froxlor/Api/Commands/DomainZones.php:122-136 trims/lower-cases/IDNA-encodes record without control-character rejection.
- lib/Froxlor/Api/Commands/DomainZones.php:157-160 hardens content only.
- lib/Froxlor/Api/Commands/DomainZones.php:314-321 and 347-357 store record/type/content into domain_dns_entries.
- lib/Froxlor/Dns/Dns.php:297 passes stored values to DnsEntry.
- lib/Froxlor/Dns/DnsEntry.php:83 concatenates record/type/content into a zone-file line.
There is also a related type-field variant because type is not allowlisted and domain_dns_entries.type is varchar(10). The value NS\tns.\n@\tA renders one submitted entry as multiple zone-file records.
Impact: authenticated customer with DNS-zone permissions can inject additional BIND resource-record lines into the generated zone file for a domain they can manage in Froxlor, bypassing Froxlor's DNS field-level validation. This is DNS zone integrity loss and possible DNS availability impact inside the caller's manageable zone.
Suggested remediation: allowlist DNS RR types, reject CR/LF/HTAB/control chars/spaces/semicolon in record and type, validate record as a DNS owner name while allowing intended cases such as @, *, *.label, _service._proto, _dmarc, and DKIM selectors. Add defense-in-depth in DnsEntry or the DNS serializer so CR/LF cannot reach generated zone lines.
Attribution: Yaohui Wang.
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Composer-Paket | froxlor/froxlor | < 2.3.8 | 2.3.8 |
Verweise
- CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L- Schwäche (CWE)
CWE-20, CWE-74- Plattform
- Composer
- Paket
froxlor/froxlor- Veröffentlicht
- 18.08.2026
- Aktualisiert
- 11.10.2026 10:22
Quellen und Lizenzen
OSV / GitHub Advisory Database - GHSA-5rw4-4665-cvwf - CC BY 4.0
Schwachstellenhistorie: froxlor/froxlor
Alle veröffentlichten Schwachstellen dieses Pakets (Composer-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
- Einträge insgesamt
- 60
- Erste → letzte
- 04.2022 08.2026
- Ohne Fix
- 3
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Kritisch 12
- Hoch 21
- Mittel 26
- Niedrig 1
Veröffentlichungen pro Jahr
- 2022: 15
- 2023: 20
- 2024: 3
- 2025: 2
- 2026: 20
-
Froxlor DomainZones.add allows DNS zone-file RR injection via record/type fields dieser Eintrag
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.