{"api_version":"1","generated_at":"2026-11-07T15:53:42+00:00","cve":"CVE-2026-120685","urls":{"html":"https://cve.report/CVE-2026-120685","api":"https://cve.report/api/cve/CVE-2026-120685.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-120685","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-120685"},"summary":{"title":"Real Testimonials <= 4.1.0 - Unauthenticated Stored Cross-Site Scripting via JPEG IPTC Caption + '[gallery]' Shortcode Chain","description":"The Real Testimonials – Testimonial Slider, Collect Customer Reviews and Video Testimonials plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tpro_client_image (JPEG IPTC caption) + tpro_client_testimonial ([gallery] shortcode)' parameter in all versions up to, and including, 4.1.0 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. This requires an administrator to have the display block configured with the Strip All HTML Tags option disabled, which is the plugin's native setting for rendering formatted testimonial content, and to have approved the submitted testimonials.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-11-07 12:17:44","updated_at":"2026-11-07 12:17:44"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"metrics":[{"version":"3.1","source":"security@wordfence.com","type":"Primary","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://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Templates/template-parts/testimonial-content.php#L34","name":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Templates/template-parts/testimonial-content.php#L34","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/756c203e-8fbe-46f0-8ae7-a3f2d005cd6f?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/756c203e-8fbe-46f0-8ae7-a3f2d005cd6f?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L50","name":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L50","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/ManageAPI.php#L352","name":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/ManageAPI.php#L352","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L151","name":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L151","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free","name":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free/trunk/src/Blocks/Templates/template-parts/testimonial-content.php","name":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free/trunk/src/Blocks/Templates/template-parts/testimonial-content.php","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Includes/TestimonialQuery.php#L240","name":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Includes/TestimonialQuery.php#L240","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-120685","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120685","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"shapedplugin","product":"Real Testimonials – Testimonial Slider, Collect Customer Reviews and Video Testimonials","version":"affected 4.1.0 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-11-02T19:32:28.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-11-06T21:32:03.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"UKO","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Real Testimonials – Testimonial Slider, Collect Customer Reviews and Video Testimonials","vendor":"shapedplugin","versions":[{"lessThanOrEqual":"4.1.0","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"UKO"}],"descriptions":[{"lang":"en","value":"The Real Testimonials – Testimonial Slider, Collect Customer Reviews and Video Testimonials plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tpro_client_image (JPEG IPTC caption) + tpro_client_testimonial ([gallery] shortcode)' parameter in all versions up to, and including, 4.1.0 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. This requires an administrator to have the display block configured with the Strip All HTML Tags option disabled, which is the plugin's native setting for rendering formatted testimonial content, and to have approved the submitted testimonials."}],"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","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-07T11:26:31.315Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/756c203e-8fbe-46f0-8ae7-a3f2d005cd6f?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Templates/template-parts/testimonial-content.php#L34"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L50"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/APIHelper.php#L151"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/API/ManageAPI.php#L352"},{"url":"https://plugins.trac.wordpress.org/browser/testimonial-free/tags/4.1.0/src/Blocks/Includes/TestimonialQuery.php#L240"},{"url":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free"},{"url":"https://plugins.trac.wordpress.org/changeset/3781836/testimonial-free/trunk/src/Blocks/Templates/template-parts/testimonial-content.php"}],"timeline":[{"lang":"en","time":"2026-11-02T19:32:28.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-11-06T21:32:03.000Z","value":"Disclosed"}],"title":"Real Testimonials <= 4.1.0 - Unauthenticated Stored Cross-Site Scripting via JPEG IPTC Caption + '[gallery]' Shortcode Chain"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-120685","datePublished":"2026-11-07T11:26:31.315Z","dateReserved":"2026-11-02T19:16:46.326Z","dateUpdated":"2026-11-07T11:26:31.315Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-07 12:17:44","lastModifiedDate":"2026-11-07 12:17:44","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Primary","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}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"120685","Ordinal":"1","Title":"Real Testimonials <= 4.1.0 - Unauthenticated Stored Cross-Site S","CVE":"CVE-2026-120685","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"120685","Ordinal":"1","NoteData":"The Real Testimonials – Testimonial Slider, Collect Customer Reviews and Video Testimonials plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'tpro_client_image (JPEG IPTC caption) + tpro_client_testimonial ([gallery] shortcode)' parameter in all versions up to, and including, 4.1.0 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. This requires an administrator to have the display block configured with the Strip All HTML Tags option disabled, which is the plugin's native setting for rendering formatted testimonial content, and to have approved the submitted testimonials.","Type":"Description","Title":"Real Testimonials <= 4.1.0 - Unauthenticated Stored Cross-Site S"}]}}}