The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
N/A
Threat Mapped score: 1.8
Industry: Finiancial
Threat priority: P4 - Informational (Low)
CVE: CVE-2022-24730
Go-based continuous deployment product does not check that a user has certain privileges to update or create an app, allowing adversaries to read sensitive repository information
CVE: CVE-2009-3168
Web application does not restrict access to admin scripts, allowing authenticated users to reset administrative passwords.
CVE: CVE-2009-3597
Web application stores database file under the web root with insufficient access control (CWE-219), allowing direct request.
CVE: CVE-2009-2282
Terminal server does not check authorization for guest access.
CVE: CVE-2008-5027
System monitoring software allows users to bypass authorization by creating custom forms.
CVE: CVE-2009-3781
Content management system does not check access permissions for private files, allowing others to view those files.
CVE: CVE-2008-6548
Product does not check the ACL of a page accessed using an "include" directive, allowing attackers to read unauthorized files.
CVE: CVE-2009-2960
Web application does not restrict access to admin scripts, allowing authenticated users to modify passwords of other users.
CVE: CVE-2009-3230
Database server does not use appropriate privileges for certain sensitive operations.
CVE: CVE-2009-2213
Gateway uses default "Allow" configuration for its authorization settings.
CVE: CVE-2009-0034
Chain: product does not properly interpret a configuration option for a system group, allowing users to gain privileges.
CVE: CVE-2008-6123
Chain: SNMP product does not properly parse a configuration option for which hosts are allowed to connect, allowing unauthorized IP addresses to connect.
CVE: CVE-2008-7109
Chain: reliance on client-side security (CWE-602) allows attackers to bypass authorization using a custom client.
CVE: CVE-2008-3424
Chain: product does not properly handle wildcards in an authorization policy list, allowing unintended access.
CVE: CVE-2005-1036
Chain: Bypass of access restrictions due to improper authorization (CWE-862) of a user results from an improperly initialized (CWE-909) I/O permission bitmap
CVE: CVE-2008-4577
ACL-based protection mechanism treats negative access rights as if they are positive, allowing bypass of intended restrictions.
CVE: CVE-2007-2925
Default ACL list for a DNS server does not set certain ACLs, allowing unauthorized DNS queries.
CVE: CVE-2006-6679
Product relies on the X-Forwarded-For HTTP header for authorization, allowing unintended access by spoofing the header.
CVE: CVE-2005-3623
OS kernel does not check for a certain privilege before setting ACLs for files.
CVE: CVE-2005-2801
Chain: file-system code performs an incorrect comparison (CWE-697), preventing default ACLs from being properly applied.
CVE: CVE-2001-1155
Chain: product does not properly check the result of a reverse DNS lookup because of operator precedence (CWE-783), allowing bypass of DNS-based access restrictions.
CVE: CVE-2020-17533
Chain: unchecked return value (CWE-252) of some functions for policy enforcement leads to authorization bypass (CWE-862)
Phase | Note |
---|---|
Architecture and Design | OMISSION: This weakness is caused by missing a security tactic during the architecture and design phase. Authorization weaknesses may arise when a single-user application is ported to a multi-user environment. |
Implementation | A developer may introduce authorization weaknesses because of a lack of understanding about the underlying technologies. For example, a developer may assume that attackers cannot modify certain inputs such as headers or cookies. |
Operation | N/A |
Intro: This function runs an arbitrary SQL query on a given database, returning the result of the query.
Body: While this code is careful to avoid SQL Injection, the function does not confirm the user sending the query is authorized to do so. An attacker may be able to obtain sensitive employee information from the database.
function runEmployeeQuery($dbName, $name){ mysql_select_db($dbName,$globalDbHandle) or die("Could not open Database".$dbName); //Use a prepared statement to avoid CWE-89 $preparedStatement = $globalDbHandle->prepare('SELECT * FROM employees WHERE name = :name'); $preparedStatement->execute(array(':name' => $name)); return $preparedStatement->fetchAll(); } /.../ $employeeRecord = runEmployeeQuery('EmployeeDB',$_GET['EmployeeName']);
Intro: The following program could be part of a bulletin board system that allows users to send private messages to each other. This program intends to authenticate the user before deciding whether a private message should be displayed. Assume that LookupMessageObject() ensures that the $id argument is numeric, constructs a filename based on that id, and reads the message details from that file. Also assume that the program stores all private messages for all users in the same directory.
Body: While the program properly exits if authentication fails, it does not ensure that the message is addressed to the user. As a result, an authenticated attacker could provide any arbitrary identifier and read private messages that were intended for other users.
sub DisplayPrivateMessage { my($id) = @_; my $Message = LookupMessageObject($id); print "From: " . encodeHTML($Message->{from}) . "<br>\n"; print "Subject: " . encodeHTML($Message->{subject}) . "\n"; print "<hr>\n"; print "Body: " . encodeHTML($Message->{body}) . "\n"; } my $q = new CGI; # For purposes of this example, assume that CWE-309 and # CWE-523 do not apply. if (! AuthenticateUser($q->param('username'), $q->param('password'))) { ExitError("invalid username or password"); } my $id = $q->param('id'); DisplayPrivateMessage($id);