fix: security vulnerability that allows remote code execution (GHSA-p6h4-93qp-jhcm) (#7843)
This commit is contained in:
@@ -35,7 +35,7 @@ export class Config {
|
||||
config.applicationId = applicationId;
|
||||
Object.keys(cacheInfo).forEach(key => {
|
||||
if (key == 'databaseController') {
|
||||
config.database = new DatabaseController(cacheInfo.databaseController.adapter);
|
||||
config.database = new DatabaseController(cacheInfo.databaseController.adapter, config);
|
||||
} else {
|
||||
config[key] = cacheInfo[key];
|
||||
}
|
||||
@@ -78,6 +78,7 @@ export class Config {
|
||||
security,
|
||||
enforcePrivateUsers,
|
||||
schema,
|
||||
requestKeywordDenylist,
|
||||
}) {
|
||||
if (masterKey === readOnlyMasterKey) {
|
||||
throw new Error('masterKey and readOnlyMasterKey should be different');
|
||||
@@ -116,6 +117,15 @@ export class Config {
|
||||
this.validateSecurityOptions(security);
|
||||
this.validateSchemaOptions(schema);
|
||||
this.validateEnforcePrivateUsers(enforcePrivateUsers);
|
||||
this.validateRequestKeywordDenylist(requestKeywordDenylist);
|
||||
}
|
||||
|
||||
static validateRequestKeywordDenylist(requestKeywordDenylist) {
|
||||
if (requestKeywordDenylist === undefined) {
|
||||
requestKeywordDenylist = requestKeywordDenylist.default;
|
||||
} else if (!Array.isArray(requestKeywordDenylist)) {
|
||||
throw 'Parse Server option requestKeywordDenylist must be an array.';
|
||||
}
|
||||
}
|
||||
|
||||
static validateEnforcePrivateUsers(enforcePrivateUsers) {
|
||||
|
||||
Reference in New Issue
Block a user