Drupal security updates, in plain English · Module

Rabbit Hole

74,799 sites report using it · on drupal.org · 1 security update explained here

This module lets site builders control what happens when a piece of content is viewed, such as showing it, returning an access denied response, or redirecting the visitor to another web address.

Below is every security update for Rabbit Hole that this site has covered, newest first. Each one says who could exploit it, whether it applies to your site, how urgent it is, and what to tell your developer. If your site uses this module and you are not sure which version, that is the first question to ask whoever looks after it.

Rabbit Hole

Moderately critical · 74,799 sites report using it · SA-CONTRIB-2026-252 · on drupal.org · Week of 21 October 2026

A visitor could view content a site had configured to hide or avoid a configured redirect. Anyone with no login could alter the settings that hide a piece of content. They could not read the hidden content itself.

  • Who could do thisAnyone visiting the site. No login needed.
  • Does it apply to youThe first vulnerability affects every site that relies on this module to deny access to or hide content, and the second affects sites where an attacker has a role with the access right to edit the affected content and the site exposes a write path that bypasses the content form such as a data feed with writes enabled.
  • Has it been used in attacksNo sign of it.
  • How urgentDrupal rates this moderately critical. Include it in your next routine update, within the month.

Tell your developerUpdate Rabbit Hole to 8.x-1.3 or 2.0.0-beta3, whichever branch you are on.

For developers: what the fix changed

The fix prevents query parameters from overriding internal request attributes by using `$request->attributes->get()` instead of `$request->get()` in `src/BehaviorInvoker.php`. It also implements `hook_entity_field_access()` in `rabbit_hole.module` to enforce the administer permission on Rabbit Hole fields, preventing unauthorised modification via APIs like JSON:API or REST.

Also in this release The release also adds cacheability metadata to redirect responses, removes settings from confirmation forms, encodes redirect paths exactly once, fixes a schema mismatch, and populates empty values with defaults.

8.x-1.2 to 8.x-1.3 7 commits, 29 files including 11 tests.

  • config/install/rabbit_hole.behavior_settings.default.yml +2 −2
  • config/install/rabbit_hole.behavior_settings.default_bundle.yml +2 −2
  • config/schema/behavior_settings.schema.yml +3 −1
  • modules/rh_node/rh-node.js +2 −1
  • rabbit_hole.install +102 −0
  • rabbit_hole.module +54 −2 fix
  • rabbit_hole.permissions.yml +1 −1
  • rabbit_hole.post_update.php +17 −1
  • src/BehaviorInvoker.php +37 −5 fix
  • src/BehaviorInvokerInterface.php +1 −1
  • src/BehaviorSettingsManager.php +1 −1
  • src/EntityExtender.php +1 −0

Full diff, 8.x-1.2 to 8.x-1.3 · Full diff, 8.x-1.3 to 2.0.0-beta3

The comparison is against the release immediately before the fix. If your site is on an older release, more will have changed.

Not sure what your site is running?

Send me your Drupal site's address.

I'll tell you what I can see from outside, what the Drupal 10 end of life on 9 December means for it, and what it would cost to have me keep it patched. There's no charge for that and no obligation. peter@peterbrady.co.uk


Get in touch

Tell me who you are, what your organisation does, and what you need. That might be a Drupal site that needs looking after, an upgrade to get done before December, or an agency that needs Drupal cover.

If I can help, I'll say so and suggest a call. If I can't, I'll tell you straight away rather than waste your time.

peter@peterbrady.co.uk

For context: I work mainly with UK membership bodies, charities and research organisations, and with the agencies that look after their websites. Not recruiters.

Or start smaller and connect with me on LinkedIn. That's where I post what I find digging around in charity and grants data, and where the free tools turn up first.