O Mongoose utiliza valores de chave de discriminador controlados por atacantes, incluindo o campo padrão ` t`, para indexar registros de objetos simples, como `Model.discriminators` e `schema.discriminators`, sem exigir que a propriedade seja própria do objeto. Consequentemente, valores como `constructor`, `toString` ou `hasOwnProperty` podem resolver para funções integradas herdadas em vez de um discriminador registrado, causando confusão de tipo na construção de modelos, criação de documentos, hidratação, conversão de consultas e atualizações, discriminadores incorporados e operações de preenchimento. Além disso, no caminho `insertOne` do `bulkWrite()` com `skipValidation` habilitado, um valor `constructor` pode fazer com que um objeto de entrada bruto seja armazenado sem a conversão de esquema ou filtragem rigorosa, e um documento envenenado armazenado pode fazer com que todas as consultas que o hidratem falhem até que o documento seja removido.