Loading HuntDB...

GHSA-cgjx-mwpx-47jv

GitHub Security Advisory

Private Data Disclosure in express-restify-mongoose

✓ GitHub Reviewed HIGH Has CVE

Advisory Details

Affected versions of `express-restify-mongoose` are susceptible to an information leakage vulnerability which may allow an attacker to access fields on a model even if those fields are marked as private.

## Proof of Concept

If you have a user model that you want to protect, such as the following User model:
```
const User = mongoose.model('User', new mongoose.Schema({
name: String,
password: String,
}));
```

You would normally do something such as:
```
restify.serve(router, User, {
private: ['password'], // Set the password part of User as private, so outside people can't read it
})
```

This would hide the password field from people that send your application a `GET /User` and `GET /User/some-user-id` request.

A malicious user can go to your application and send a request for `GET /User?distinct=password` and get all the passwords for all the users in the database, despite the field being set to private. This could be used for other private data, if the malicious user knew what was set as private for specific routes.

## Recommendation

Version 2.x: Update to version 2.5.0 or later.
Version 3.x: Update to version 3.1.0 or later.

Affected Packages

npm express-restify-mongoose
Affected versions: 3.0.0 (fixed in 3.1.0)
npm express-restify-mongoose
Affected versions: 0 (fixed in 2.5.0)

Related CVEs

Key Information

GHSA ID
GHSA-cgjx-mwpx-47jv
Published
October 23, 2018 5:14 PM
Last Modified
August 31, 2020 6:10 PM
CVSS Score
7.5 /10
Primary Ecosystem
npm
Primary Package
express-restify-mongoose
GitHub Reviewed
✓ Yes

Dataset

Last updated: July 6, 2025 6:30 AM

Data from GitHub Advisory Database. This information is provided for research and educational purposes.