Read the docs

Wheels findByKey() and exists(key=) ignore scope conditions

Priority LOW 37CWE-669Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
High · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA.

Summary

Wheels from 4.0.0 before 4.2.0 replaces incoming scope conditions with a primary key condition in findByKey() and exists(key=). With error information disabled in production, exists(key=) returns true for an out of scope key instead of throwing. A network attacker with low privileges can load, modify or delete another user's or tenant's record when applications rely on scopes for ownership or tenant authorization and the key comes from a request.

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

Description from the CNA

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00278 20th percentileScored 2026-11-07
Fix Fixed Wheels (Wheels): 4.2.0

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
WheelsWheels4.0.0 to before 4.2.04.2.0Patch availableCNA
  • Wheels VendorWheels Affected 4.0.0 to before 4.2.0 Fixed in 4.2.0 Patch available CNA

Remediation

Upgrade Wheels to 4.2.0, which combines key conditions with incoming scope, query builder or where conditions in findByKey(), exists(key=), updateByKey() and deleteByKey().

Written with Claude Haiku 5.5 from the sources below · 2026-10-28

  • Fix · CNA Wheels (Wheels) Fixed in 4.2.0

Fixed in the same release

Records fixed by the same vendor advisory or release, as the CNA lists them.

  • Release ·

    Wheels 4.2.0

    6 records Highest priority Priority MEDIUM 2 MEDIUM, 4 LOW

    Other records, highest priority first

    • TI-2026-75147 Wheels exposes unprotected development tools to remote clientsPriority MEDIUM 43
    • TI-2026-75145 SQL injection in Wheels on MySQL and MariaDB via unbound literalsPriority MEDIUM 43
    • TI-2026-75148 Wheels nested form updates can modify another parent's recordsPriority LOW 37

Timeline

  1. 2026-10-16 Threatist record created from CVE-2026-111445
  2. 2026-10-16 Priority changed: MEDIUM → LOW
  3. 2026-10-16 Alias added: GHSA-r2r4-mr5f-x9qg
  4. 2026-10-20 CISA SSVC decision points changed

References

  • TI-2026-74581 SQL injection in Wheels query builder and dynamic finders CVSS 3.1CRITICAL 9.8
  • TI-2026-75147 Wheels exposes unprotected development tools to remote clients CVSS 3.1HIGH 8.6
  • TI-2026-75145 SQL injection in Wheels on MySQL and MariaDB via unbound literals CVSS 3.1CRITICAL 9.8
  • TI-2026-75148 Wheels nested form updates can modify another parent's records CVSS 3.1HIGH 8.1
  • TI-2026-75152 Command injection and unsafe file handling in Wheels CLI CVSS 3.1HIGH 7.8
  • TI-2026-75144 Wheels lets unauthenticated clients enter a separate test context CVSS 3.1MEDIUM 6.5
See all 10 →

Sources