CVE-2026-56785: FlatPress Stored XSS in Comment and Contact Forms (CVSS 8.2)
FlatPress, a lightweight blogging platform, contains a stored cross-site scripting (XSS) vulnerability in its comment and contact forms. Attackers can inject malicious scripts through name, email, or URL fields that are then displayed to other users—including administrators—without being properly sanitized. When visitors view these forms or comments, the injected scripts execute in their browsers, potentially allowing attackers to steal session tokens, redirect users to phishing sites, or perform actions on behalf of administrators.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.2 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-23 / 2026-06-25
NVD description (verbatim)
FlatPress contains a stored cross-site scripting vulnerability in comment and contact forms where name, URL, and email fields are rendered without proper output encoding in Smarty templates. Attackers can inject arbitrary HTML and JavaScript through these fields to execute malicious scripts in browsers of viewers including administrators, or bypass URL scheme validation to inject javascript: or data: URIs.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability stems from improper output encoding in FlatPress Smarty templates when rendering user-supplied input from comment and contact form fields (name, URL, email). The application fails to apply HTML entity encoding or context-aware escaping before inserting these values into the template output. Additionally, URL scheme validation is insufficient, permitting attackers to inject javascript: and data: URI schemes that bypass intended restrictions. Because the payload is stored in the application's data store and rendered on subsequent page views, this is a stored (persistent) XSS vulnerability affecting all users who view the affected content.
Business impact
Administrators and regular users who view comments or contact form submissions containing injected payloads become vulnerable to account hijacking, credential theft, or unauthorized administrative actions. In a multi-user blogging scenario, a single attacker can compromise the security posture of the entire platform by injecting malicious content that persists and affects every subsequent visitor. For FlatPress deployments hosting content for organizations, this creates reputational risk and potential data loss or unauthorized modifications to published content.
Affected systems
FlatPress installations are affected. The vulnerability exists in comment and contact form processing across all versions that render these forms via Smarty templates without proper output encoding. Organizations running FlatPress should check their deployment version against vendor security advisories to confirm applicability and identify patched versions.
Exploitability
Exploitation requires only network access and no authentication—any unauthenticated user can submit a comment or contact form with malicious payloads. The attack requires user interaction (UI:R) in the form of a victim viewing the infected content, but this is trivial in a public blog or contact form scenario where administrators routinely review submissions. The attack scope is changed (S:C), meaning the impact extends beyond the security scope of the vulnerable component to affect other users and the application itself. Overall, this is relatively straightforward to exploit with high confidence of success.
Remediation
Apply the latest security patch from the FlatPress project, which addresses output encoding in affected Smarty templates. Verify patch application by reviewing the form rendering code to confirm that all user-supplied input from name, email, and URL fields is properly HTML-encoded before display. As a temporary compensating control, restrict comment submission to authenticated users only or enable comment moderation to review content before publication. Consider implementing a Content Security Policy (CSP) header to mitigate XSS impact.
Patch guidance
Check the FlatPress project repository or official advisory for the patched version addressing CVE-2026-56785. Apply the update to all affected instances. After patching, verify that existing stored XSS payloads in the database do not execute by clearing or re-encoding stored comment data if necessary. Test comment and contact form submission with special characters and script tags to confirm proper encoding in rendered output.
Detection guidance
Monitor web server logs and application logs for contact form and comment submissions containing suspicious patterns such as <script>, javascript:, data:, onerror=, onclick=, and other event handler attributes. Review recent comments and contact form entries for HTML or script injection attempts. In the application database, search stored comment and contact form records for encoded or unencoded script tags. If using a WAF, enable rules to detect and block XSS payloads in form submissions. Check browser developer consoles in administrative interfaces for unexpected script execution or errors.
Why prioritize this
With a CVSS 3.1 score of 8.2 (HIGH), this vulnerability combines high confidentiality impact, low integrity impact, changed scope, and trivial exploitability with no authentication requirement. Although it requires user interaction, the likelihood of a blog administrator or comment viewer interacting with the payload is very high, making this a practical and damaging attack. The stored nature of the XSS means a single injection can compromise multiple users over time. Organizations should prioritize patching within their standard patch cycle.
Risk score, explained
The CVSS 3.1 score of 8.2 reflects a high-severity vulnerability due to network accessibility (AV:N), low attack complexity (AC:L), no privilege requirements (PR:N), and changed scope (S:C) that affects not just the vulnerable component but other security functions and users. While confidentiality is rated high (C:H)—reflecting session hijacking and credential theft risks—integrity is only low (I:L) and availability is not impacted (A:N). The requirement for user interaction (UI:R) prevents a perfect score, but the realism of that interaction in a blogging platform keeps the risk high.
Frequently asked questions
Can an attacker execute JavaScript without user interaction?
No. The vulnerability requires a victim (administrator or commenter viewer) to visit the page containing the injected payload. However, in a public blog or active contact form, this interaction is virtually guaranteed—administrators routinely review comments and submissions, making the practical barrier to exploitation very low.
Does patching remove existing malicious payloads from the database?
Patching the code prevents new XSS injection but does not automatically clean existing stored payloads. You should review and sanitize stored comment data after patching, or implement a data migration script to re-encode stored strings. Verify your backup and recovery procedures before attempting bulk data changes.
Can a WAF prevent this vulnerability?
A Web Application Firewall with XSS detection rules can block many injection attempts at the network layer, but it is not a substitute for code-level fixes. WAF rules may be bypassed with encoding obfuscation, and false negatives are possible. Implement WAF rules as a compensating control only until patches are deployed.
What is the difference between this stored XSS and reflected XSS?
Stored XSS persists in the application database and affects all users who view the compromised content. Reflected XSS is triggered only when a user clicks a malicious link and requires the attacker to trick someone into clicking. Stored XSS is generally more dangerous because the payload is permanent and requires no user deception beyond normal site usage.
This analysis is provided for informational purposes and based on the CVE record published on 2026-06-23 (modified 2026-06-25). Specific patch version numbers, affected product versions, and vendor advisories should be verified directly with the FlatPress project security documentation. Organizations are responsible for assessing their own FlatPress deployments and applying appropriate patches and mitigations. No proof-of-concept code or weaponization instructions are provided. Always test patches in a non-production environment before deploying to production systems. Source: NVD (public-domain), retrieved 2026-07-29. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20066HIGHWordPress CP Polls 1.0.8 Persistent XSS Vulnerability
- CVE-2016-20084HIGHWordPress Appointment-Booking-Calendar Unauthenticated XSS and Privilege Escalation
- CVE-2023-33999HIGHDOM-Based XSS in WP Mail Log Plugin – Analysis & Remediation
- CVE-2023-45795HIGHXSS in Pilz PASvisu Builder Component – Patch Guidance
- CVE-2023-45796HIGHStored XSS in Pilz PASvisu & PMI Industrial Software – Remediation Guide
- CVE-2023-54351HIGHStored XSS in WordPress Sonaar Music Plugin 4.7 – Patch & Detection Guide
- CVE-2025-11262HIGHLink Whisper Free Stored XSS Vulnerability – Analysis & Patch Guidance
- CVE-2025-14773HIGHABB T-MAC Plus XSS Vulnerability – HIGH Risk Assessment