Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Network-reachable without authentication but AC:H because exploitation requires specific misconfigured or absent proxy stripping of forwarding headers; low C/I impact as effect is security control bypass, not direct data access.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
CodeIgniter is a PHP full-stack web framework. In versions prior to 4.7.4, IncomingRequest::isSecure() trusted the X-Forwarded-Proto and Front-End-Https headers from any incoming request, allowing an attacker could spoof these headers and cause the application to incorrectly treat an HTTP request as secure. This may have impacted applications that rely on isSecure(), force_https(), forceGlobalSecureRequests, or similar logic to enforce HTTPS-only access or make security-sensitive decisions. Exploitability depends on deployment configuration. Applications are most exposed if the backend is reachable directly over HTTP, or if a reverse proxy/load balancer forwards client-supplied forwarding headers without stripping or overwriting them. This issue has been fixed in version 4.7.4.
AnalysisAI
HTTP security header spoofing in CodeIgniter4 prior to 4.7.4 allows remote unauthenticated attackers to trick the framework into treating plain HTTP requests as HTTPS by injecting forged X-Forwarded-Proto or Front-End-Https headers. The root cause is that IncomingRequest::isSecure() unconditionally trusted these headers from any source rather than restricting trust to configured trusted proxies, undermining isSecure(), force_https(), and forceGlobalSecureRequests enforcement logic. No public exploit or CISA KEV listing exists; real-world impact is conditioned on deployment topology and CVSS AC:H reflects this complexity.
Technical ContextAI
CWE-348 (Use of Less Trusted Source) describes exactly this flaw: the framework accepted security-sensitive HTTP headers from an untrusted, client-controlled source without validating the origin. The affected component is IncomingRequest::isSecure() in system/HTTP/IncomingRequest.php, which examined X-Forwarded-Proto and Front-End-Https to determine protocol security. These headers are standard reverse-proxy forwarding conventions, but they must only be trusted when the immediate upstream sender is a known, configured proxy - not arbitrary clients. The fix (commit ecbf044) gates all forwarding header trust on a new isFromTrustedProxy() method, which validates REMOTE_ADDR against the Config\App::$proxyIPs allowlist using a refactored checkIPAgainstProxy() helper supporting both IPv4 and IPv6 CIDR ranges. Affected CPE: cpe:2.3:a:codeigniter4:codeigniter4:*:*:*:*:*:*:*:*.
RemediationAI
Upgrade to CodeIgniter4 version 4.7.4, confirmed by the tagged release at https://github.com/codeigniter4/CodeIgniter4/releases/tag/v4.7.4 and the fixing commit at https://github.com/codeigniter4/CodeIgniter4/commit/ecbf044666bed41d23f07518096d9843fe6c08b0. After upgrading, ensure Config\App::$proxyIPs is explicitly configured with the IP addresses or CIDR ranges of all trusted reverse proxies; the patched isFromTrustedProxy() returns false when this list is empty, meaning forwarding headers will be ignored by default even on upgraded versions if $proxyIPs is unconfigured. As an immediate compensating control before patching, configure the reverse proxy or load balancer to unconditionally strip and rewrite X-Forwarded-Proto and Front-End-Https headers before forwarding to the backend - this prevents client-supplied values from reaching the application regardless of framework behavior. If the backend is exposed directly over HTTP with no proxy layer, restrict network access via firewall rules to prevent unauthenticated direct connections to the HTTP port.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
Same weakness CWE-348 – Use of Less Trusted Source
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51396
GHSA-7wmf-pw8j-mc78