Blogroll: Drupal Contrib Security
I read blogs, as well as write one. The 'blogroll' on this site reproduces some posts from some of the people I enjoy reading. There are currently 6 posts from the blog 'Drupal Contrib Security.'
Disclaimer: Reproducing an article here need not necessarily imply agreement or endorsement!
Group - Less critical - Access bypass - SA-CONTRIB-2023-054
The Group module has the ability to make content private to specific groups. When viewing a list of entities, e.g. nodes, a visitor should only see those entities that are either not attached to a group or that they have group access to.
The module doesn't sufficiently enforce list access under the scenario where two users have the same outsider and insider permissions, but are members of different groups without any individual roles being assigned to said memberships. In such a scenario, the permissions hash for both will be the same even though it should differ.
This vulnerability is mitigated by the fact that an attacker must have the same hash as someone else, which is quite rare yet not unthinkable.
Solution:Install the latest version:
- Sites using Group version 2 should upgrade to Group v2.2.2
- Sites using Group version 3 should upgrade to Group v3.2.2
- Damien McKenna of the Drupal Security Team
- Greg Knaddison of the Drupal Security Team
Xsendfile - Moderately critical - Access bypass - SA-CONTRIB-2023-053
The Xsendfile module enables fast transfer for private files in Drupal.
In order to control private file downloads, the module overrides ImageStyleDownloadController, for which a vulnerability was disclosed in SA-CORE-2023-005. The Xsendfile module was still based on an insecure version of ImageStyleDownloadController.
Solution:Install the latest version:
- If you use the Xsendfile module for Drupal 8.x, upgrade to Xsendfile 8.x-1.2.
- Greg Knaddison of the Drupal Security Team
Mollie for Drupal - Moderately critical - Faulty payment confirmation logic - SA-CONTRIB-2023-052
This module enables you to pay online via Mollie.
The module might not properly load the correct order to update the payment status when Mollie redirects to the redirect URL. This can allow an attacker to apply other people's orders to their own, getting credit without paying.
This vulnerability is mitigated by the fact that an attacker must have some knowledge about the module's internal functionality. The issue only affects installations that use the Mollie for Drupal Commerce submodule.
Solution:Install the latest version:
- If you use the Mollie for Drupal module, upgrade to Mollie for Drupal 2.2.1.
- Greg Knaddison of the Drupal Security Team
- xjm of the Drupal Security Team
GraphQL - Moderately critical - Cross Site Request Forgery - SA-CONTRIB-2023-051
The GraphQL module enables you to build GraphQL APIs which can include data fetching through Queries and data updates (create, update, delete) through mutations.
The module does not sufficiently validate incoming requests that are made from domains other than the one serving the GraphQL endpoint. In case a user visits a malicious site, that site may make requests on the users behalf which can lead to the execution of mutations, exposing a CSRF vulnerability. Whether data is returned to the malicious site depends on your sites CORS configuration.
This vulnerability is mitigated by the fact that a user with access to the API must have an active session cookie while visiting a malicious site. This vulnerability is also mitigated by restricting session cookies with the SameSite attribute (see solution below).
Solution:Install the latest version:
- If you use the GraphQL module v4 upgrade to GraphQL 8.x-4.6
- If you use the GraphQL module v3 upgrade to GraphQL 8.x-3.4
This vulnerability can also be mitigated by setting the SameSite attribute on session cookies to Lax (recommended) or Strict. This might not be suitable for sites that need to share the Drupal session cookie in some way with other sites. Set the following in your site's services.yml file:
parameters: session.storage.options: # Session cookies are only used for backend admin accounts, so we restrict # the cookies to be used only from the backend origin. We don't use "Strict" # because that also removes cookies whenever an admin navigates from an # email or chat app, which is inconvenient. See # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value cookie_samesite: Lax Reported By: Fixed By:- Sam Becker
- Klaus Purer
- Alexander Varwijk
- Luis
- Lee Rowlands of the Drupal Security Team
- Greg Knaddison of the Drupal Security Team
- Damien McKenna of the Drupal Security Team
GraphQL - Moderately critical - Access bypass - SA-CONTRIB-2023-050
This module lets you craft and expose a GraphQL schema for Drupal 9 and 10.
The module currently does not adequately verify whether a given user has the necessary permissions to access an entity's label creating an access bypass vulnerability.
This vulnerability is mitigated by the fact that entity view and entity label access are usually handled by the same access check; developers have to opt-in for supporting different logic on entity types. Additionally your schema must make use of the EntityLabel DataProducer to be affected.
Solution:Install the latest version:
- If you use the GraphQL module v4 upgrade to GraphQL 8.x-4.6
- If you use the GraphQL module v3 upgrade to GraphQL 8.x-3.4
- Greg Knaddison of the Drupal Security Team
Paragraphs admin - Moderately critical - - SA-CONTRIB-2023-049
This module enables you to view all paragraph entities in an admin view.
The module contains an access bypass that allows non admin users to access the view.
The vulnerability can be mitigated by editing the view to change the permission required to access the page.
Install the latest version:
- If you use the paragraphs_admin module for Drupal 8.x, upgrade to paragraphs_admin 8.x-1.5
- Lee Rowlands of the Drupal Security Team
- Greg Knaddison of the Drupal Security Team
- Damien McKenna of the Drupal Security Team