{"api_version":"1","generated_at":"2026-10-21T14:21:48+00:00","cve":"CVE-2026-103482","urls":{"html":"https://cve.report/CVE-2026-103482","api":"https://cve.report/api/cve/CVE-2026-103482.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-103482","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-103482"},"summary":{"title":"Simple Newsletter Plugin <= 4.3.10 - Unauthenticated Stored Cross-Site Scripting via Subscriber Custom Field via Manage Preferences Form + Campaign Preview noptin_key Pivot","description":"The Simple Newsletter Plugin – Noptin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'noptin_fields[<custom_field_merge_tag>] (e.g. first_name)' parameter in all versions up to, and including, 4.3.10 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The attack chain requires a published campaign post whose body contains a [[subscriber.*]] merge tag; the unauthenticated attacker first POSTs the entity-encoded payload to the public manage_preferences form (which issues its own nonce on the same page), then pivots execution by embedding their confirm_key in a campaign preview URL sent to a privileged user via social engineering.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-10-10 06:16:36","updated_at":"2026-10-13 13:30:21"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":[{"version":"3.1","source":"security@wordfence.com","type":"Secondary","score":"5.4","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","baseScore":5.4,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"5.4","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","data":{"baseScore":5.4,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e5f8afa3-f20c-4dfb-bcc6-2682f68723ca?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e5f8afa3-f20c-4dfb-bcc6-2682f68723ca?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L361","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L361","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/Manage_Preferences.php#L255","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/Manage_Preferences.php#L255","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/hizzle-co/noptin/compare/4.3.10...4.4.0","name":"https://github.com/hizzle-co/noptin/compare/4.3.10...4.4.0","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Preview.php#L161","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Preview.php#L161","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L507","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L507","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/vendor/hizzle/store/src/Prop.php#L626","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/vendor/hizzle/store/src/Prop.php#L626","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L695","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L695","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Generate/Generator.php#L548","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Generate/Generator.php#L548","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/functions.php#L937","name":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/functions.php#L937","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-103482","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-103482","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"picocodes","product":"Noptin – Newsletter, New Post Notifications & Email Automation","version":"affected 4.3.10 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-10-01T10:43:22.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-10-09T17:25:21.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"crow","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"103482","cve":"CVE-2026-103482","epss":"0.003130000","percentile":"0.223410000","score_date":"2026-10-12","updated_at":"2026-10-13 00:11:16"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-103482","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","timestamp":"2026-10-11T12:15:11.286835Z","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-10-11T12:23:56.869Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"Noptin – Newsletter, New Post Notifications & Email Automation","vendor":"picocodes","versions":[{"lessThanOrEqual":"4.3.10","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"crow"}],"descriptions":[{"lang":"en","value":"The Simple Newsletter Plugin – Noptin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'noptin_fields[<custom_field_merge_tag>] (e.g. first_name)' parameter in all versions up to, and including, 4.3.10 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The attack chain requires a published campaign post whose body contains a [[subscriber.*]] merge tag; the unauthenticated attacker first POSTs the entity-encoded payload to the public manage_preferences form (which issues its own nonce on the same page), then pivots execution by embedding their confirm_key in a campaign preview URL sent to a privileged user via social engineering."}],"metrics":[{"cvssV3_1":{"baseScore":5.4,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","description":"CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-10T05:31:05.867Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e5f8afa3-f20c-4dfb-bcc6-2682f68723ca?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Preview.php#L161"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Emails/Generate/Generator.php#L548"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L507"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L361"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Core/Dynamic_Content_Tags.php#L695"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/functions.php#L937"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/build/Subscribers/Manage_Preferences.php#L255"},{"url":"https://plugins.trac.wordpress.org/browser/newsletter-optin-box/tags/4.3.10/vendor/hizzle/store/src/Prop.php#L626"},{"url":"https://github.com/hizzle-co/noptin/compare/4.3.10...4.4.0"}],"timeline":[{"lang":"en","time":"2026-10-01T10:43:22.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-10-09T17:25:21.000Z","value":"Disclosed"}],"title":"Simple Newsletter Plugin <= 4.3.10 - Unauthenticated Stored Cross-Site Scripting via Subscriber Custom Field via Manage Preferences Form + Campaign Preview noptin_key Pivot"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-103482","datePublished":"2026-10-10T05:31:05.867Z","dateReserved":"2026-09-30T16:24:35.468Z","dateUpdated":"2026-10-11T12:23:56.869Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-10 06:16:36","lastModifiedDate":"2026-10-13 13:30:21","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","baseScore":5.4,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":2.2,"impactScore":2.7}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-10-11T12:15:11.286835Z","id":"CVE-2026-103482","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"103482","Ordinal":"1","Title":"Simple Newsletter Plugin <= 4.3.10 - Unauthenticated Stored Cros","CVE":"CVE-2026-103482","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"103482","Ordinal":"1","NoteData":"The Simple Newsletter Plugin – Noptin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'noptin_fields[<custom_field_merge_tag>] (e.g. first_name)' parameter in all versions up to, and including, 4.3.10 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The attack chain requires a published campaign post whose body contains a [[subscriber.*]] merge tag; the unauthenticated attacker first POSTs the entity-encoded payload to the public manage_preferences form (which issues its own nonce on the same page), then pivots execution by embedding their confirm_key in a campaign preview URL sent to a privileged user via social engineering.","Type":"Description","Title":"Simple Newsletter Plugin <= 4.3.10 - Unauthenticated Stored Cros"}]}}}