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
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");}
}Mitigations & Prevention
Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
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 ID | Description |
|---|---|
| CVE-2002-1981 | Roles have access to dangerous procedures (Accessible entities). |
| CVE-2002-1671 | Untrusted object/method gets access to clipboard (Accessible entities). |
| CVE-2004-2204 | Gain privileges using functions/tags that should be restricted (Accessible entities). |
| CVE-2000-0315 | Traceroute program allows unprivileged users to modify source address of packet (Accessible entities). |
| CVE-2004-0380 | Bypass domain restrictions using a particular file that references unsafe URI schemes (Accessible entities). |
| CVE-2002-1154 | Script 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-0506 | User with capability can prevent setuid program from dropping privileges (Unsafe privileged actions). |
| CVE-2002-2042 | Allows attachment to and modification of privileged processes (Unsafe privileged actions). |
| CVE-2000-1212 | User with privilege can edit raw underlying object using unprotected method (Unsafe privileged actions). |
| CVE-2005-1742 | Inappropriate actions allowed by a particular role(Unsafe privileged actions). |
| CVE-2001-1480 | Untrusted entity allowed to access the system clipboard (Unsafe privileged actions). |
| CVE-2001-1551 | Extra Linux capability allows bypass of system-specified restriction (Unsafe privileged actions). |
| CVE-2001-1166 | User with debugging rights can read entire process (Unsafe privileged actions). |
| CVE-2005-1816 | Non-root admins can add themselves or others to the root admin group (Unsafe privileged actions). |
Showing 15 of 17 observed examples.
Related Weaknesses
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.