{"id":3861,"date":"2011-12-14T02:57:36","date_gmt":"2011-12-14T02:57:36","guid":{"rendered":"http:\/\/make.wordpress.org\/core\/handbook\/reporting-security-vulnerabilities\/"},"modified":"2026-01-07T05:50:00","modified_gmt":"2026-01-07T05:50:00","slug":"reporting-security-vulnerabilities","status":"publish","type":"handbook","link":"https:\/\/make.wordpress.org\/core\/handbook\/testing\/reporting-security-vulnerabilities\/","title":{"rendered":"Reporting Security Vulnerabilities"},"content":{"rendered":"<p class=\"wp-block-paragraph\">While we try to be proactive in preventing security problems, we do not assume they\u2019ll never come up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It is standard practice to <strong>responsibly and privately disclose<\/strong> to the vendor (the WordPress <span tabindex='0' class='glossary-item-container'>core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> development team, in this case) a security problem before publicizing, so a fix can be prepared, and damage from the vulnerability minimized.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is a \u201csecurity\u201d issue?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A <span tabindex='0' class='glossary-item-container'>security issue<span class='glossary-item-hidden-content'><span class='glossary-item-header'>security issue<\/span> <span class='glossary-item-description'>A security issue is a type of bug that can affect the security of WordPress installations. Specifically, it is a report of a bug that you have found in the WordPress core code, and that you have determined can be used to gain some level of access to a site running WordPress that you should not have.<\/span><\/span><\/span> is a type of <span tabindex='0' class='glossary-item-container'>bug<span class='glossary-item-hidden-content'><span class='glossary-item-header'>bug<\/span> <span class='glossary-item-description'>A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.<\/span><\/span><\/span> that can affect the security of WordPress installations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specifically, it is a report of a bug that you have found in the WordPress core code, and that you have determined can be used to gain some level of access to a site running WordPress that you should not have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Your site being \u201c<span tabindex='0' class='glossary-item-container'>hacked<span class='glossary-item-hidden-content'><span class='glossary-item-header'>hacked<\/span> <span class='glossary-item-description'><\/span><\/span><\/span>\u201d is <strong>not<\/strong> a security issue. The security issue will involve knowing how the attacker got in and hacked the site. If you have details on the attack, then contact us. If not, then the <a href=\"https:\/\/wordpress.org\/support\/\">Support Forums<\/a> are the most appropriate place to report such an issue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You forgetting your password or losing access to your site is <strong>not<\/strong> a security issue. If you lost access through a bug in the WordPress code, then that might be a security issue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generally, security issues are complex problems. If you want to report a security issue, then that\u2019s great! You\u2019re in the right place. However, be sure that what you\u2019re reporting is <strong>actually<\/strong> a security issue. The experts that you are reporting it to are very busy, and don\u2019t usually respond to non-security issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The security reporting system is NOT for support. Don\u2019t send general problems there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Enhanced bounty rewards during <span tabindex='0' class='glossary-item-container'>Beta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Beta<\/span> <span class='glossary-item-description'>A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.<\/span><\/span><\/span> and <span tabindex='0' class='glossary-item-container'>Release Candidate<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span> phases<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To encourage proactive security assessments, the WordPress community offers monetary rewards for reporting new, unreleased security vulnerabilities. Notably, these rewards are doubled during the period between the release of Beta 1 and the final Release Candidate (<span tabindex='0' class='glossary-item-container'>RC<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span>) of a major WordPress version.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For instance, in the <a href=\"https:\/\/make.wordpress.org\/core\/6-5\/\">WordPress 6.5 release cycle<\/a>, this enhanced bounty period spanned from February 13, 2024 (Beta 1) to March 28, 2024 (final RC). <em><a href=\"https:\/\/make.wordpress.org\/security\/2024\/02\/12\/welcoming-2024-with-wordpress-6-5-beta-1\/\">source<\/a><\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where do I report security issues?<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you are here to report any sort of security issue with <a href=\"https:\/\/en.support.wordpress.com\/com-vs-org\/\">a site hosted on <strong>WordPress.com<\/strong><\/a>, then please <a href=\"https:\/\/hackerone.com\/automattic\">submit a report at the Automattic HackerOne page<\/a>. If the issue you\u2019re trying to report is on <span tabindex='0' class='glossary-item-container'>WordPress.com<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress.com<\/span> <span class='glossary-item-description'>An online implementation of WordPress code that lets you immediately access a new WordPress environment to publish your content.  WordPress.com is a private company owned by Automattic that hosts the largest multisite in the world. This is arguably the best place to start blogging if you have never touched WordPress before. <a href=\"https:\/\/wordpress.com\/\">https:\/\/wordpress.com\/<\/a><\/span><\/span><\/span> and is <strong>not<\/strong> a security issue, then please use their <a href=\"https:\/\/en.forums.wordpress.com\/\">support forums<\/a> instead.<\/li>\n\n\n\n<li>If you\u2019re having an issue with your own self-hosted <span tabindex='0' class='glossary-item-container'>WordPress.org<span class='glossary-item-hidden-content'><span class='glossary-item-header'>WordPress.org<\/span> <span class='glossary-item-description'>The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization.  <a href=\"https:\/\/wordpress.org\/\">https:\/\/wordpress.org\/<\/a><\/span><\/span><\/span> site that is <strong>not<\/strong> a security issue, then please use the WordPress.org <a href=\"https:\/\/wordpress.org\/support\/\">support forums<\/a>.<\/li>\n\n\n\n<li>For security issues with WordPress plugins, follow the information on <a href=\"https:\/\/developer.wordpress.org\/plugins\/wordpress-org\/reporting-plugin-security-issues\/\">Reporting Plugin Security Issues<\/a>.<\/li>\n\n\n\n<li><strong>For security issues with the self-hosted version of WordPress<\/strong>, submit a report at the <a href=\"https:\/\/hackerone.com\/wordpress\">WordPress HackerOne page<\/a>. Include as much detail as you can. Please <strong>always use HackerOne instead of Core <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span><\/strong>, even if the vulnerability is only in <code>trunk<\/code>, or a beta\/RC release, because there are some sites that run those in production.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In all cases, you should <strong>not<\/strong> share the details with anyone else until after the fix for the bug has been officially released to the public.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Where do I report copyright infringements, libel, and other legal issues?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/wordpress.org\/\">WordPress.org<\/a> does not host sites. <a href=\"https:\/\/wordpress.org\/\">WordPress.org<\/a> provides publishing software that anyone can download and use. The organization, <a href=\"https:\/\/wordpress.org\/\">WordPress.org<\/a>, has no control over who uses the software, or how they use it. In other words, <a href=\"https:\/\/wordpress.org\/\">WordPress.org<\/a> does NOT have the power to take down comments, posts, sites, or anything else.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of trying to contact WordPress, perform a <a href=\"http:\/\/whois.domaintools.com\/\">whois lookup<\/a> to track down the operator or host of a particular site, then report the infringement to those organizations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you still can\u2019t determine the organization, these following articles by Plagiarism Today may help:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.plagiarismtoday.com\/stopping-internet-plagiarism\/3-finding-the-host\/\">Finding the Host<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.plagiarismtoday.com\/2009\/07\/16\/6-steps-to-find-a-hosts-dmca-contact\/\">6 Steps to Find a Host\u2019s DMCA Contact<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">I\u2019ve been hacked. What do I do now?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Things you should do:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Change passwords for all users, especially Administrators and Editors.<\/li>\n\n\n\n<li>If you upload files to your site via <span tabindex='0' class='glossary-item-container'>FTP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>FTP<\/span> <span class='glossary-item-description'>FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. <a href=\"https:\/\/codex.wordpress.org\/FTP_Clients\">https:\/\/codex.wordpress.org\/FTP_Clients<\/a><\/span><\/span><\/span>, change your FTP password.<\/li>\n\n\n\n<li>Re-install the latest version of WordPress.<\/li>\n\n\n\n<li>Make sure all of your plugins and themes are up-to-date.<\/li>\n\n\n\n<li>Update your <a href=\"https:\/\/wordpress.org\/support\/article\/editing-wp-config-php\/#security-keys\">security keys<\/a>.<\/li>\n\n\n\n<li>See <a href=\"https:\/\/wordpress.org\/support\/article\/faq-my-site-was-hacked\/\">FAQ My Site Was Hacked<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Why are some users allowed to post unfiltered <span tabindex='0' class='glossary-item-container'>HTML<span class='glossary-item-hidden-content'><span class='glossary-item-header'>HTML<\/span> <span class='glossary-item-description'>HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.<\/span><\/span><\/span>?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Users with Administrator or Editor <a href=\"https:\/\/codex.wordpress.org\/Roles_and_Capabilities#Roles\">roles<\/a> are allowed to publish unfiltered HTML in post titles, post content, and comments, and upload HTML files to the media library. WordPress is, after all, a publishing tool, and people need to be able to include whatever markup they need to communicate. Users with lesser privileges (Authors and Contributors) are not allowed to post unfiltered content or upload HTML files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you are running security tests against WordPress, use a lesser privileged user so that all content is filtered. If you are concerned about an Administrator or Editor putting XSS into content and stealing cookies, note that all cookies are marked for <span tabindex='0' class='glossary-item-container'>HTTP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>HTTP<\/span> <span class='glossary-item-description'>HTTP is an acronym for Hyper Text Transfer Protocol. HTTP  is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands.<\/span><\/span><\/span> only delivery, and are divided into privileged cookies used for <span tabindex='0' class='glossary-item-container'>admin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>admin<\/span> <span class='glossary-item-description'>(and super admin)<\/span><\/span><\/span> pages, and unprivileged cookies used for public facing pages. Content is never displayed unfiltered within the admin dashboard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In WordPress <span tabindex='0' class='glossary-item-container'>Multisite<span class='glossary-item-hidden-content'><span class='glossary-item-header'>multisite<\/span> <span class='glossary-item-description'>Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also <strong>network<\/strong>, <strong>blog<\/strong>, <strong>site<\/strong><\/span><\/span><\/span>, only Super Admins can publish unfiltered HTML, as all other users (including site Administrators) are considered untrusted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To disable unfiltered HTML for all users, including administrators, you can add <code>define( 'DISALLOW_UNFILTERED_HTML', true );<\/code> to <code>wp-config.php<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why are disclosures of usernames or user IDs not a security issue?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The WordPress project doesn\u2019t consider usernames or user ids to be private or secure information. A username is part of your online identity. It is meant to identify, not verify, who you are saying you are. Verification is the job of the password.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This includes, for example, retrieving the list of site users through the <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\/users\/\">REST API Users endpoint<\/a>, <code>GET \/wp-json\/wp\/v2\/users<\/code>. Making this publicly accessible is intentional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generally speaking, people do not consider usernames to be secret, often sharing them openly. Additionally, many major online establishments \u2014 such as Google and Facebook \u2014 have done away with usernames in favor of email addresses, which are shared around constantly and freely. WordPress has also moved this way, allowing users to log in with an email address or username since version 4.5.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instead of attempting to hide a public identifier, WordPress attempts to encourage users to choose strong passwords instead, through both user interface as well as education.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note that WordPress is not the only <span tabindex='0' class='glossary-item-container'>open source<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Open Source<\/span> <span class='glossary-item-description'>Open Source denotes software for which the original source code is made freely available and may be redistributed and modified.  Open Source **must be** delivered via a licensing model, see GPL.<\/span><\/span><\/span> project to believe this. <a href=\"https:\/\/www.drupal.org\/node\/1004778\">Drupal has similar arguments for the same thing.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why are there path disclosures when directly loading certain files?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is a server configuration problem. Never enable <code>display_errors<\/code> on a <span tabindex='0' class='glossary-item-container'>production site<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Production Site<\/span> <span class='glossary-item-description'>A production site is a live site online meant to be viewed by your visitors, as opposed to a site that is staged for development or testing.<\/span><\/span><\/span>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why did I get this \u201cPassword Reset\u201d email?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you get an email saying \u201cSomeone has asked to reset the password for the following site and username\u201d, this means someone visited the password reset page on your site. Anyone can visit this page, since it must be open to all for it to be accessible to those who have lost their password. Your password can be reset only by those who can read your email. If your email account has not been compromised, you can ignore this email.<\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"author":5286302,"featured_media":0,"parent":13609,"menu_order":15,"template":"","meta":{"_crdt_document":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-3861","handbook","type-handbook","status-publish","hentry","author-nacin","make-reporting-security-vulnerabilities"],"revision_note":"","jetpack_sharing_enabled":false,"_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/handbook\/3861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/handbook"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/handbook"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/5286302"}],"version-history":[{"count":31,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/handbook\/3861\/revisions"}],"predecessor-version":[{"id":121051,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/handbook\/3861\/revisions\/121051"}],"up":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/handbook\/13609"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=3861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}