{"id":"DRUPAL-CONTRIB-2026-281","aliases":["CVE-2026-118582"],"title":"The CAPTCHA module places a configurable challenge on forms to block automated submissions.","titleSource":"OSV","descriptionSource":"OSV","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.\n\nThe 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.\n\nThis is a follow-up to the earlier CAPTCHA replay fix ([SA-CONTRIB-2026-015](https://www.drupal.org/sa-contrib-2026-015) / CVE-2026-3214), which closed one replay path but left this one open.","severity":"unknown","score":null,"published":"2026-10-28T17:27:47.000Z","modified":"2026-10-30T03:08:46.618Z","withdrawn":false,"knownExploited":false,"affected":[{"ecosystem":"Packagist:https://packages.drupal.org/8","name":"drupal/captcha","sources":[{"name":"OSV · DRUPAL-CONTRIB-2026-281","url":"https://osv.dev/vulnerability/DRUPAL-CONTRIB-2026-281"}],"ranges":[{"events":[{"introduced":"0"},{"fixed":"1.18.0"}],"type":"ECOSYSTEM","database_specific":{"constraint":"<1.18.0"}},{"events":[{"introduced":"2.0.0"},{"fixed":"2.0.11"}],"type":"ECOSYSTEM","database_specific":{"constraint":">=2.0.0 <2.0.11"}}],"versions":[],"fixed":["1.18.0","2.0.11"]}],"sourceAffected":[],"references":["https://www.drupal.org/sa-contrib-2026-281"],"sources":[{"name":"OSV","id":"DRUPAL-CONTRIB-2026-281","modified":"2026-10-28T18:15:02.682149310Z","url":"https://osv.dev/vulnerability/DRUPAL-CONTRIB-2026-281"},{"name":"CVE","id":"CVE-2026-118582","modified":"2026-10-30T03:08:46.618Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-118582"}],"assessments":[],"cve":{"records":[{"id":"CVE-2026-118582","source":"drupal","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-10-28T16:08:24.142Z","published":"2026-10-30T03:08:46.618Z","modified":"2026-10-30T03:08:46.618Z"}],"publishers":[{"name":"drupal","role":"CNA","organizationId":"2c85b837-eb8b-40ed-9d74-228c62987387","modified":"2026-10-30T03:08:46.618Z"}],"references":[{"url":"https://www.drupal.org/sa-contrib-2026-281","tags":[],"source":"drupal"}],"weaknesses":[{"id":"CWE-288","description":"CWE-288 Authentication Bypass Using an Alternate Path or Channel","source":"drupal"}],"applicability":[],"prioritization":[]},"products":[{"vendor":"Drupal","name":"CAPTCHA","platforms":[],"versions":[{"version":"0.0.0","status":"affected","lessThan":"1.18.0","versionType":"semver"},{"version":"2.0.0","status":"affected","lessThan":"2.0.11","versionType":"semver"}],"cpes":[],"source":"drupal","url":"https://www.cve.org/CVERecord?id=CVE-2026-118582"}],"remediation":[],"observedAt":"2026-10-30T03:42:51.014Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T05:25:31.914Z"},"coverage":[{"source":"NVD","status":"available","checkedAt":"2026-10-30T06:10:31.530Z","attemptedAt":"2026-10-30T06:10:31.530Z"},{"source":"GHSA","status":"no-result","checkedAt":"2026-10-30T06:10:31.530Z","attemptedAt":"2026-10-30T06:10:31.530Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-30T06:10:31.664Z","attemptedAt":"2026-10-30T06:10:31.664Z"},{"source":"EPSS","status":"no-result","checkedAt":"2026-10-30T06:10:31.151Z","attemptedAt":"2026-10-30T06:10:31.151Z"}],"evidence":[{"source":"NVD","id":"CVE-2026-118582","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118582","modified":"2026-10-30T04:18:23.960","checkedAt":"2026-10-30T06:10:31.530Z"},{"source":"ENISA EUVD","id":"EUVD-2026-113695","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-113695","modified":"Oct 30, 2026, 3:08:46 AM","checkedAt":"2026-10-30T06:10:31.664Z"}],"aiSummary":null}