Skip to main content

Pico CMS EUVDEUVD-2026-55232

| CVE-2026-72574 MEDIUM
Improper Neutralization of HTTP Headers for Scripting Syntax (CWE-644)
2026-08-10 TuranSec GHSA-563g-2g6p-xmpf
6.1
CVSS 3.1 · Vendor: TuranSec
Share

Severity by source

Vendor (TuranSec) PRIMARY
6.1 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
vuln.today AI
6.1 MEDIUM

Network-reachable via crafted HTTP headers, no credentials required (PR:N), but a victim must render the page (UI:R); injected scripts execute in the browser security context, warranting S:C with low C and I impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (TuranSec).

CVSS VectorVendor: TuranSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Aug 10, 2026 - 12:17 EUVD
Analysis Generated
Aug 10, 2026 - 11:30 vuln.today

DescriptionCVE.org

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.

AnalysisAI

Host header injection in picocms/Pico through 2.1.4 allows unauthenticated remote attackers to substitute an attacker-controlled domain as the base URL for all JavaScript and CSS assets loaded by the default theme. Because Pico::getBaseUrl() in lib/Pico.php trusts unvalidated Host, X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port headers when base_url is not explicitly configured, the derived URL propagates unchecked into theme_url, assets_url, and plugins_url, causing every page rendered by the default theme to fetch scripts and stylesheets from the attacker's server. No public exploit is identified at time of analysis; exploitation requires a victim to load a Pico-generated page in a browser.

Technical ContextAI

Pico is a flat-file CMS written in PHP. The vulnerable logic resides in Pico::getBaseUrl() within lib/Pico.php (https://github.com/picocms/Pico/blob/master/lib/Pico.php), which constructs the application's base URL by reading HTTP request headers when the base_url directive is absent from config/config.yml - the default shipping state. The derived URL is then assigned to the internal theme_url, assets_url, and plugins_url variables, which are consumed directly by the default Twig theme to emit <script> and <link rel='stylesheet'> tags. CWE-644 (Improper Neutralization of HTTP Headers for Scripting Syntax) identifies the root cause class: header values intended only for routing are incorporated into HTML output without sanitization, enabling external resource injection. The CPE string cpe:2.3:a:picocms:pico:*:*:*:*:*:*:*:* covers all tracked versions, consistent with the through-2.1.4 range stated in the CVE description.

RemediationAI

No vendor-released patched version is confirmed in the available data; the provided references point only to the Pico homepage (https://picocms.org) and the GitHub repository (https://github.com/picocms/Pico) without identifying a specific fixed release - administrators should monitor the repository for a tagged release addressing this issue. As an immediate and fully effective workaround, explicitly set base_url to a hardcoded absolute URL in config/config.yml (for example, base_url: https://example.com) - this bypasses the header-based URL construction entirely and has no functional side effects. For deployments behind a reverse proxy or CDN, configure the proxy to strip and rewrite the X-Forwarded-Host, X-Forwarded-Proto, and X-Forwarded-Port headers from incoming client requests before they reach Pico, preventing header injection regardless of Pico configuration; note that stripping X-Forwarded-Host may affect other applications on the same proxy that rely on it for canonical URL resolution. Setting base_url explicitly in configuration is recommended as a permanent hardening measure even after a patch is released.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

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

CVE-2012-1823 CRITICAL POC
9.8 May 11

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

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

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

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

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

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

Share

EUVD-2026-55232 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy