Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege tenant user
-
DeliveryTamper request record key to another tenant's ID
-
ExploitScope condition dropped for primary-key lookup
-
ExecutionfindByKey/exists loads out-of-scope record
-
ImpactRead, modify, or delete victim's data
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Incorrect resource transfer between spheres
|
| Exploitation Conditions | Requires an authenticated low-privilege session (PR:L) in a Wheels 4.0.0-4.1.2 application that relies on scope conditions for ownership or tenant authorization AND passes request-supplied keys into findByKey(), exists(key=), updateByKey(), or deleteByKey(). The exists(key=) information-leak path additionally requires production mode with error information disabled, where it returns true for an out-of-scope key instead of throwing. LIMITING FACTORS: applications that perform explicit ownership checks rather than depending on scoped finders are not exploitable; the unaffected methods (other scope-aware finders, aggregates, updateAll(), deleteAll()) provide no path; and the attacker must already hold a valid authenticated account on the target tenant-aware application. |
| Impact | This is a genuine access-control (IDOR/broken object-level authorization) flaw, not merely a high-CVSS-but-low-risk issue, though its real-world urgency is tempered by prevalence and exploitation conditions. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N = 8.1) indicates a network-reachable, low-complexity attack requiring only low privileges (PR:L) and no user interaction, yielding high confidentiality and integrity impact - fully consistent with an authenticated tenant user reading, modifying, or deleting another tenant's record. No EPSS score, CISA KEV listing, or POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the risk is therefore driven by the inherent ease of abuse rather than observed in-the-wild activity. One nuance to verify: the input tag labels this 'Information Disclosure,' but the description explicitly includes modify and delete of out-of-scope records (via updateByKey()/deleteByKey()), so the integrity impact is real and the issue is broader than pure disclosure - treat it as broken access control. Exploitation is gated on an application design pattern (reliance on scopes for ownership/tenant authorization plus request-supplied keys), so not every Wheels deployment is affected. |
| Exploit ScenarioDerived | In a multi-tenant Wheels application that enforces ownership by chaining scope conditions onto findByKey()/exists(key=)/updateByKey()/deleteByKey(), an authenticated low-privilege user alters a record identifier in a request (e.g., /orders/edit?key=1042) to one belonging to another tenant. Because the finder replaces the scope condition with a bare primary-key condition, the framework loads the out-of-scope record and the application then displays, updates, or deletes the victim's data. No public exploit code was identified, but abuse requires only a modified request parameter against a vulnerable authorization pattern. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Broken object-level authorization in the Wheels (CFML) framework 4.0.0 through 4.1.2 lets an authenticated low-privilege attacker supply a record key to findByKey(), exists(key=), updateByKey(), or deleteByKey() and have the framework drop the application's scope condition (such as a tenant or owner filter), enabling read, modification, or deletion of another user's or tenant's record. The flaw is remotely exploitable (AV:N, PR:L, no user interaction) with high confidentiality and integrity impact but no availability impact, and the exists(key=) variant additionally leaks record existence by returning true for an out-of-scope key when the application runs in production mode with error information disabled. No public exploit code or CISA KEV entry is identified at time of analysis, and exploitation requires an application that relies on Wheels scopes for ownership or tenant authorization and passes request-supplied keys into the affected methods.
RemediationAI
Upgrade to Wheels 4.2.0, the vendor-released patch that combines key conditions with incoming scope, query-builder, or where conditions in findByKey(), exists(key=), updateByKey(), and deleteByKey(); the advisory is at https://github.com/wheels-dev/wheels/security/advisories/GHSA-2qh9-qcxq-f8qc. If an immediate upgrade is not possible, compensating controls are: (1) add explicit ownership or tenant checks in application code before calling the four affected methods with any key derived from a request, which is reliable but requires touching every such call site and is easy to miss; (2) resolve client-supplied keys through an already-scoped lookup rather than passing them directly into those methods, which contains the flaw but may require refactoring; and (3) for the exists(key=) information-leak path, enable error information in the environment so the method throws on an out-of-scope key instead of returning true, accepting the trade-off that error details may be disclosed to users. Given the low-privilege, network-reachable attack path, patching should be prioritized for multi-tenant Wheels applications that depend on scopes for authorization, even though no public exploit code or CISA KEV listing was identified at time of analysis.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Wheels is a ColdFusion (CFML) MVC framework, and the affected logic lives in its model-layer query generation for scope-aware finders. When an application defines a scope that encodes an ownership or tenant constraint and then calls findByKey(), exists(key=), updateByKey(), or deleteByKey(), Wheels 4.0.0-4.1.2 substitutes the primary-key condition for the incoming scope condition instead of conjoining the two with a logical AND. The generated query therefore omits the tenant or owner predicate, so a key that does not belong to the caller's scope is still matched and returned, updated, or deleted. The advisory assigns CWE-669 (Incorrect Resource Transfer Between Spheres), but operationally this is a classic insecure direct object reference / broken object-level authorization (CWE-639) driven by a user-controlled key. In the exists(key=) path, when error information is disabled (a common production setting), the method returns true for an out-of-scope key rather than throwing, which both bypasses the authorization signal and confirms the existence of a foreign record. The 4.2.0 fix changes the query builder to combine key conditions with incoming scope, query-builder, or where conditions across all four methods; other scope-aware finders, aggregates, updateAll(), and deleteAll() already handle scope correctly and are not affected.
Know when Wheels 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:H/I:H/A:N
Network-facing web request with a valid low-privilege account (PR:L), no interaction; reading other tenants' data gives C:H and modify/delete gives I:H, with data deletion scored as integrity rather than availability (A:N).
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
2DescriptionCVE.org
Wheels 4.0.0 through 4.1.2 before 4.2.0 replaces incoming scope conditions with a primary-key condition in findByKey() and exists(key=). For exists(key=), production with error information disabled returns true for an out-of-scope key instead of throwing. Applications relying on scopes for ownership or tenant authorization can therefore load and subsequently modify or delete another user's or tenant's record when the key comes from a request. The 4.2.0 fix combines key conditions with incoming scope, query-builder or where conditions in findByKey(), exists(key=), updateByKey() and deleteByKey(). Other scope-aware finders, aggregates, updateAll() and deleteAll() are not affected.
Technical POC Analysis
The bug class is broken object-level authorization via a user-controlled key.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Wheels, a CFML framework used in web applications, versions 4.0.0 through 4.1.2, contains a broken object-level authorization flaw that allows any authenticated user to bypass tenant or ownership filters and access, modify, or delete records belonging to other users or tenants. This could lead to unauthorized data exposure, data integrity compromise, and cross-tenant data leakage, impacting customer trust and regulatory compliance. Leadership should prioritize remediation because the vulnerability is remotely exploitable with low privileges and requires no user interaction; no public exploit identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: Implement application-level authorization checks to verify that every record key passed to findByKey(), exists(key=), updateByKey(), or deleteByKey() belongs to the authenticated user's tenant or ownership scope before calling these methods. Override or wrap these methods to enforce scope conditions. Avoid passing user-supplied keys directly without validation. Monitor for abnormal record access patterns. Consider disabling the affected methods if not essential.
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
SQL injection in the Wheels CFML framework versions 1.1.8 through 4.1.1 can let unauthenticated remote attackers alter S
SQL injection in the Wheels CFML framework through 4.1.2 lets remote attackers manipulate SQL statements when an applica
Remote, unauthenticated attackers can access password-less development tools under /wheels/* in Wheels 4.0.0 through 4.1
Broken object-level authorization in the Wheels CFML framework (versions 1.1 through 4.1.2) allows an authenticated low-
Unauthenticated request-context confusion in Wheels 4.0.6 through 4.1.2 lets any remote client push a normal request int
Exception-detail disclosure in the Wheels CFML framework (versions 3.0.0 through 4.1.1) lets a remote, unauthenticated c
Information disclosure in the Wheels CFML framework through 4.1.1 allows an unauthenticated remote attacker who wins a c
Reload-password and code disclosure, plus unintended state-changing operations against a foreign local server, affect de
Wheels 4.0.0 through 4.1.2 performs case-insensitive path-containment checks on case-sensitive filesystems, so a pre-exi
EUVD-2026-102607
GHSA-r2r4-mr5f-x9qg
NVD
CVE.org
EPSS
Exploit-DB