Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessFind public page with category-filtered Smart Content
-
DeliveryCraft malicious ?categories= parameter
-
ExploitInject boolean conditions into JCR-SQL2 WHERE
-
ExecutionBlind-enumerate unpublished nodes or force expensive queries
-
ImpactDisclose hidden content / degrade availability
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a publicly reachable Sulu page that renders a Smart Content element with category filtering enabled - this is the specific feature that evaluates the vulnerable |
| Impact | The CVSS 4.0 score of 6.9 (MEDIUM) is credible and, if anything, slightly generous. The vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N with VC:L/VI:N/VA:L accurately reflects an unauthenticated, network-reachable flaw with low confidentiality and low availability impact and no integrity impact - the GHSA advisory explicitly states this JCR-SQL2 sink 'cannot be used to modify data.' No EPSS score, no CISA KEV listing, and no weaponized public exploit are present in the input (the fix commit ships only unit tests demonstrating that injection payloads are neutralized, which is not an attacker-ready POC). The real-world risk is therefore GATED, not universal: exploitation requires that a publicly reachable page actually render a Smart Content block with category filtering enabled - many Sulu deployments may not expose such a block. The dominant realistic impact is blind boolean-based enumeration of content-repository nodes to disclose unpublished pages, plus expensive/malformed queries causing degradation; neither yields RCE or data modification. This is a legitimate but moderate priority: patch on a normal cycle, prioritizing instances confirmed to expose category-filtered Smart Content. |
| Exploit ScenarioDerived | An anonymous visitor finds a public Sulu page rendering a category-filtered Smart Content block and manipulates the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Unauthenticated JCR-SQL2 injection in Sulu CMS 2.6 (before 2.6.25) and 3.0 (before 3.0.8) allows an anonymous visitor to manipulate the content-repository query generated by category-filtered Smart Content blocks, disclosing or enumerating nodes they should not see - including unpublished content - and degrading availability with malformed or expensive query fragments. No authentication, no user interaction, and no configuration beyond a publicly reachable page containing a category-filtered Smart Content element is required, though exploitation is contingent on that deployment-specific feature being exposed. The flaw is fixed in 2.6.25 and 3.0.8 via an integer cast on category, tag, and audience-target-group IDs; no public exploit code has been identified at time of analysis and no EPSS data was supplied, and the impact is confined to read/enumeration and denial-of-service since this path cannot modify repository data.
RemediationAI
Vendor-released patches exist: upgrade to Sulu 2.6.25 or 3.0.8, which apply an integer cast to category, tag, and audience-target-group IDs before they are concatenated into the JCR-SQL2 WHERE clause (commit d19c01487af8c3de2fb3aa145856707a6367392c), eliminating the injection sink; consult the advisory at https://github.com/sulu/sulu/security/advisories/GHSA-jg26-q8hg-3pq4 for the authoritative guidance. If an immediate upgrade is not possible, two workarounds are available and carry different trade-offs: manually backport the same (int) cast in buildCategoriesWhere() (and, defensively, in buildTagsWhere() and buildAudienceTargeting()) in src/Sulu/Component/Content/SmartContent/QueryBuilder.php - low risk but a local fork that must be maintained across future updates - or disable category filtering on every publicly reachable Smart Content element until the patch is applied, which removes the attack surface but degrades the site's editorial functionality for anonymous visitors. Note that restricting or filtering the categories request parameter at the web-server/WAF layer is only a partial mitigation, since the vulnerable value is consumed deep inside the PHP query builder and any bypass of the filter restores the injection; there is no configuration-only fix equivalent to the upstream patch.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Sulu is an open-source PHP content management system built on the Symfony framework that stores page content in a JCR/PHPCR-compliant content repository (Jackalope/Doctrine PHPCR) rather than a conventional relational database. Its Smart Content component lets editors embed dynamic, filtered lists of pages into a template using conditions such as tags, categories, and audience target groups; these conditions are translated into JCR-SQL2 WHERE clauses by src/Sulu/Component/Content/SmartContent/QueryBuilder.php. The root cause is CWE-89 (improper neutralization of special elements used in an SQL/query statement): values reaching buildCategoriesWhere() from the public ?categories= request parameter were only trimmed and then string-concatenated into the clause as page.[property] = <value>, whereas the equivalent tag path already applied numeric validation. The upstream commit d19c01487af8c3de2fb3aa145856707a6367392c closes this by casting the category, tag, and audience-target-group identifiers to (int) before concatenation, and adds a unit test asserting that payloads such as abc') OR 1=1 -- and 5] UNION SELECT collapse to numeric IDs, so no attacker-controlled characters reach the query. Because the sink is a repository query rather than a write operation, the reachable impact is blind boolean-based inference and enumeration of content nodes (read-only) plus query errors and resource exhaustion - integrity on the repository is not affected.
Know when Sulu gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
Unauthenticated network reach via a public query parameter (AV:N/AC:L/PR:N/UI:N); blind read of unpublished nodes gives C:L, no data modification gives I:N, expensive queries give A:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Sulu is an open-source PHP content management system based on the Symfony framework. Prior to 2.6.25 and 3.0.8, the affected Sulu 2.6 and 3.0 release lines have a Smart Content QueryBuilder in src/Sulu/Component/Content/SmartContent/QueryBuilder.php that concatenates category identifiers from the public categories query parameter into a JCR-SQL2 WHERE clause without numeric validation. On a public page containing a category-filtered Smart Content block, an unauthenticated attacker can alter query conditions to infer or enumerate content-repository nodes, including unpublished content, or submit malformed and expensive query fragments that degrade availability; this path does not modify repository data. This issue is fixed in versions 2.6.25 and 3.0.8.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
Broken object-level authorization in Sulu CMS's media move endpoint (prior to 2.6.25 and 3.0.8) allows authenticated bac
In Sulu before versions 1.6.35, 2.0.10, and 2.1.1, when the "Forget password" feature on the login screen is used, Sulu
Sulu is an open-source PHP content management system based on the Symfony framework. Rated high severity (CVSS 8.8), thi
Sulu is a PHP content management system. Rated high severity (CVSS 8.1), this vulnerability is remotely exploitable, low
Sulu is an open-source PHP content management system based on the Symfony framework. Rated high severity (CVSS 7.2), thi
Sulu is a PHP content management system. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, n
The SuluFormBundle adds support for creating dynamic forms in Sulu Admin. Rated medium severity (CVSS 6.1), this vulnera
Stored XSS in Sulu CMS prior to versions 2.6.25 and 3.0.8 allows an authenticated attacker with media upload permissions
Sulu CMS versions prior to 2.6.25 and 3.0.8 allow authenticated admin users to generate or revoke public preview links f
Sulu is a PHP content management system. Rated medium severity (CVSS 5.1), this vulnerability is remotely exploitable, l
Sulu is a highly extensible open-source PHP content management system based on the Symfony framework. Rated medium sever
Sulu is an open-source PHP content management system based on the Symfony framework. Rated medium severity (CVSS 4.8), t
EUVD-2026-85532
GHSA-jg26-q8hg-3pq4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB