Privilege Defined With Unsafe Actions

Incomplete Base
Structure: Simple
Description

This vulnerability occurs when a system grants a user, role, or process a specific permission that can be misused to perform dangerous, unintended actions. The permission itself is correctly assigned, but its scope is too broad or allows for unsafe operations.

Extended Description

At its core, this weakness is about over-privilege. A system might correctly identify that a user needs to edit files, but if the associated 'edit' permission also allows them to overwrite critical system files or execute code, the privilege is dangerously defined. Developers often make this mistake by using coarse-grained permissions that bundle safe and unsafe actions together, or by not considering all the destructive ways a seemingly benign right could be exploited. To prevent this, implement the principle of least privilege by defining permissions based on specific, safe actions rather than broad capabilities. Audit your authorization logic to ensure each granted right cannot be chained or used in an unexpected context to cause harm. Security testing should explicitly check if assigned privileges can be leveraged to bypass security controls or perform actions outside the user's intended role.

Common Consequences 1
Scope: Access Control

Impact: Gain Privileges or Assume Identity

A user can access restricted functionality and/or sensitive information that may include administrative functionality and user accounts.

Potential Mitigations 2
Phase: Architecture and DesignOperation
Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
Phase: Architecture and DesignOperation

Strategy: Environment Hardening

Run your code using the lowest privileges that are required to accomplish the necessary tasks [REF-76]. If possible, create isolated accounts with limited privileges that are only used for a single task. That way, a successful attack will not immediately give the attacker access to the rest of the software or its environment. For example, database applications rarely need to run as the database administrator, especially in day-to-day operations.
Demonstrative Examples 1

ID : DX-127

This code intends to allow only Administrators to print debug information about a system.

Code Example:

Bad
Java
java
While the intention was to only allow Administrators to print the debug information, the code as written only excludes those with the role of "GUEST". Someone with the role of "ADMIN" or "USER" will be allowed access, which goes against the original intent. An attacker may be able to use this debug information to craft an attack on the system.
Observed Examples 17
CVE-2002-1981Roles have access to dangerous procedures (Accessible entities).
CVE-2002-1671Untrusted object/method gets access to clipboard (Accessible entities).
CVE-2004-2204Gain privileges using functions/tags that should be restricted (Accessible entities).
CVE-2000-0315Traceroute program allows unprivileged users to modify source address of packet (Accessible entities).
CVE-2004-0380Bypass domain restrictions using a particular file that references unsafe URI schemes (Accessible entities).
CVE-2002-1154Script does not restrict access to an update command, leading to resultant disk consumption and filled error logs (Accessible entities).
CVE-2002-1145"public" database user can use stored procedure to modify data controlled by the database owner (Unsafe privileged actions).
CVE-2000-0506User with capability can prevent setuid program from dropping privileges (Unsafe privileged actions).
CVE-2002-2042Allows attachment to and modification of privileged processes (Unsafe privileged actions).
CVE-2000-1212User with privilege can edit raw underlying object using unprotected method (Unsafe privileged actions).
CVE-2005-1742Inappropriate actions allowed by a particular role(Unsafe privileged actions).
CVE-2001-1480Untrusted entity allowed to access the system clipboard (Unsafe privileged actions).
CVE-2001-1551Extra Linux capability allows bypass of system-specified restriction (Unsafe privileged actions).
CVE-2001-1166User with debugging rights can read entire process (Unsafe privileged actions).
CVE-2005-1816Non-root admins can add themselves or others to the root admin group (Unsafe privileged actions).
CVE-2005-2173Users can change certain properties of objects to perform otherwise unauthorized actions (Unsafe privileged actions).
CVE-2005-2027Certain debugging commands not restricted to just the administrator, allowing registry modification and infoleak (Unsafe privileged actions).
References 1
Applicable Platforms
Languages:
Not Language-Specific : Undetermined
Modes of Introduction
Architecture and Design
Implementation
Operation
Related Weaknesses
Taxonomy Mapping
  • PLOVER
Notes
Maintenance Note: there are 2 separate sub-categories here: ``` - privilege incorrectly allows entities to perform certain actions - object is incorrectly accessible to entities with a given privilege ```