If passwords are used for authentication, MongoDB must store only hashed, salted representations of passwords.

Severity
Group ID
Group Title
Version
Rule ID
Date
STIG Version
highV-265917SRG-APP-000171-DB-000074MD7X-00-003800SV-265917r1028796_rule2024-09-271
Description
The DOD standard for authentication is DOD-approved public key infrastructure (PKI) certificates. Authentication based on user ID and password may be used only when it is not possible to employ a PKI certificate, and requires authorizing official (AO) approval. In such cases, database passwords stored in clear text, using reversible encryption, or using unsalted hashes would be vulnerable to unauthorized disclosure. Database passwords must always be in the form of one-way, salted hashes when stored internally or externally to MongoDB.
ℹ️ Check
MongoDB supports several authentication mechanisms, some of which store credentials on the MongoDB server. If these mechanisms are in use, MongoDB's authSchemaVersion in the admin.system.version collection must be set to "5". 1. Validate that authenticationMechanisms is defined in config file (default location /etc/mongod.conf). The MongoDB Configuration file should contain the similar to the following entry: setParameter: authenticationMechanisms: SCRAM-SHA-256 If the config file does not contain an authenticationMechanisms entry, that is a finding. 2. Validate authSchemaVersion is set to "5". Using the shell, run the following command: > db.getSiblingDB("admin").system.version.find({ "_id" : "authSchema"}, {_id: 0}) It should return: { "currentVersion" : 5 } If currentVersion is less than 5, this is a finding.
✔️ Fix
1. Define authenticationMechanisms in the MongoDB Configuration file (default location: /etc/mongod.conf), define one of more authenticationMechanisms, from the subset below: SCRAM-SHA-256 MONGODB-X509 GSSAPI PLAIN Example: setParameter: authenticationMechanisms: SCRAM-SHA-256 2. authSchemaVersion should be more than 5. Run the following command: > db.adminCommand({authSchemaUpgrade: 1}) In the unlikely event that an error is encountered, users may safely rerun the authSchemaUpgrade command.