Executive brief
HestiaCP, an open-source control panel for managing web servers, contains a security flaw that allows attackers to hide their true identity. By sending a specially crafted web request, an attacker can trick the system into believing they are connecting from a different, trusted location. This allows them to bypass security blocks like brute-force protection, evade IP-based access restrictions, and manipulate security logs to hide their activity.
Technical details
HestiaCP's login handler and session tracking components trust the 'CF-Connecting-IP' HTTP header without verifying that the request actually originated from Cloudflare's network. The software only performs a basic syntax check on the header value using 'FILTER_VALIDATE_IP'. Because the Nginx configuration passes all client headers to the PHP-FPM backend, an unauthenticated remote attacker connecting directly to the control panel (typically on port 8083) can provide any IP address. This can be used to circumvent fail2ban brute-force protections, bypass per-user IP allowlists, and poison authentication audit logs. The issue is addressed in the main branch by centralizing IP detection and validating that the peer IP belongs to a known Cloudflare range before honoring the header.
Affected products
- HestiaCP Hestia Control Panel (HestiaCP) 1.2.0 through 1.9.4
Timeline
- 2026-01-16: disclosed: Initial notification sent to vendor.
- 2026-03-24: patched: Fix merged into main branch via Pull Request #5273.
- 2026-05-19: advisory: Public disclosure by Mercury ISS.
References
- https://github.com/hestiacp/hestiacp/commit/f381e294500f671cf12716c638afd0bfde901f88
- https://github.com/hestiacp/hestiacp/issues/5229
- https://github.com/hestiacp/hestiacp/pull/5273
- https://mercuryiss.com.au/hestiacp-unauthenticated-rce-ip-spoofing-cve-2026-43633-cve-2026-43634
- https://www.vulncheck.com/advisories/hestiacp-ip-spoofing-via-cf-connecting-ip-header