Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency mongoose to v6 [security] #346

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented May 28, 2023

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
mongoose (source) 5.8.5 -> 6.13.6 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2022-2564

Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment. Affected versions of this package are vulnerable to Prototype Pollution. The Schema.path() function is vulnerable to prototype pollution when setting the schema object. This vulnerability allows modification of the Object prototype and could be manipulated into a Denial of Service (DoS) attack.

CVE-2023-3696

Prototype Pollution in GitHub repository automattic/mongoose prior to 7.3.3, 6.11.3, and 5.13.20.

CVE-2022-24304

Description

Mongoose is a MongoDB object modeling tool designed to work in an asynchronous environment.

Affected versions of this package are vulnerable to Prototype Pollution. The Schema.path() function is vulnerable to prototype pollution when setting the schema object. This vulnerability allows modification of the Object prototype and could be manipulated into a Denial of Service (DoS) attack.

Proof of Concept

// poc.js
const mongoose = require('mongoose');
const schema = new mongoose.Schema();

malicious_payload = '__proto__.toString'

schema.path(malicious_payload, [String])

x = {}
console.log(x.toString()) // crashed (Denial of service (DoS) attack)

Impact

This vulnerability can be manipulated to exploit other types of attacks, such as Denial of service (DoS), Remote Code Execution, or Property Injection.

CVE-2024-53900

Mongoose versions prior to 8.8.3, 7.8.3, and 6.13.5 are vulnerable to improper use of the $where operator. This vulnerability arises from the ability of the $where clause to execute arbitrary JavaScript code in MongoDB queries, potentially leading to code injection attacks and unauthorized access or manipulation of database data.

CVE-2025-23061

Mongoose versions prior to 8.9.5, 7.8.4, and 6.13.6 are vulnerable to improper use of the $where operator. This vulnerability arises from the ability of the $where clause to execute arbitrary JavaScript code in MongoDB queries, potentially leading to code injection attacks and unauthorized access or manipulation of database data.

NOTE: this issue exists because of an incomplete fix for CVE-2024-53900.


Release Notes

Automattic/mongoose (mongoose)

v6.13.6

Compare Source

===================

v6.13.5

Compare Source

v6.13.4

Compare Source

v6.13.3

Compare Source

v6.13.2

Compare Source

===================

  • fix(document): make set() respect merge option on deeply nested objects #​14870 #​14878

v6.13.1

Compare Source

v6.13.0

Compare Source

v6.12.9

Compare Source

v6.12.8

Compare Source

===================

  • fix(document): handle virtuals that are stored as objects but getter returns string with toJSON #​14468 #​14446
  • fix(schematype): consistently set wasPopulated to object with value property rather than boolean #​14418
  • docs(model): add extra note about lean option for insertMany() skipping casting #​14415 #​14376

v6.12.7

Compare Source

v6.12.6

Compare Source

v6.12.5

Compare Source

v6.12.4

Compare Source

v6.12.3

Compare Source

v6.12.2

Compare Source

v6.12.1

Compare Source

v6.12.0

Compare Source

===================

  • feat: use mongodb driver v4.17.1
  • fix(model): make Model.bulkWrite() with empty array and ordered false not throw an error #​13664
  • fix(document): correctly handle inclusive/exclusive projections when applying subdocument defaults #​13763 #​13720

v6.11.6

Compare Source

===================

v6.11.5

Compare Source

===================

  • fix(schema): make Schema.prototype.clone() avoid creating different copies of subdocuments and single nested paths underneath single nested paths #​13671 #​13626
  • fix: custom debug function not processing all args #​13418

v6.11.4

Compare Source

===================

  • perf: speed up mapOfSubdocs benchmark by 4x by avoiding unnecessary O(n^2) loop in getPathsToValidate() #​13614

7.3.4 / 2023-07-12

  • chore: release 7.4.4 to overwrite accidental publish of 5.13.20 to latest tag

v6.11.3

Compare Source

===================

  • fix: avoid prototype pollution on init
  • fix(schema): correctly handle uuids with populate() #​13317 #​13595

v6.11.2

Compare Source

===================

v6.11.1

Compare Source

===================

  • fix(query): apply schema-level paths before calculating projection for findOneAndUpdate() #​13348 #​13340
  • fix: add SUPPRESS_JEST_WARNINGS environment variable to hide jest warnings #​13384 #​13373
  • types(model): allow overwriting expected param type for bulkWrite() #​13292 hasezoey

v6.11.0

Compare Source

===================

v6.10.5

Compare Source

===================

  • perf(document): avoid unnecessary loops, conditionals, string manipulation on Document.prototype.get() for 10x speedup on top-level properties #​12953
  • fix(model): execute valid write operations if calling bulkWrite() with ordered: false #​13218 #​13176
  • fix(array): pass-through all parameters #​13202 #​13201 hasezoey
  • fix: improve error message when sorting by empty string #​13249 #​10182
  • docs: add version support and check version docs #​13251 #​13193

v6.10.4

Compare Source

===================

  • fix(document): apply setters on resulting value when calling Document.prototype.$inc() #​13178 #​13158
  • fix(model): add results property to unordered insertMany() to make it easy to identify exactly which documents were inserted #​13163 #​12791
  • docs(guide+schematypes): add UUID to schematypes guide #​13184

v6.10.3

Compare Source

===================

v6.10.2

Compare Source

===================

  • fix(document): avoid setting array default if document array projected out by sibling projection #​13135 #​13043 #​13003
  • fix(documentarray): set correct document array path if making map of document arrays #​13133
  • fix: undo accidental change to engines in package.json #​13124 lorand-horvath
  • docs: quick improvement to Model.init() docs #​13054

v6.10.1

Compare Source

===================

v6.10.0

Compare Source

===================

v6.9.3

Compare Source

==================

v6.9.2

Compare Source

==================

v6.9.1

Compare Source

==================

  • fix(document): isModified should not be triggered when setting a nested boolean to the same value as previously #​12994 lpizzinidev
  • fix(document): save newly set defaults underneath single nested subdocuments #​13002 #​12905
  • fix(update): handle custom discriminator model name when casting update #​12947 wassil
  • fix(connection): handles unique autoincrement ID for connections #​12990 lpizzinidev
  • fix(types): fix type of options of Model.aggregate #​12933 ghost91-
  • fix(types): fix "near" aggregation operator input type #​12954 Jokero
  • fix(types): add missing Top operator to AccumulatorOperator type declaration #​12952 lpizzinidev
  • docs(transactions): added example for Connection.transaction() method #​12943 #​12934 lpizzinidev
  • docs(populate): fix out of date comment referencing onModel property #​13000
  • docs(transactions): fix typo in transactions.md #​12995 Parth86

v6.9.0

Compare Source

==================

v6.8.4

Compare Source

==================

v6.8.3

Compare Source

==================

  • perf: improve performance of assignRawDocsToIdStructure for faster populate on large docs #​12867 Uzlopak
  • fix(model): ensure consistent ordering of validation errors in insertMany() with ordered: false and rawResult: true #​12866
  • fix: avoid passing final callback to pre hook, because calling the callback can mess up hook execution #​12836
  • fix(types): avoid inferring timestamps if methods, virtuals, or statics set #​12871
  • fix(types): correctly infer string enums on const arrays #​12870 JavaScriptBach
  • fix(types): allow virtuals to be invoked in the definition of other virtuals #​12874 sffc
  • fix(types): add type def for Aggregate#model without arguments #​12864 hasezoey
  • docs(discriminators): add section about changing discriminator key #​12861
  • docs(typescript): explain that virtuals inferred from schema only show up on Model, not raw document type #​12860 #​12684

v6.8.2

Compare Source

==================

  • fix(schema): propagate strictQuery to implicitly created schemas for embedded discriminators #​12827 #​12796
  • fix(model): respect discriminators with Model.validate() #​12824 #​12621
  • fix(query): fix unexpected validation error when doing findOneAndReplace() with a nullish value #​12826 #​12821
  • fix(discriminator): apply built-in plugins to discriminator schema even if mergeHooks and mergePlugins are both false #​12833 #​12696
  • fix(types): add option "overwriteModels" as a schema option #​12817 #​12816 hasezoey
  • fix(types): add property "defaultOptions" #​12818 hasezoey
  • docs: make search bar respect documentation version, so you can search 5.x docs #​12548
  • docs(typescript): make note about recommending strict mode when using auto typed schemas #​12825 #​12420
  • docs: add section on sorting to query docs #​12588 IslandRhythms
  • test(query.test): add write-concern option #​12829 hasezoey

v6.8.1

Compare Source

==================

v6.8.0

Compare Source

==================

v6.7.5

Compare Source

==================

v6.7.4

Compare Source

==================

v6.7.3

Compare Source

v6.7.2

Compare Source

v6.7.1

Compare Source

==================

v6.7.0

Compare Source

v6.6.7

Compare Source

==================

v6.6.6

Compare Source

==================

v6.6.5

Compare Source

v6.6.4

Compare Source

v6.6.3

Compare Source

==================

v6.6.2

Compare Source

v6.6.1

Compare Source

==================

  • fix: correctly apply defaults after subdoc init #​12328
  • fix(array): avoid using default _id when using pull() #​12294
  • fix: allow null values inside $expr objects #​12429 MartinDrost
  • fix(query): use correct Query constructor when cloning query #​12418
  • docs(website): remove setting "latest38x" which is not used anywhere #​12396 hasezoey

v6.6.0

Compare Source

==================

v6.5.5

Compare Source

==================

  • fix(setDefaultsOnInsert): avoid applying defaults on insert if nested property set #​12279
  • fix(model): make applyHooks() and applyMethods() handle case where custom method is set to Mongoose implementation #​12254
  • fix(types): add string "ascending" and "descending" index-directions #​10269
  • docs: upgrade dox to 1.0.0 #​12403 hasezoey
  • docs: update old mongodb nodejs driver documentation urls #​12387 hasezoey
  • docs: update JSDOC ... (spread) definition #​12388 hasezoey
  • refactor(model): allow optionally passing indexes to createIndexes and cleanIndexes #​12280 AbdelrahmanHafez

v6.5.4

Compare Source

==================

  • fix(document): allow calling $assertPopulated() with values to better support manual population #​12233
  • fix(connection+mongoose): better handling for calling model() with 1 argument #​12359
  • fix(model): allow defining discriminator virtuals and methods using schema options #​12326
  • fix(types): fix MongooseQueryMiddleware missing "findOneAndReplace" and "replaceOne" #​12330 #​12329 Jule- lpizzinidev
  • fix(types): fix replaceOne return type #​12351 lpizzinidev
  • fix(types): use this for return type from $assertPopulated() #​12234
  • docs: highlight how to connect using auth in README #​12354 AntonyOnScript
  • docs: improve jsdoc comments for private methods #​12337 hasezoey
  • docs: fix minor typo in compatibility table header #​12355 skyme5

v6.5.3

Compare Source

==================

  • fix(document): handle maps when applying defaults to nested paths #​12322
  • fix(schema): make ArraySubdocuments apply _id defaults on init #​12264
  • fix(populate): handle specifying recursive populate as a string with discriminators #​12266
  • perf(types): remove extends Query in Schema.pre() and Schema.post(), loosen discriminator() generic #​10349
  • perf(types): some more micro-optimizations re: #​10349, remove extra type checkin

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from a3b8c3b to ec9c54a Compare June 4, 2023 12:03
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 3 times, most recently from 5a62d03 to 65d34b9 Compare June 19, 2023 08:23
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 65d34b9 to c7f81ee Compare June 29, 2023 11:02
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 2 times, most recently from 5232bd3 to d66ff08 Compare July 9, 2023 10:44
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 2 times, most recently from 90050bf to f68ffca Compare July 19, 2023 10:57
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from f68ffca to bf8a510 Compare July 27, 2023 18:38
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from bf8a510 to 9775392 Compare September 19, 2023 13:20
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 9775392 to c94c803 Compare October 9, 2023 10:27
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from c94c803 to 1e42e85 Compare October 23, 2023 13:09
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 1e42e85 to 64ac3c7 Compare November 6, 2023 07:20
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 2 times, most recently from 4ffcd6e to a9c5d90 Compare February 4, 2024 11:11
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from a9c5d90 to 1138695 Compare February 25, 2024 10:13
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 1138695 to 147d659 Compare April 14, 2024 08:48
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 147d659 to 467d247 Compare April 25, 2024 07:32
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 467d247 to 3594718 Compare June 4, 2024 11:40
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 3594718 to 1db2bce Compare July 21, 2024 14:36
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 1db2bce to 8fcda80 Compare August 6, 2024 09:32
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v5.13.15 [security] chore(deps): update dependency mongoose to v5.13.20 [security] Aug 6, 2024
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 8fcda80 to 99fc925 Compare August 28, 2024 08:32
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 99fc925 to df22abf Compare October 9, 2024 07:50
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 2 times, most recently from 56c878b to fd59444 Compare December 3, 2024 04:23
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v5.13.20 [security] chore(deps): update dependency mongoose to v8 [security] Dec 3, 2024
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from fd59444 to 516bbd3 Compare December 4, 2024 18:40
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v8 [security] chore(deps): update dependency mongoose to v5.13.20 [security] Dec 4, 2024
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 516bbd3 to e914427 Compare December 4, 2024 22:27
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v5.13.20 [security] chore(deps): update dependency mongoose to v6 [security] Dec 4, 2024
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from e914427 to 0393ff5 Compare January 16, 2025 21:36
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v6 [security] chore(deps): update dependency mongoose to v8 [security] Jan 16, 2025
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 0393ff5 to ee24c3a Compare January 17, 2025 21:27
@renovate renovate bot changed the title chore(deps): update dependency mongoose to v8 [security] chore(deps): update dependency mongoose to v6 [security] Jan 17, 2025
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch 2 times, most recently from 325e150 to 43674bb Compare January 23, 2025 18:13
@renovate renovate bot force-pushed the renovate/npm-mongoose-vulnerability branch from 43674bb to e0d9b14 Compare January 30, 2025 18:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants