[wp-trac] [WordPress Trac] #56141: Enhance installer security

WordPress Trac noreply at wordpress.org
Sat Aug 30 21:24:30 UTC 2025


#56141: Enhance installer security
--------------------------+-----------------------------
 Reporter:  smitka        |       Owner:  (none)
     Type:  enhancement   |      Status:  new
 Priority:  high          |   Milestone:  Future Release
Component:  Security      |     Version:
 Severity:  major         |  Resolution:
 Keywords:  dev-feedback  |     Focuses:
--------------------------+-----------------------------

Comment (by oglekler):

 Sadly, I stumbled upon this half a year ago. It was an issue with the
 deployment process, and as a result, a duplicate of WordPress was
 installed into a project subdirectory called 'wordpress'. The damage was
 significant. It hit me really hard when the newly launched project got
 hacked in a flash... I am preparing a request to DB, validating and
 sanitizing all that is possible, and using nonce if applicable… I am still
 horrified just to think about what happened. So I would love to see the
 solution. I believe this is very important.

 In the community, we also had some reports on the support forum when
 people were writing like, "I left the setup until the morning, and in the
 morning all my hosting was hacked. I never saw such a leaky system" (I
 cannot recall the exact words, but I saw this).

 I was thinking of locking installation after some time limit - to check
 when WordPress files were created and lock the setup if some time elapsed.
 I was thinking about this because you can add a manual connection to DB
 into the wp-config.php and still not manage to finish the setup, leaving
 it open to bots.

 The key point is that the user cannot realize what 'unfinished setup'
 means (as well as DevOps who are much more into k8s and other 'cool'
 stuff). So, possibly a setup that is just thrown somewhere should not
 install itself at all, and wp-config.php can have a clear warning that the
 absence of its tables in the database is dangerous. I cannot find a better
 solution than to check the time of files and, if there are 15 minutes or
 more, for example, lock setup if connection with the DB is present but
 tables are absent.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/56141#comment:16>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list