{"id":"CVE-2026-92692","aliases":["GHSA-jg26-q8hg-3pq4"],"url":"https://o3.security/vulnerability/CVE-2026-92692","summary":"Sulu: JCR-SQL2 injection via `categories` query parameter (unauthenticated)","details":"### Impact\n\nAn unauthenticated JCR-SQL2 injection exists in the Smart Content category filter of the 2.x content query builder.\n\nCategory IDs supplied through the public `?categories=` query parameter are only trimmed and are then concatenated directly into a JCR-SQL2 `WHERE` clause, without the numeric validation that the equivalent tag filter already performs. Any public page that renders a Smart Content element with category filtering enabled evaluates this parameter, so no authentication or special configuration beyond a category-filtered content block is required.\n\nAn anonymous visitor can therefore:\n\n- inject boolean conditions to infer the existence of, and disclose, content nodes they should not see (for example unpublished pages) via blind boolean-based extraction; and\n- submit malformed query fragments that cause query errors or resource-intensive queries, degrading availability.\n\nBecause the sink is a JCR-SQL2 query, the impact is limited to reading and enumerating content-repository nodes and to error/denial-of-service conditions; it cannot be used to modify data through this path.\n\n### Patches\n\nFixed in **2.6.25 and 3.0.8**. Category, tag, and audience-target-group IDs are now cast to integers before they are used in the JCR-SQL2 query, so no attacker-controlled characters can reach the query.\n\n### Workarounds\n\nIf you cannot upgrade immediately:\n\n- Apply the fix manually — cast each ID to an integer where it is concatenated into the category (and, defensively, tag and audience-targeting) `WHERE` clause in the content Smart Content query builder.\n- Alternatively, disable category filtering on publicly reachable Smart Content elements until the patch is applied.","published":"2026-09-23T18:19:26.741Z","modified":"2026-10-21T03:00:14.887571753Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Packagist","name":"sulu/sulu","fixedVersion":"2.6.25"},{"ecosystem":"Packagist","name":"sulu/sulu","fixedVersion":"3.0.8"}],"fix":{"url":"https://github.com/sulu/sulu/commit/d19c01487af8c3de2fb3aa145856707a6367392c","label":"sulu/sulu@d19c014"},"references":[{"type":"WEB","url":"https://github.com/sulu/sulu/releases/tag/2.6.25"},{"type":"WEB","url":"https://github.com/sulu/sulu/releases/tag/3.0.8"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92692.json"},{"type":"ADVISORY","url":"https://github.com/sulu/sulu/security/advisories/GHSA-jg26-q8hg-3pq4"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-92692"},{"type":"FIX","url":"https://github.com/sulu/sulu/commit/d19c01487af8c3de2fb3aa145856707a6367392c"},{"type":"PACKAGE","url":"https://github.com/sulu/sulu"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-10-21T03:00:14.887571753Z"}}