Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from Vendor (drupal) · only source for this CVE.
CVSS VectorVendor: drupal
Lifecycle Timeline
3DescriptionCVE.org
Simple Hierarchical Select (SHS) for Drupal 7 contains cross-site scripting risk due to improper output escaping of term-derived text. Confirmed affected paths include field formatter output (shs_field_formatter_view) and term-tree child-term data generation (shs_term_get_children). Malicious taxonomy term names can be rendered unsafely depending on output context. This affects versions from 7.x-1.0 through (and including) 7.x-1.10.
AnalysisAI
Stored cross-site scripting in the Simple Hierarchical Select (SHS) module for Drupal 7 (versions 7.x-1.0 through 7.x-1.10) enables authenticated attackers with taxonomy term editing privileges to inject malicious scripts via unsanitized term names. Two distinct code paths are confirmed vulnerable: field formatter output rendered by shs_field_formatter_view and term-tree child data generated by shs_term_get_children, both of which fail to apply proper output escaping before HTML rendering. No public exploit is identified at time of analysis and no CISA KEV listing exists, but the network-accessible attack vector combined with Drupal 7's end-of-life status substantially elevates residual risk for unpatched deployments.
Technical ContextAI
Simple Hierarchical Select is a Drupal 7 contributed module that renders taxonomy term hierarchies as cascading select widgets for content authoring interfaces. The vulnerability originates in two functions: shs_field_formatter_view, which renders taxonomy-derived field output directly into HTML context, and shs_term_get_children, which generates JSON or markup payloads for populating child term selectors in the widget tree. Both functions accept taxonomy term name strings - which may be user-controlled - and emit them into HTML or JavaScript contexts without calling Drupal 7's check_plain(), filter_xss(), or equivalent sanitization APIs. No CWE was formally assigned in the source data, but the root cause class aligns with CWE-79 (Improper Neutralization of Input During Web Page Generation). No CPE strings were provided in the source data. The module operates within the Drupal 7 ecosystem, which reached official end-of-life in November 2023, meaning security updates must come from third-party extended support providers such as Tag1 Consulting or HeroDevs.
RemediationAI
No specific patched version number was identified in the available source data; the Tag1 advisory at https://d7es.tag1.com/security-advisories/simple-hierarchical-select-moderately-critical-cross-site-scripting should be consulted directly for the recommended upgrade target. Organizations running Drupal 7 without a commercial extended support subscription (Tag1 D7ES or HeroDevs NES) have no official patch pathway and should prioritize enrolling in one of these programs or migrating to a supported Drupal version. As an immediate compensating control, restrict the 'administer taxonomy' and 'edit terms' permissions exclusively to fully trusted administrator roles - this directly eliminates the PR:L attack surface by preventing untrusted users from seeding malicious term names, though it imposes workflow constraints on sites that rely on delegated taxonomy editing. A secondary control is deploying WAF rules to inspect and block common XSS payloads in taxonomy term submission endpoints; note this has limited efficacy against obfuscated or encoded payloads and should not substitute for patching. Disabling the SHS module entirely removes the vulnerable rendering paths (shs_field_formatter_view and shs_term_get_children) at the cost of losing the hierarchical select widget functionality.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-31381
GHSA-w38v-4c3f-mg76