View Issue Details

IDProjectCategoryView StatusLast Update
4846Composrcorepublic2022-10-19 00:46
ReporterChris Graham Assigned ToPDStig  
PrioritynormalSeveritySecurity-hole 
Status resolvedResolutionfixed 
Summary4846: Installers are vulnerable to bot attack
DescriptionWordpress sites have been getting hacked in the time window between uploading the installer, and it being used.
This is possible because new SSL certificate registrations are publicly being advertised by many registrars, including Let's Encrypt. It's easy for a bot to find a newly configured domain.

This however would affect our entire industry.

The only reasonable fix I can think of is to customise any installers downloaded from our site with the IP address of the the machine downloading them, locking them to that machine. It'd have to be made configurable in some kind of file as otherwise people are going to trip up when doing things like wgetting the installers directly onto a server. The error message about an IP mismatch must be explicit, saying what IP is expected vs what is there (probably partially masked, for privacy). The IP restriction should be in a file that cannot be directly downloaded, probably a .php file.
Additional Informationhttps://portswigger.net/daily-swig/wordpress-sites-getting-hacked-within-seconds-of-tls-certificates-being-issued
TagsRoadmap: v11, Type: Security
Attach Tags
Time estimation (hours)6
Sponsorship open

Sponsor

Date Added Member Amount Sponsored

Activities

Chris Graham

2022-08-15 20:40

administrator   ~7460

I've thought about this some more, and I think it's reasonable we can making knowing a valid database username+password function as an "installer login".

We'd make these changes...

1) Change the DB details probing that we do by looking for an existing Composr install / third party forum install. We never autofill the DB password from the probing, but rather we make the database password field required if we probed successfully and found the password was not blank (this stops users submitting the form thinking the probe is autofilling all the DB details).
2) We won't allow any step after DB credentials are taken to happen without a valid DB connection being established first.
3) The above doesn't happen by DB details saved into _config.php anymore, but rather through DB connection details relayed through the steps as hidden inputs (POST parameters)
4) Disable the XML DB driver if no .git directory is present (because this doesn't require DB credentials, and we are assuming dev machines aren't just connected to the public Internet)
5) Disable using the DB root user if no .git directory present (root user is any of the DB driver's output of default_user()) (because it is common to have a root user with a blank password on a machine, and we don't want bots to be able to guess that unless we really are a dev machine in which case we can assume a higher level of dev responsibility)

Issue History

Date Modified Username Field Change
2022-05-08 04:59 Chris Graham New Issue
2022-05-08 04:59 Chris Graham Tag Attached: Roadmap: v11
2022-05-08 04:59 Chris Graham Tag Attached: Type: Security
2022-05-08 05:00 Chris Graham Additional Information Updated
2022-08-15 20:39 Guest Note Added: 0007459
2022-08-15 20:40 Chris Graham Note Added: 0007460
2022-08-15 20:40 Chris Graham Assigned To => user4172
2022-08-15 20:40 Chris Graham Status Not Assigned => Assigned
2022-10-19 00:46 PDStig Status Assigned => Resolved
2022-10-19 00:46 PDStig Resolution open => fixed