3.4.9Control what users install in Rev. 3
Withdrawn and incorporated elsewhere: 03.01.05 Least Privilege, 03.01.06 Least Privilege – Privileged Accounts, 03.01.07 Least Privilege – Privileged Functions, 03.04.08 Authorized Software – Allow by Exception, 03.12.03 Continuous Monitoring.
Status as of 2026-09-08
Rev. 2 is what a contract requires today. DFARS 252.204-7012 and the CMMC rule at 32 CFR 170 point at NIST SP 800-171 Rev. 2, and a standing DoD class deviation keeps it there. NIST has published Rev. 3, but publishing a revision does not change an obligation. A move to Rev. 3 would arrive through the Department's reform process and formal rulemaking, a change to that deviation or an amendment to the rule, not through publication. The Department has published its organization-defined parameter values for Rev. 3 in preparation; that is groundwork, not adoption.
Side by side
Rev. 2 · in force 3.4.9 User-Installed Software
Assessment objectives · 800-171A
- [a] a policy for controlling the installation of software by users is established
- [b] installation of software by users is controlled based on the established policy
- [c] installation of software by users is monitored
Rev. 3 · not adopted 03.01.05 Least Privilege
a. Allow only authorized system access for users (or processes acting on behalf of users) that is necessary to accomplish assigned organizational tasks.
b. Authorize access to [Assignment: organization-defined security functions] and [Assignment: organization-defined security-relevant information].
c. Review the privileges assigned to roles or classes of users [Assignment: organization-defined frequency] to validate the need for such privileges.
d. Reassign or remove privileges, as necessary.
Determination statements · 800-171A Rev. 3
- 03.01.05.a system access for users (or processes acting on behalf of users) is authorized only when necessary to accomplish assigned organizational tasks.
- 03.01.05.b[01] access to <A.03.01.05.ODP[01]: security functions> is authorized.
- 03.01.05.b[02] access to <A.03.01.05.ODP[02]: security-relevant information> is authorized.
- 03.01.05.c the privileges assigned to roles or classes of users are reviewed <A.03.01.05.ODP[03]: frequency> to validate the need for such privileges.
- 03.01.05.d privileges are reassigned or removed, as necessary.
Organization-defined parameters
- A.03.01.05.ODP[01] security functions for authorized access are defined.
- A.03.01.05.ODP[02] security-relevant information for authorized access is defined.
- A.03.01.05.ODP[03] the frequency at which to review the privileges assigned to roles or classes of users is defined.
Rev. 3 · not adopted 03.01.06 Least Privilege – Privileged Accounts
a. Restrict privileged accounts on the system to [Assignment: organization-defined personnel or roles]..
b. Require that users (or roles) with privileged accounts use non-privileged accounts when accessing non-security functions or non-security information.
Determination statements · 800-171A Rev. 3
- 03.01.06.a privileged accounts on the system are restricted to <A.03.01.06.ODP[01]: personnel or roles>.
- 03.01.06.b users (or roles) with privileged accounts are required to use non-privileged accounts when accessing non-security functions or non-security information.
Organization-defined parameters
- A.03.01.06.ODP[01] personnel or roles to which privileged accounts on the system are to be restricted are defined.
Rev. 3 · not adopted 03.01.07 Least Privilege – Privileged Functions
a. Prevent non-privileged users from executing privileged functions.
b. Log the execution of privileged functions.
Determination statements · 800-171A Rev. 3
- 03.01.07.a non-privileged users are prevented from executing privileged functions.
- 03.01.07.b the execution of privileged functions is logged.
Rev. 3 · not adopted 03.04.08 Authorized Software – Allow by Exception
a. Identify software programs authorized to execute on the system.
b. Implement a deny-all, allow-by-exception policy for the execution of authorized software programs on the system.
c. Review and update the list of authorized software programs [Assignment: organization-defined frequency].
Determination statements · 800-171A Rev. 3
- 03.04.08.a software programs authorized to execute on the system are identified.
- 03.04.08.b a deny-all, allow-by-exception policy for the execution of authorized software programs on the system is implemented.
- 03.04.08.c the list of authorized software programs is reviewed and updated <A.03.04.08.ODP[01]: frequency>.
Organization-defined parameters
- A.03.04.08.ODP[01] the frequency at which to review and update the list of authorized software programs is defined.
Rev. 3 · not adopted 03.12.03 Continuous Monitoring
Develop and implement a system-level continuous monitoring strategy that includes ongoing monitoring and security assessments.
Determination statements · 800-171A Rev. 3
- 03.12.03[01] a system-level continuous monitoring strategy is developed.
- 03.12.03[02] a system-level continuous monitoring strategy is implemented.
- 03.12.03[03] ongoing monitoring is included in the continuous monitoring strategy.
- 03.12.03[04] security assessments are included in the continuous monitoring strategy.
Left: NIST SP 800-171 Rev. 2 and 800-171A, verbatim. Right: NIST SP 800-171 Rev. 3 and 800-171A Rev. 3, verbatim, with organization-defined blanks highlighted.
Word by word
The Rev. 2 requirement compared with each Rev. 3 requirement it feeds into. A mechanical comparison of the two verbatim texts, not an interpretation.
removed in Rev. 3 added in Rev. 3
Rev. 2 3.4.9 → Rev. 3 03.01.05 Least Privilege
1 words kept, 4 removed, 59 added. Rev. 3 statement labels omitted for the comparison.
Rev. 2 3.4.9 → Rev. 3 03.01.06 Least Privilege – Privileged Accounts
0 words kept, 5 removed, 30 added. Rev. 3 statement labels omitted for the comparison.
Rev. 2 3.4.9 → Rev. 3 03.01.07 Least Privilege – Privileged Functions
0 words kept, 5 removed, 13 added. Rev. 3 statement labels omitted for the comparison.
Rev. 2 3.4.9 → Rev. 3 03.04.08 Authorized Software – Allow by Exception
2 words kept, 3 removed, 34 added. Rev. 3 statement labels omitted for the comparison.
Rev. 2 3.4.9 → Rev. 3 03.12.03 Continuous Monitoring
1 words kept, 4 removed, 14 added. Rev. 3 statement labels omitted for the comparison.
What NIST says changed
Rev. 3 withdraws this requirement as a separate item and folds it into other requirements. NIST's note: Addressed by 03.01.05, 03.01.06, 03.01.07, 03.04.08, and 03.12.03.
NIST's Rev. 3 discussion for 03.01.05
Organizations employ the principle of least privilege for specific duties and authorized access for users and system processes. Least privilege is applied to the development, implementation, and operation of the system. Organizations consider creating additional processes, roles, and system accounts to achieve least privilege. Security functions include establishing system accounts and assigning privileges, installing software, configuring access authorizations, configuring settings for events to be audited, establishing vulnerability scanning parameters, establishing intrusion detection parameters, and managing audit information. Security-relevant information includes threat and vulnerability information, filtering rules for routers or firewalls, configuration parameters for security services, security architecture, cryptographic key management information, access control lists, and audit information.
NIST's Rev. 3 discussion for 03.01.06
Privileged accounts refer to accounts that are granted elevated privileges to access resources (including security functions or security-relevant information) that are otherwise restricted for non-privileged accounts. These accounts are typically described as system administrator or super user accounts. For example, a privileged account is often required in order to perform privileged functions such as executing commands that could modify system behavior. Restricting privileged accounts to specific personnel or roles ensures that only those authorized users can access and manipulate security functions or security-relevant information. Requiring the use of non-privileged accounts when such access is not needed can limit unauthorized access to and manipulation of security functions or security-relevant information.
NIST's Rev. 3 discussion for 03.01.07
Privileged functions include establishing system accounts, performing system integrity checks, conducting patching operations, changing system configuration settings, or administering cryptographic key management activities. Non-privileged users do not possess the authorizations to execute privileged functions. Bypassing intrusion detection and prevention mechanisms or malicious code protection mechanisms are examples of privileged functions that require protection from non-privileged users. This requirement represents a condition achieved by the definition of authorized privileges in <a href="#/cprt/framework/version/SP_800_171_3_0_0/home?element=03.01.01">03.01.01</a> and privilege enforcement in <a href="#/cprt/framework/version/SP_800_171_3_0_0/home?element=03.01.02">03.01.02</a>. The misuse of privileged functions — whether intentionally or unintentionally by authorized users or by unauthorized external entities that have compromised system accounts — is a serious and ongoing concern that can have significant adverse impacts on organizations. Logging the use of privileged functions is one way to detect such misuse and mitigate risks from advanced persistent threats and insider threats.
NIST's Rev. 3 discussion for 03.04.08
If provided with the necessary privileges, users can install software in organizational systems. To maintain control over the software installed, organizations identify permitted and prohibited actions regarding software installation. Permitted software installations include updates and security patches to existing software and downloading new applications from organization-approved “app stores.” The policies selected for governing user-installed software are organization-developed or provided by some external entity. Policy enforcement methods can include procedural methods and automated methods. Authorized software programs can be limited to specific versions or come from specific sources. To facilitate a comprehensive authorized software process and increase the strength of protection against attacks that bypass application-level authorized software, software programs may be decomposed into and monitored at different levels of detail. These levels include applications, application programming interfaces, application modules, scripts, system processes, system services, kernel functions, registries, drivers, and dynamic link libraries.
NIST's Rev. 3 discussion for 03.12.03
Continuous monitoring at the system level facilitates ongoing awareness of the system security posture to support risk management decisions. The terms continuous and ongoing imply that organizations assess and monitor their systems at a frequency that is sufficient to support risk-based decisions. Different types of security requirements may require different monitoring frequencies.
What this means for you now
Nothing changes in what you are assessed against until a class deviation or a published rule adopts Rev. 3. Keep meeting 3.4.9 as written in Rev. 2.
Bedrock CMMC shows this same comparison against your own package, with your current status on the Rev. 2 side, so the day adoption lands the migration is a review, not a rewrite.
Where this page's facts come from
- Rev. 2 text and objectives
- bedrock-cmmc-api@89b8e8e:migrations/004_reference_requirements.sql#Requirement.basicRequirement@rev2; bedrock-cmmc-api@89b8e8e:migrations/005_reference_objectives.sql#AssessmentObjective.description@rev2
- Mapping and change class
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/r2_r3_transition_map.json#r2_to_r3
- Rev. 3 03.01.05
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/rev3.json#requirements[]
- Rev. 3 03.01.06
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/rev3.json#requirements[]
- Rev. 3 03.01.07
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/rev3.json#requirements[]
- Rev. 3 03.04.08
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/rev3.json#requirements[]
- Rev. 3 03.12.03
- bedrock-cmmc-api@89b8e8e:docs/reference/nist-800-171-rev3/normalized/rev3.json#requirements[]