Base · Medium

CWE-267: Privilege Defined With Unsafe Actions

A particular privilege, role, capability, or right can be used to perform unsafe actions that were not intended, even when it is assigned to the correct entity.

CWE-267 · Base Level ·17 CVEs ·2 Mitigations

Description

A particular privilege, role, capability, or right can be used to perform unsafe actions that were not intended, even when it is assigned to the correct entity.

Potential Impact

Access Control

Gain Privileges or Assume Identity

Demonstrative Examples

This code intends to allow only Administrators to print debug information about a system.
Bad
public enum Roles {ADMIN,USER,GUEST}
                     public void printDebugInfo(User requestingUser){
                        if(isAuthenticated(requestingUser)){
                              switch(requestingUser.role){
                                    case GUEST:System.out.println("You are not authorized to perform this command");break;
                                       default:System.out.println(currentDebugState());break;
                                    
                                 }
                           }else{System.out.println("You must be logged in to perform this command");}
                     }
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.

Mitigations & Prevention

Architecture and DesignOperation

Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.

Architecture and DesignOperation

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.

Real-World CVE Examples

CVE IDDescription
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).

Showing 15 of 17 observed examples.

Taxonomy Mappings

  • PLOVER: — Unsafe Privilege

Frequently Asked Questions

What is CWE-267?

CWE-267 (Privilege Defined With Unsafe Actions) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. A particular privilege, role, capability, or right can be used to perform unsafe actions that were not intended, even when it is assigned to the correct entity.

How can CWE-267 be exploited?

Attackers can exploit CWE-267 (Privilege Defined With Unsafe Actions) to gain privileges or assume identity. This weakness is typically introduced during the Architecture and Design, Implementation, Operation phase of software development.

How do I prevent CWE-267?

Key mitigations include: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.

What is the severity of CWE-267?

CWE-267 is classified as a Base-level weakness (Medium abstraction). It has been observed in 17 real-world CVEs.