Skip to main content
HDWSec
Medium SS-2026-005

Silverstripe Userforms: Stored Cross-Site Scripting in the Required-Field Label

Severity
Medium
CVSS score
4.4CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N
CVE number(s)
SS-2026-005
Vendor
Silverstripe
Product
Silverstripe Userforms (silverstripe/userforms, code/Model/EditableFormField.php - updateFormField())
Affected version(s)
silverstripe/userforms 7.1.3 and earlier
Fixed version(s)
7.1.4, released 2026-10-28
Vulnerability type
Stored Cross-site Scripting (CWE-79) through an author-controlled field title cast to raw HTML
Researchers
Jean-Jamil KHALIFÉ

Presentation

Silverstripe CMS is an open-source PHP content management system developed by Silverstripe Ltd. Its official Userforms module, silverstripe/userforms, lets CMS authors build public forms from the back office by adding fields and setting their titles. A configuration option, UserDefinedForm.required_identifier, appends a marker such as * to the label of every required field.

HDW Sec found that when this marker is configured, the author-controlled field title was concatenated with it and cast to raw HTML, so any markup in the title was rendered unescaped on the public form and executed for every visitor.

Issue(s)

  • EditableFormField::updateFormField() (code/Model/EditableFormField.php) builds the label of a required field as the field title followed by a <span class='required-identifier'> element, then passes the whole string through DBField::create_field('HTMLText', ...). A form field title is normally escaped when rendered; this branch re-casts it to DBHTMLText, so the title is emitted raw.
  • Reproduced live on a self-hosted lab running silverstripe/userforms 7.1.1 with required_identifier set to *: a required text field whose title is <img src=x onerror=...> produces a front-end field whose title is a DBHTMLText rendered without escaping, and the payload fires on the published form.
  • The script runs for anonymous visitors of the form and for any administrator who opens it, which crosses the author to visitor and author to administrator trust boundary.
  • The vulnerable branch only runs when required_identifier is configured, which is not the default. Sites that display a required-field marker, a common accessibility choice, are affected.
  • Affected versions: silverstripe/userforms before 7.1.4. The vendor rated the issue medium, 4.4.

References

  • Vendor advisory: SS-2026-005, published 2026-10-28.
  • No CVE yet: Silverstripe published under its own identifier while CVE assignment is pending, and has requested one.
  • Fixed in silverstripe/userforms 7.1.4.

Our R&D hunts for vulnerabilities.

Zero-day research, reverse engineering, coordinated disclosure: discover our R&D team.