CVE-2026-26188: Solspace/craft freeform Cross-Site Scripting Vulnerability
LOWCVE-2026-26188 is a LOW cross-site scripting vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')) affecting Solspace/craft freeform libraries in the Packagist ecosystem. The issue involves freeform craft plugin cp ui (builder/integrations) has stored cross-site scripting (xss) issue. Remediation is available by upgrading affected packages to version 5.14.7.
CVE-2026-26188 at a Glance
How to Fix CVE-2026-26188
To remediate this vulnerability, upgrade all affected Solspace/craft freeform dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade solspace/craft-freeform to 5.14.7
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for solspace/craft-freeform
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-26188, inspect your project dependencies for Solspace/craft freeform:
inspect dependencies for solspace/craft-freeform
Analyze the terminal output to locate any version of Solspace/craft freeform in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 5.14.7), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'), where the product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. In Solspace/craft freeform, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-26188 Affected Solspace/craft freeform Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
solspace/craft-freeform
|
Packagist |
≥ 5.0.0
< 5.14.7
|
5.14.7
|
References
Frequently Asked Questions
What is CVE-2026-26188?
Which Solspace/craft freeform versions are affected?
What version fixes CVE-2026-26188?
Is solspace/craft-freeform affected?
What CWE is associated with CVE-2026-26188?
How can I check Packagist dependencies for CVE-2026-26188?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-jp3q-wwp3-pwv9",
"modified" : "2026-02-13T14:57:31Z",
"published" : "2026-01-22T21:41:14Z",
"aliases" : [ "CVE-2026-26188" ],
"summary" : "Freeform Craft Plugin CP UI (builder/integrations) has Stored Cross-Site Scripting (XSS) issue",
"details" : "**Summary**\nAn authenticated, low-privilege user (able to create/edit forms) can inject arbitrary HTML/JS into the Craft Control Panel (CP) builder and integrations views. User-controlled form labels and integration metadata are rendered with `dangerouslySetInnerHTML` without sanitization, leading to stored XSS that executes when any admin views the builder/integration screens.\n\n**Affected Product**\n- Ecosystem: Packagist (Craft CMS plugin)\n- Package: solspace/craft-freeform\n- Version: <= 5.14.6 (latest observed). Likely all 5.x until patched.\n\n**Details**\n- Root cause: Multiple user-controlled strings (field labels, section labels, integration icons, short names, WYSIWYG previews) are injected into React components using `dangerouslySetInnerHTML` without sanitization.\n- Evidence: `dangerouslySetInnerHTML` on user-controlled properties in bundled CP JS at [packages/plugin/src/Resources/js/client/client.js](packages/plugin/src/Resources/js/client/client.js#L1).\n\n**PoCs**\n- Label-based XSS:\n 1. In Craft CP, create/edit a Freeform field and set its label to `<img src=x onerror=\"alert('xss-label')\">`.\n 2. Open the form builder view containing the field.\n 3. Alert executes (stored XSS).\n- Integration icon SVG:\n 1. Set an integration \"icon SVG\" to `<svg><script>alert('xss-icon')</script></svg>`.\n 2. Open the integrations CP view.\n 3. Script executes.\n\n**Impact**\nArbitrary JS in admin CP; session/CSRF token theft; potential full admin takeover via DOM-driven actions.\n\n**Remediation**\n- Sanitize/HTML-encode all user-controlled strings before passing to `dangerouslySetInnerHTML`, or avoid it for labels/titles/icons.\n- Server-side: strip/escape disallowed tags on save for fields, integration metadata, WYSIWYG content.\n- Add regression tests with `<img onerror>` payloads to ensure no execution in builder/integration views.\n\n**Workarounds**\n- Restrict form-edit permissions to trusted admins only until patched.\n- Consider CSP that disallows inline scripts (defense-in-depth only).\n\n**Credits**\n- Discovered by https://www.linkedin.com/in/praveenkavinda/ | Prav33N-Sec.",
"severity" : [ {
"type" : "CVSS_V4",
"score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:P"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Packagist",
"name" : "solspace/craft-freeform"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "5.0.0"
}, {
"fixed" : "5.14.7"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 5.14.6"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/solspace/craft-freeform/security/advisories/GHSA-jp3q-wwp3-pwv9"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-26188"
}, {
"type" : "WEB",
"url" : "https://github.com/solspace/craft-freeform/commit/b9adad6cdf1eba5400aae8b1ae39bd7d4d33af5e"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/solspace/craft-freeform"
}, {
"type" : "WEB",
"url" : "https://github.com/solspace/craft-freeform/releases/tag/v5.14.7"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-79" ],
"severity" : "LOW",
"github_reviewed" : true,
"github_reviewed_at" : "2026-01-22T21:41:14Z",
"nvd_published_at" : "2026-02-12T23:16:09Z"
}
}