---
id: CVE-2026-111445
title: >-
  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=)
summary: >-
  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 in…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'
cvssSource: cna
cwe:
  - CWE-669
vendor: Wheels
product: Wheels
affected:
  - Wheels >= 4.0.0 < 4.2.0
published: '2026-10-16'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T03:35:00.952Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-111445'
references:
  - url: >-
      https://github.com/wheels-dev/wheels/security/advisories/GHSA-2qh9-qcxq-f8qc
tags:
  - cve.org
ingestedAt: '2026-10-16T03:57:49.273Z'
---

## Overview

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.

## Affected

- `Wheels >= 4.0.0 < 4.2.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
