Did a bit of testing on our WHMCS dev platform..
This does reset passwords. It does not email clients.
Original password, with md5 enabled:
mysql> SELECT password FROM tblclients WHERE id = 1;
+----------------------------------------+
| password |
+----------------------------------------+
| 2ae51bfc8fec24a86a8cbbffc345ccd2:%!Rd% |
+----------------------------------------+
1 row in set (0.00 sec)
Stored password after checking said box, and saving:
mysql> SELECT password FROM tblclients WHERE id = 1;
+------------------------------------------+
| password |
+------------------------------------------+
| I3noCCtmFPCtEFgyxrKVKyPcgctuttmdv4ooxFbV |
+------------------------------------------+
1 row in set (0.01 sec)
Stored password after re-enabling md5, and saving again:
mysql> SELECT password FROM tblclients WHERE id = 1;
+----------------------------------------+
| password |
+----------------------------------------+
| 56570acfefb64055b752e81fb588257f:E#WR# |
+----------------------------------------+
1 row in set (0.00 sec)
It appears WHMCS does randomize new passwords each time this option is toggled (I ran through this loop several times to verify) - however, clients do not get notified of the change.
Here's where things get fun. There is no documented API function that lets you reset a client's password (which would be necessary for this scenario, since manually updating SQL won't send emails). There *ARE* API functions for encrypting and decrypting non-md5 passwords, as well as an API function for resetting a
service (not WHMCS login) password.
The only method of resetting a client's password that includes an automated, templated email is the `Reset & Send Password` button on the
clientsummary.php page. This leaves the following options:
- An actual WHMCS Bug - I'm inclined to discredit this one. The actual function to reset the pass and email the client is embedded within the clientsummary.php page, as evidenced by the &resetpw=true&token= called on the URL. The WHMCS cron does *not* call the clientsummary.php page at all - and with no other hooks/functions that both reset the pass and issue an email, the chances of this being a cron bug are next to nil.
- Poorly Coded Module - This has some potential. To reset a client's password, you have to call the clientsummary.php page directly with the &resetpw=true&token=[REDACTED] flags included. So, assuming you were competent with bash/perl/etc, you could fairly easily write a script that would generate a list of URLs to hit with curl that would effectively mass-reset passwords. I've actually written a script to do just this some time back as a precaution when all of the exploits started surfacing last year. However - I did say assuming you were competent, so I think we can pretty much agree this option is ruled out.
- Security Breach - A frightening possibility - but worth considering. If someone had malicious thoughts of GVH, but didn't want the innocent clients to become casualties, gaining access and doing something minor like this would be enough to put a scare into folks.
There are a plethora of other scenarios, but most rather unlikely and would be a waste of time to go into. It'll be pretty easy to see what actually happened as more excuses come forth, though - GVH has a known history of telling blatant exaggerations/bluffs, only to come back later with a different story.