Drupal Contrib – Highly Critical – Remote Code Execution PSA-2016-001
drupal.org
drupal.org
I want to note that these vulnerabilities are in 3 Drupal 7 contributed modules:
RESTWS (we personally never used this, but it has 5k installs)
Coder (we use its scripts all the time, but install it only in Dev environment, not in Drupal codebase. However, we did have a client with 3 projects running it, and they're patching it now)
Webform Multiple File Upload (we never used this, but it has 3k installs)
So for context, this isn't exactly "Drupalgeddon 2.0", but if you know someone who uses Drupal 7, they should check if they're using these modules, and update them.
[1]: https://twitter.com/drupalsecurity/status/753263548458004480
(It doesn't seem that WordPress's security section concerns itself with plugin flaws...because if it did, that's be a pretty busy section...)
Edit: Ok this I was also wondering: are these flaws a result of something related to Drupal core?
https://news.ycombinator.com/item?id=12088471
Is it standard for Drupal to not disable web access to disabled plugins? Or is this notice for the rare edge custom deployments in which default safeguards are disabled? How can a non-admin reach a disabled plugin (nevermind execute it)?
It is certainly standard for code in disabled plugins not to be accessible via Drupal. The problem in this case is that the plugin's authors wrote a separate script having nothing to do with Drupal itself, and made it web-accessible. That's pretty unusual for contributed code.
Drupal (and WordPress, etc.) come from a time where your entire code base would live in the document root, so knowing the path to a .php file is often enough to execute the script. While it would be possible to limit this with something like .htaccess, it's error-prone, web server-specific, and can break existing code in your ecosystem, so that's probably why it's not being done consistently. Changing the code structure of Drupal in a way that would put most of the code outside of the document root would similarly cause a lot of work for the ecosystem and might make installation in typical shared web hosting environments impossible in some scenarios - I've seen hosters who only allow you to upload files straight to the document root, so there'd be no way to use such a project with those plans. This is in essence just another case of things going wrong because compatibility was prioritized over possible security concerns, and I don't even want to blame them too much for that, given the usual outcry when backwards-incompatible changes cause work for (plugin) developers in general.
(Yes, I realize these issues are in third-party/contributed modules.)
You can update both core and modules (similar to plugins for WordPress) using the web interface, which is included with core, or use a command-line utilities like Drush for Drupal 7, or Composer in Drupal 8.
There's lots of very valid reasons to be critical of Drupal, but:
> Drupal is exceptionally bad at this.
I don't think that's accurate.