Description
A host header injection vulnerability in picocms/Pico through 2.1.4 allows an unauthenticated remote attacker to control the origin of JavaScript and CSS assets loaded by the default theme. When base_url is unset (the default), Pico::getBaseUrl in lib/Pico.php builds the base URL from unvalidated Host, X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port request headers.
Published: 2026-08-10
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A host header injection flaw in Pico versions up to 2.1.4 lets an unauthenticated attacker manipulate the base URL constructed by Pico when the base_url setting is unset. By sending crafted Host, X‑Forwarded‑Host, X‑Forwarded‑Proto, or X‑Forwarded‑Port headers, the attacker can force the application to build an external base URL that is then used for theme, asset, and plugin URLs. As a result the site’s theme will load JavaScript and CSS from a domain under the attacker’s control, enabling arbitrary script or style injection and raising the possibility of cross‑site scripting, phishing, or even remote code execution in visitors’ browsers.

Affected Systems

picocms Pico, versions up to and including 2.1.4, where the base_url configuration is not set. The vulnerability is present in all installations that use the default configuration and rely on host header information to build URLs.

Risk and Exploitability

The CVSS score of 6.1 indicates a moderate impact with potential high consequences if combined with other flaws. EPSS is not available and the vulnerability is not listed in the CISA KEV catalog, suggesting no known large‑scale exploitation yet. The likely attack vector is remote HTTP request header manipulation, requiring the attacker to control the Host header of a request to the target server. An unauthenticated attacker can exploit this by sending a crafted request to any public URL that the Pico site serves, causing browsers visiting the site to load resources from the attacker‑controlled domain.

Generated by OpenCVE AI on August 10, 2026 at 20:17 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Pico to version 2.1.5 or later where host header sanitization is implemented
  • Configure base_url to a fixed, trusted value to bypass dynamic URL generation
  • If upgrade is not immediately possible, disable or filter X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port headers in the web server configuration

Generated by OpenCVE AI on August 10, 2026 at 20:17 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 11 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
First Time appeared Picocms
Picocms pico
Vendors & Products Picocms
Picocms pico

Mon, 10 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 10 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description A host header injection vulnerability in picocms/Pico through 2.1.4 allows an unauthenticated remote attacker to control the origin of JavaScript and CSS assets loaded by the default theme. When base_url is unset (the default), Pico::getBaseUrl() in lib/Pico.php builds the base URL from unvalidated Host, X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port request headers. The resulting URL propagates to theme_url, assets_url, and plugins_url, causing script and stylesheet tags to load resources from an attacker-controlled domain. A host header injection vulnerability in picocms/Pico through 2.1.4 allows an unauthenticated remote attacker to control the origin of JavaScript and CSS assets loaded by the default theme. When base_url is unset (the default), Pico::getBaseUrl in lib/Pico.php builds the base URL from unvalidated Host, X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port request headers.

Mon, 10 Aug 2026 11:00:00 +0000

Type Values Removed Values Added
Description A host header injection vulnerability in picocms/Pico through 2.1.4 allows an unauthenticated remote attacker to control the origin of JavaScript and CSS assets loaded by the default theme. When base_url is unset (the default), Pico::getBaseUrl() in lib/Pico.php builds the base URL from unvalidated Host, X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port request headers. The resulting URL propagates to theme_url, assets_url, and plugins_url, causing script and stylesheet tags to load resources from an attacker-controlled domain.
Title picocms Pico - Host Header Injection Enables Script Source Hijacking
Weaknesses CWE-644
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-10T18:22:51.259Z

Reserved: 2026-08-10T10:32:53.854Z

Link: CVE-2026-72574

cve-icon Vulnrichment

Updated: 2026-08-10T15:52:51.823Z

cve-icon NVD

Status : Received

Published: 2026-08-10T11:17:30.137

Modified: 2026-08-10T19:17:32.783

Link: CVE-2026-72574

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-11T14:24:48Z

Weaknesses
  • CWE-644

    Improper Neutralization of HTTP Headers for Scripting Syntax