Drupal Access Code
CVE-2025-10928
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify access-code-protected endpoint
-
DeliveryScript automated code submissions
-
ExploitBypass absent rate-limiting
-
ExecutionGuess valid access code
-
ImpactObtain unauthorized gated access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Brute-force prevention, rate limiting
|
| Exploitation Conditions | Exploitation requires reaching the Drupal 'Access code' module's authentication/code-entry interface on an instance running a version before 2.0.5; the module performs no throttling, lockout, or delay on repeated attempts, enabling automated guessing. Effectiveness is LIMITED by the entropy of the configured access codes (long/random codes resist guessing even without rate-limiting) and by the vendor-assigned PR:L, which implies some prior privilege or session may be needed to reach the form - though the description does not confirm an authentication gate. Impact is confined to the low-sensitivity access the code protects (C:L/I:L/A:L), not full site compromise. |
| Impact | This is a genuine but low-priority weakness. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L = 6.3 Medium) reflects an automatable network-based attack, but every impact metric is only Low, consistent with CWE-307 (missing brute-force throttling) rather than a direct code-execution or full-takeover flaw. EPSS is low at 0.24% (13th percentile), there is no CISA KEV listing, and no public exploit code was identified, so all exploitation signals point to low near-term risk. The signals are internally consistent - nothing here suggests an under-rated threat. One caveat: the vendor rated PR:L (authenticated), yet brute-forcing an access-code gate is typically reachable pre-authentication; the privilege prerequisite should be verified against the actual module deployment. Net assessment: real but modest issue, patch-when-convenient, not an emergency. |
| Exploit ScenarioDerived | A remote attacker repeatedly submits guesses to the Drupal 'Access code' module's entry form, which lacks any attempt-limiting or lockout, until a valid code is found and gated content or functionality is unlocked. Because the attack is network-based with low complexity (AV:N/AC:L), it is trivially scriptable against weak or short codes. No public proof-of-concept exploit has been identified at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 01, 2026
The Drupal Access Code module (versions before 2.0.5) lacks rate limiting on its access code entry form, allowing brute-force guessing of access codes. While the vendor's CVSS vector indicates some authentication is required (PR:L), our independent analysis rates it as unauthenticated (PR:N) with limited impact-only the low-sensitivity access protected by the code-not full site compromise. No public exploit code is identified, and EPSS is low (0.24%, 13th percentile).
RemediationAI
Upgrade the Drupal Access Code module to version 2.0.5 or later, as provided by the vendor patch at https://www.drupal.org/sa-contrib-2025-108. If immediate upgrade is not possible, implement compensating controls: enforce rate limiting on requests to the module's code-entry form endpoint using a reverse proxy (e.g., Nginx limit_req) or a web application firewall rule; this may affect legitimate users who make repeated attempts, so tune thresholds carefully. Additionally, ensure that access codes are long and randomly generated to increase entropy, making brute-force attempts infeasible even without rate limiting. If the module is not essential, consider disabling or uninstalling it to eliminate the attack surface, though this removes the access-control functionality.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in composer
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The Drupal Access Code module is a contributed module for the Drupal content management system that allows site administrators to restrict access to content by requiring users to enter a pre-shared code. The vulnerability is an instance of CWE-307 (Improper Restriction of Excessive Authentication Attempts): the module does not implement throttling, account lockout, or delay mechanisms on repeated code-entry attempts. This allows an attacker to automate guessing of the access code. The affected package is identified by CPE cpe:2.3:a:access_code_project:access_code:*:*:*:*:*:drupal:*:*, covering versions from 0.0.0 before 2.0.5. The root cause is the absence of rate-limiting logic in the module's form submission handling. Per our independent assessment, exploitation requires reaching the module's authentication/code-entry interface; the vendor's CVSS vector includes PR:L (authenticated), but our assessment uses PR:N (unauthenticated). The impact is confined to the low-sensitivity access the code protects, not full site compromise.
Know when Access Code gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
Brute-forcing an access-code gate is network-reachable, low-complexity and typically pre-auth (PR:N vs vendor PR:L), yielding low confidentiality access to gated content with no clear integrity/availability impact.
Primary rating from Vendor (drupal).
CVSS VectorVendor: drupal
DescriptionCVE.org
Improper Restriction of Excessive Authentication Attempts vulnerability in Drupal Access code allows Brute Force.This issue affects Access code: from 0.0.0 before 2.0.5.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
NVD
CVE.org
EPSS
VulDB
GitHub PoC
Exploit-DB