Skip to main content

Wheels Framework EUVDEUVD-2026-102600

| CVE-2026-111447 HIGH
External Control of Assumed-Immutable Web Parameter (CWE-472)
2026-10-16 mitre GHSA-3qfm-8v6g-jr47
8.1
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged user
  2. Exploit
    Submit nested form for own parent
  3. Execution
    Post another parent's child primary key
  4. Impact
    Reassign, edit, or delete victim's records

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V3 - Web Frontend Security Server-side parameter enforcement
Exploitation Conditions

Exploitable only against Wheels applications (versions 1.1 through 4.1.2) that use the framework's nestedProperties() feature with nested forms for hasMany, hasOne, or belongsTo associations; the flaw is that nestedProperties() resolves records by posted primary key without verifying ownership by the parent being saved. Requires an authenticated low-privileged user (PR:L) who can legitimately submit a nested form for their own parent. Deletion of other users' rows additionally requires allowDelete=true on the association; creation of attacker-chosen identities requires child models with composite primary keys not composed of foreign keys. Limiting factors: authentication is required, the application must actually employ nested properties/forms, and destructive deletion is gated on the allowDelete configuration - apps not using nestedProperties() are unaffected.

Impact

This is a genuine but conditionally-scoped authorization flaw (CWE-472, broken object-level authorization in Wheels' nestedProperties()), not an inflated high-CVSS issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N = 8.1 High) is internally consistent and aligns with the description: a low-privileged authenticated user working over the network can read, reassign, modify, or delete other tenants' hasMany/hasOne/belongsTo records by posting a primary key they do not own. The high I:H and C:H are justified because the attacker both discloses (reads via reassignment/editing) and tampers with other users' data. However, key prioritization signals are MISSING: no EPSS score, no CISA KEV listing, and no public POC were provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is therefore 'elevated where deployed' rather than 'urgent for everyone' - exploitation requires an application that actually uses nestedProperties() with nested forms, and deletion specifically requires allowDelete=true, so real-world impact depends heavily on how each Wheels app is built. The 'Information Disclosure' tag understates the issue, which is primarily unauthorized modification/reassignment/deletion (an IDOR-class authorization bypass) with disclosure as a secondary effect.

Exploit ScenarioDerived

A multi-tenant application built on Wheels lets authenticated users edit their own parent record through a nested form. A logged-in attacker submits the nested form for their own parent but substitutes the primary key of a child row (or belongsTo record) belonging to another user, causing the framework to resolve and update, reassign, or (if allowDelete=true) delete that victim's record. No public exploit code was identified at time of analysis, but the attack requires only a crafted form submission with an altered primary-key value.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Broken object-level authorization in the Wheels CFML framework (versions 1.1 through 4.1.2) allows an authenticated low-privileged user to tamper with other users' associated records through nested forms. The nestedProperties() helper resolves nested hasMany, hasOne, and belongsTo records by the primary key posted in the request without verifying that those rows belong to the parent record being saved, so an attacker who can legitimately submit a nested form for their own parent can reassign, edit, or - when allowDelete=true is configured - delete another parent's rows, and can also create new child rows with attacker-chosen identities when the child model uses a composite primary key that is not composed of foreign keys. The issue carries an assessed CVSS of 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N), requires authentication and actual use of nestedProperties() with nested forms, and is fixed in Wheels 4.2.0; no public exploit identified at time of analysis.

RemediationAI

Upgrade Wheels to 4.2.0, which is the vendor-released patch for this issue, and redeploy all applications built on the framework; consult the advisory at https://github.com/wheels-dev/wheels/security/advisories/GHSA-6979-65wv-7pxq for the fix details. Where an immediate upgrade is not possible, the most effective compensating control is to stop passing client-supplied primary keys through nestedProperties() - omit key fields from nested form payloads or map nested associations manually in the controller and verify each child's parent foreign key against the session-owned parent before saving; the trade-off is additional controller code and loss of the framework's automatic nested-save convenience. Additionally, set allowDelete=false on associations that do not need cascading deletes from forms, accepting that legitimate delete workflows must be handled explicitly, and audit models with composite primary keys that exclude foreign keys, since those allow request-chosen identities. Note that authentication alone does not mitigate the flaw - the attacker is a legitimate authenticated user acting on their own parent record - so authorization checks on the nested rows are required in addition to any access controls.

Affected VersionsENISA

Wheels 1.1.0 <4.2.0

Affected Packages

euvd wheels fix: 4.2.0

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 an open-source MVC framework for CFML/ColdFusion applications, and this issue is rooted in CWE-472 (External Control of Assumed-Immutable Web Parameter). When a controller saves a parent object with nestedProperties() enabled, the framework builds nested hasMany, hasOne, and belongsTo child objects from the primary keys supplied in the submitted form data, then loads and updates those records. Because the posted key is treated as trusted, immutable state, no ownership check is performed against the parent being saved; the key is externally controllable and directly determines which row is loaded and mutated. Two related variants follow from the same root cause: nested belongsTo records can be edited by posting a different associated record's key, and new child records whose composite primary keys are not built from foreign keys preserve the posted key values, letting the request dictate the record's identity. The CPE cpe:2.3:a:wheels:wheels:*:*:*:*:*:*:*:* confirms the affected component is the Wheels framework itself rather than any downstream application, so any application built on the vulnerable versions inherits the flaw wherever it uses these nesting features.

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

Vendor (mitre) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 8.1 HIGH

Network-facing form submission (AV:N/AC:L) by an authenticated low-privileged user (PR:L); high confidentiality and integrity from cross-tenant read/modify/delete, no direct availability impact to the system (A:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 05:16 EUVD
CVE Published
Oct 16, 2026 - 03:39 cve.org
HIGH 8.1

DescriptionCVE.org

Wheels 1.1 through 4.1.2 resolves nestedProperties() records by posted primary key without checking that they belong to the parent being saved. A user able to submit a nested form for their own parent can update and reassign another parent's hasMany or hasOne rows, or delete them when allowDelete=true. Nested belongsTo records can also be edited by posting another associated record's key. New child rows with composite primary keys not made up of foreign keys retain posted key values, allowing the request to choose their identity. This is fixed in 4.2.0.

Technical POC Analysis

CWE-639 (Authorization Bypass Through User-Controlled Key), with a secondary CWE-915 mass-assignment character.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Organizations using the Wheels CFML framework versions 1.1 through 4.1.2 are exposed to a high-severity broken object-level authorization flaw that allows authenticated low-privileged users to tamper with other users' records, potentially leading to unauthorized data modification, deletion, or creation. This vulnerability directly impacts data integrity and confidentiality across multi-user applications, and leadership should prioritize remediation to prevent insider threats or compromised accounts from causing widespread data corruption.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Low
Niche CFML/ColdFusion web framework, limited enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Wheels

View all

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy