CWE-273
Improper Check for Dropped Privileges
AI Translation Available
The product attempts to drop privileges but does not check or incorrectly checks to see if the drop succeeded.
Status
incomplete
Abstraction
base
Likelihood
medium
Affected Platforms
Extended Description
AI Translation
If the drop fails, the product will continue to run with the raised privileges, which might provide additional access to unprivileged users.
Technical Details
AI Translation
Common Consequences
access control
non-repudiation
Impacts
gain privileges or assume identity
hide activities
Detection Methods
automated static analysis
Potential Mitigations
Phases:
architecture and design
implementation
Descriptions:
•
Check the results of all functions that return a value and verify that the value is expected.
•
Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area.
Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
•
In Windows, make sure that the process token has the SeImpersonatePrivilege(Microsoft Server 2003). Code that relies on impersonation for security must ensure that the impersonation succeeded, i.e., that a proper privilege demotion happened.