
PEACH
Un cadre d’isolation des locataires
An authenticated user who can import into any collection can pollute Object.prototype for the whole Directus process with a single CSV import. The polluted key is then folded into the SQL of every subsequent object-form query, so logins and most reads fail with a database error. The instance stays unusable until it is restarted. This is a bypass of the fix for GHSA-gwvv-rr68-cmv6.
The fix for GHSA-gwvv-rr68-cmv6 introduced a setDeep helper that builds nested paths on null-prototype objects. It was meant to reuse an existing path segment only when that segment is an own object, but it checked only typeof node[key] === 'object'. That plain read follows the prototype chain, so an inherited __proto__ segment resolves to Object.prototype whenever the current node is an ordinary object.
The CSV importer builds each row by calling setDeep once per header, and it runs each cell through parseJSON first. A cell containing {} therefore places an ordinary, prototype-bearing object into the row. A later header that walks through it reaches the shared prototype:
a,a.__proto__.polluted
{},"yes"The first header sets row.a = {}. The second header walks row, then a, then a.__proto__ (Object.prototype), and sets Object.prototype.polluted = 'yes'.
knex builds object-form .where() and .update() clauses by enumerating inherited enumerable properties, so after the import every such query gains a phantom polluted column. For example, the last_access update that runs on every login becomes update directus_users set last_access = ?, polluted = 'yes' where id = ? and polluted = 'yes', which fails with an unknown-column error. Because the injected key also lands in the WHERE clause, affected writes fail rather than modify extra columns.
create and update permission on a single collection is required. No admin access or non-default configuration is needed.Reported by Al Baradi Joy (@a1barad1)
Source: NVD
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."