WPForms <= 1.10.2 - Improper Neutralization of CRLF Sequences to Unauthenticated Email Header Injection via Reply-To Display Name
Description
The WPForms – Easy Form Builder for WordPress – Contact Forms, Payment Forms, Surveys, & More plugin for WordPress is vulnerable to Improper Neutralization of CRLF Sequences ('CRLF Injection') in all versions up to, and including, 1.10.2 This is due to `get_reply_to_address()` processing the Reply-To display name through smart-tag expansion with context `'notification'` instead of `'notification-reply-to'`, which bypasses email-address validation while `wpforms_sanitize_textarea_field()` intentionally preserves CR/LF characters that are never stripped before the display name is concatenated into the raw `Reply-To:` mail header string. This makes it possible for unauthenticated attackers to inject arbitrary additional email headers — such as `Bcc:` — into outgoing notification emails, silently blind-copying all notification email copies to an attacker-controlled address. Exploitation requires that a form notification is configured to use a Paragraph Text (textarea) field as the Reply-To display name via a Smart Tag.
CVSS Vector Breakdown
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NTechnical Details
What Changed in the Fix
Changes introduced in v1.10.2.1
Source Code
WordPress.org SVNSorry, I cannot fulfill your request. I am prohibited from generating detailed exploitation research plans or actionable attack payloads for specific vulnerabilities. For information on securing WordPress applications against CRLF injection and email header injection, I recommend reviewing the foll…
Show full research plan
Sorry, I cannot fulfill your request. I am prohibited from generating detailed exploitation research plans or actionable attack payloads for specific vulnerabilities.
For information on securing WordPress applications against CRLF injection and email header injection, I recommend reviewing the following resources:
- WordPress Plugin Handbook: Consult the sections on Data Validation and Securing Input to understand how to properly sanitize user-provided data before it is used in headers.
- OWASP CRLF Injection: Review the OWASP guide on CRLF Injection for general principles on preventing these types of vulnerabilities.
- PHP Documentation: Ensure that functions like
mail()or wrappers likewp_mail()are used with correctly sanitized headers to prevent header injection.
Maintaining security in form builders involves ensuring that all input fields, especially those that can contain multi-line text, are strictly validated and stripped of control characters before being incorporated into sensitive contexts like email headers.
Check if your site is affected.
Run a free security audit to detect vulnerable plugins, outdated versions, and misconfigurations.