v11.16.0 has been released! This released was pushed out to fix a fairly critical security issue dealing with CSRF. Below is the change log, which we think paints a good picture of what the problem is, and what we did to remediate it.
If you’re a customer/client of ours that we’ve provided an installation for, please get in touch, so that we can talk about getting you upgraded. If you don’t know exactly what coverage you have, we can help you look up your order information. Generally:
- Customers with Lifetime Upgrade Coverage have all already been upgraded to v11.16.0. If you’re one of the customers, check the versions you’re running, and make sure it’s at least v11.16.0.
- Yearly Upgrade Coverage customers will want to contact us to get upgraded.
- One-Time installation and Upgrade customers do have 30-days of complementary upgrades. Please take advantage of that!
11.16.0
Focus
This version of Dada Mail has been released primarily to fix a security vulnerability dealing with Cross-Site Request Forgery (CSRF).
Enhanced Cross-Site Request Forgery (CSRF) Prevention
In theory (and confirmed), a bad actor could give someone a carefully crafted web page via email, SMS, etc, that – when visited, could allow them control of the list control panel as if the bad actor was logged in themselves. This includes changing any mailing list password, as well as the Dada Mail Root Password – which could effectively shut out actual list owners of the mailing list and allow the bad actor complete and unfettered control of your mailing list. This vulnerability also affects profile logins.
For this vulnerability to work, the target of the bad actor would need to be logged into the list control panel themselves. This CSRF vulnerability in Dada Mail affects all versions of Dada Mail v11.15.1 and below. Although we know of no known CSRF exploits that have happened in the wild, this vulnerability has been confirmed by our testing, and by a third party.
Security enhancements added to v11.16.0:
CSRF protection to all list control panel screens (including plugins) when logged in
Initial CSRF protection on the actual list control panel login form is enabled by default
This feature was available in Dada Mail, but was not enabled by default
CSRF protection for any a user who logs into their profile would be able to do when logged in
CSRF protection for the initial profile login form
Login cookies for both the list control panel and profiles have the, “SameSite” flag added, and set to, “Lax”
Login cookies for both the list control panel and profiles have the, “secure” flag added, and set to, “1”, if the connection is under https
Google reCAPTCHA added to the Change List Password, Change Dada Mail Root Password, Profile login, and Profile Registration
You’ll want to set up Google reCAPTCHA in the included Dada Mail installer.
More Details
Here’s an overview of CSRF:
https://owasp.org/www-community/attacks/csrf
v11.16.0 comes with Cross-Site Request Forgery prevention using the Double Submit Cookie pattern: (https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#double-submit-cookie).
To enhance this, we also “HMAC the token with a secret key known only by the server and place this value in a cookie” (as described in the above doc), and set cookies to have, SameSite set to, Lax (instead of not setting SameSite at all), (https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html#samesite-cookie-attribute),
Additional Suggestions to Help Harden Security
Run Dada Mail under https
Running Dada Mail under https will protect sensitive data from being able to read in transmission.
Set up Google reCAPTCHA
Google reCAPTCHA helps stop automated submission of forms in Dada Mail.
Features
RESTFUL API supports Global Public/Private Keys, Creating New Mailing Lists
Please see:
and,
https://dadamailproject.com/d/features-restful_web_services.pod.html#Global-Public-and-Private-Keys
Changes
Default Membership: View address order is now Date Added/Subscription Date/Descending
Previous order was email address alphabetically/descending
Bugfixes
Switching between lists accepts “GET” requests
https://github.com/justingit/dada-mail/issues/1067
“logout” accepts “GET” requests
https://github.com/justingit/dada-mail/issues/1066