PatchClock

PHP security digest · 28 Oct 2026

The CAPTCHA module places a configurable challenge on forms to block automated submissions. To skip the challenge on later steps of the same multi-step form, th...

Unrated CVE-2026-118582

Package
drupal/captcha
Fixed in
1.18.0, 2.0.11
Published
Wed 28 Oct 2026, 17:27 LisbonUpdated Mon 2 Nov 2026, 07:27 Lisbon

In plain words

The CAPTCHA module does not fully invalidate a solved CAPTCHA session after a protected form is submitted. An attacker can submit that form again without solving a new CAPTCHA, weakening protection against spam registrations, comment spam and login brute-forcing. This is a follow-up to an earlier fix that left this replay path open.

Am I affected?

Look for drupal/captcha and its installed version in composer.lock. The listed fixed versions are 1.18.0 and 2.0.11, but the advisory does not supply affected version ranges. Check whether your project uses CAPTCHA-protected forms; the description explains that solved sessions are remembered to skip challenges on later steps of multi-step forms.

What to do

Check which version you have, then update to a fixed release for your branch (1.18.0, 2.0.11):

composer show drupal/captcha | grep versions
composer update drupal/captcha

If your version constraint in composer.json keeps you below a fixed release, raise it first. Whether your configuration is affected, and the exact version ranges, are in the advisory itself.

The advisory's description

The CAPTCHA module places a configurable challenge on forms to block automated submissions. To skip the challenge on later steps of the same multi-step form, the module remembers that a CAPTCHA session has been solved.

The module does not fully invalidate a solved CAPTCHA session. As a result, a protected form that was already submitted once can be submitted again without solving a new CAPTCHA. This weakens the protection the module provides against automated submissions such as spam registrations, comment spam, and login brute-forcing.

This is a follow-up to the earlier CAPTCHA replay fix (SA-CONTRIB-2026-015 / CVE-2026-3214), which closed one replay path but left this one open.

The advisory

From OSV.dev, which gathers the GitHub Advisory Database, FriendsOfPHP and Drupal security advisories; the summary is theirs. The description is OSV's record of the advisory. "In plain words", "Am I affected?" and "If you cannot update yet" are based on that advisory, and checked to name no version it does not.