[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHGddoCeE5jlzpnJjqex12xoIUhS21csrr0LBzr6qL8M":3},{"id":4,"url_slug":5,"title":6,"description":7,"plugin_slug":8,"theme_slug":9,"affected_versions":10,"patched_in_version":11,"severity":12,"cvss_score":13,"cvss_vector":14,"vuln_type":15,"published_date":16,"updated_date":17,"references":18,"days_to_patch":20,"patch_diff_files":21,"patch_trac_url":9,"research_status":25,"research_verified":26,"research_rounds_completed":27,"research_plan":28,"research_summary":9,"research_vulnerable_code":9,"research_fix_diff":9,"research_exploit_outline":9,"research_model_used":29,"research_started_at":30,"research_completed_at":31,"research_error":9,"poc_status":9,"poc_video_id":9,"poc_summary":9,"poc_steps":9,"poc_tested_at":9,"poc_wp_version":9,"poc_php_version":9,"poc_playwright_script":9,"poc_exploit_code":9,"poc_has_trace":26,"poc_model_used":9,"poc_verification_depth":9,"poc_exploit_code_gated":26,"source_links":32},"CVE-2025-62110","rescue-shortcodes-authenticated-contributor-stored-cross-site-scripting-3","Rescue Shortcodes \u003C= 3.3 - Authenticated (Contributor+) Stored Cross-Site Scripting","The Rescue Shortcodes plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 3.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.","rescue-shortcodes",null,"\u003C=3.3","3.4","medium",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2026-04-23 00:00:00","2026-04-30 14:37:48",[19],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F99235898-127a-4f44-99e2-d60d37d3b85a?source=api-prod",8,[22,23,24],"includes\u002Fshortcode-functions.php","readme.txt","rescue-shortcodes.php","researched",false,3," '';\n        if( $margin_bottom ) {\n            $style_attr .= 'margin-bottom: '. $margin_bottom .';';\n        }\n        ```\n        If the plugin was intended to be used with `extract($atts)`, then `$margin_bottom` would be the RAW value from the shortcode.\n        If I can bypass the `sanitize_html_class` by having the value used *before* it's sanitized.\n        \n        **Is `extract($atts)` used?**\n        It's not in the snippet.\n        \n        Let's try to find another one.\n        **`[rescue_button]` `title`**.\n        `title=\"'. $title .'\"`.\n        Wait, the snippet says:\n        `$title = sanitize_html_class( $atts['class'] );`\n        This is so specific and weird. Why would `title` be `atts['class']`?\n        Maybe because in a previous version it was:\n        `$title = $atts['title'];`\n        \n        Let's look at the `rescue_column` shortcode (Line 214):\n        It's truncated.\n        `return '\u003Cdiv class=\"rescue-column rescue-' . esc_attr( $size ) . ' rescue-column-'. esc_attr( $position ) .' '. esc_attr( $class) .' rescue-'. esc_attr( $visibility ) .'\">' . do_shortcode($co`","gemini-3-flash-preview","2026-05-04 18:34:55","2026-05-04 18:35:42",{"type":33,"vulnerable_version":34,"fixed_version":11,"vulnerable_browse":35,"vulnerable_zip":36,"fixed_browse":37,"fixed_zip":38,"all_tags":39},"plugin","3.3","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Frescue-shortcodes\u002Ftags\u002F3.3","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frescue-shortcodes.3.3.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Frescue-shortcodes\u002Ftags\u002F3.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frescue-shortcodes.3.4.zip","https:\u002F\u002Fplugins.trac.wordpress.org\u002Fbrowser\u002Frescue-shortcodes\u002Ftags"]