FICHE CVE

CVE-2026-111445

Publiée le 2026-10-16 · Dernière modification le 2026-10-19

🇫🇷 EN BREF

Les versions 4.0.0 à 4.1.2 de Wheels sont affectées par une faille dans la manière dont le framework gère les requêtes de base de données. Lors de l'utilisation de méthodes spécifiques telles que `findByKey()` ou `exists(key=)`, le logiciel remplace par erreur les filtres de portée de sécurité (security scope filters) par la clé primaire de l'enregistrement. Cela signifie que si un développeur utilise des scopes pour s'assurer qu'un utilisateur n'accède qu'à ses propres données, le framework ignore ces restrictions lors de ces recherches spécifiques.

Un attaquant authentifié peut exploiter cette faille via le réseau pour accéder à des enregistrements appartenant à d'autres utilisateurs ou clients, pour les modifier ou les supprimer. Cela représente une violation significative de la confidentialité et de l'intégrité, car cela permet une manipulation non autorisée des données. Comme l'attaque ne nécessite que des privilèges d'utilisateur de bas niveau et aucune interaction particulière de la part d'autres utilisateurs, elle est relativement facile à exécuter si l'application s'appuie sur ces méthodes spécifiques pour l'autorisation.

CVSS 3.18.1 ÉLEVÉE
Type de faiblesse
Publiée2026-10-16
Dernière modification2026-10-19

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Privilèges requisFaibles
Interaction utilisateurAucune
PortéeInchangée
Impact sur la confidentialitéÉlevé
Impact sur l'intégritéÉlevé
Impact sur la disponibilitéAucun

RÉFÉRENCES

Description officielle du NVD (en anglais)

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.