CWEweakness

CWE-285 Improper Authorization

High Official page ↗
Alternate terms
AuthZ
Abstraction
Class
Structure
Simple
Status
Draft
Likelihood of exploit
High
Languages
Not Language-Specific
CWE version
5.0

Description

The product does not perform or incorrectly performs an authorization check when an actor attempts to access a resource or perform an action.

Common consequences

• Confidentiality: Read Application Data, Read Files or Directories — An attacker could read sensitive data, either by reading the data directly from a data store that is not properly restricted, or by accessing insufficiently-protected, privileged functionality to read the data. • Integrity: Modify Application Data, Modify Files or Directories — An attacker could modify sensitive data, either by writing the data directly to a data store that is not properly restricted, or by accessing insufficiently-protected, privileged functionality to write the data. • Access Control: Gain Privileges or Assume Identity, Execute Unauthorized Code or Commands — When access control checks are not applied consistently - or not at all - an attacker could gain privileges and execute unauthorized code or commands by modifying or reading critical data directly, or by accessing insufficiently-protected, privileged functionality.

Potential mitigations

• [Architecture and Design] Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) to enforce the roles at the appropriate boundaries. Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role. • [Architecture and Design] Ensure that you perform access control checks related to your business logic. These checks may be different than the access control checks that you apply to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor. • [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, consider using authorization frameworks such as the JAAS Authorization Framework [REF-233] and the OWASP ESAPI Access Control feature [REF-45]. • [Architecture and Design] For web applications, make sure that the access control mechanism is enforced correctly at the server side on every page. Users should not be able to access any unauthorized functionality or information by simply requesting direct access to that page. One way to do this is to ensure that all pages containing sensitive information are not cached, and that all such pages restrict access to requests that are accompanied by an active and authenticated session token associated with a user who has the required permissions to access that page. • [System Configuration, Installation] Use the access control capabilities of your operating system and server environment and define your access control lists accordingly. Use a "default deny" policy when defining these ACLs.

Detection methods

• Automated Static Analysis: Automated static analysis is useful for detecting commonly-used idioms for authorization. A tool may be able to analyze related configuration files, such as .htaccess in Apache web servers, or detect the usage of commonly-used authorization libraries. Generally, automated static analysis tools have difficulty detecting custom authorization schemes. In addition, the software's design may include some functionality that is accessible to any user and does not require an authorization check; an automated technique that detects the absence of authorization may report false positives. • Automated Dynamic Analysis: Automated dynamic analysis may find many or all possible interfaces that do not require authorization, but manual analysis is required to determine if the lack of authorization violates business logic • Manual Analysis: This weakness can be detected using tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session. Specifically, manual static analysis is useful for evaluating the correctness of custom authorization mechanisms. • Manual Static Analysis - Binary or Bytecode: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Binary / Bytecode disassembler - then use manual analysis for vulnerabilities & anomalies • Dynamic Analysis with Automated Results Interpretation: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Web Application Scanner • Web Services Scanner • Database Scanners • Dynamic Analysis with Manual Results Interpretation: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Host Application Interface Scanner • Fuzz Tester • Framework-based Fuzzer • Forced Path Execution • Monitored Virtual Environment - run potentially malicious code in sandbox / wrapper / virtual machine, see if it does anything suspicious • Manual Static Analysis - Source Code: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Focused Manual Spotcheck - Focused manual analysis of source • Manual Source Code Review (not inspections) • Automated Static Analysis - Source Code: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Context-configured Source Code Weakness Analyzer • Architecture or Design Review: According to SOAR [REF-1479], the following detection techniques may be useful: Highly cost effective: • Formal Methods / Correct-By-Construction Cost effective for partial coverage: • Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)

Observed examples

• CVE-2024-6845: chatbot Wordpress plugin does not perform authorization on a REST endpoint, allowing retrieval of an API key • 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-2009-3168: Web application does not restrict access to admin scripts, allowing authenticated users to reset administrative passwords. • CVE-2009-2960: Web application does not restrict access to admin scripts, allowing authenticated users to modify passwords of other users. • CVE-2009-3597: Web application stores database file under the web root with insufficient access control (CWE-219), allowing direct request. • CVE-2009-2282: Terminal server does not check authorization for guest access. • CVE-2009-3230: Database server does not use appropriate privileges for certain sensitive operations. • CVE-2009-2213: Gateway uses default "Allow" configuration for its authorization settings. • CVE-2009-0034: Chain: product does not properly interpret a configuration option for a system group, allowing users to gain privileges. • 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-2008-5027: System monitoring software allows users to bypass authorization by creating custom forms. • CVE-2008-7109: Chain: reliance on client-side security (CWE-602) allows attackers to bypass authorization using a custom client. • CVE-2008-3424: Chain: product does not properly handle wildcards in an authorization policy list, allowing unintended access. • CVE-2009-3781: Content management system does not check access permissions for private files, allowing others to view those files. • CVE-2008-4577: ACL-based protection mechanism treats negative access rights as if they are positive, allowing bypass of intended restrictions. • CVE-2008-6548: Product does not check the ACL of a page accessed using an "include" directive, allowing attackers to read unauthorized files. • CVE-2007-2925: Default ACL list for a DNS server does not set certain ACLs, allowing unauthorized DNS queries. • CVE-2006-6679: Product relies on the X-Forwarded-For HTTP header for authorization, allowing unintended access by spoofing the header. • CVE-2005-3623: OS kernel does not check for a certain privilege before setting ACLs for files. • CVE-2005-2801: Chain: file-system code performs an incorrect comparison (CWE-697), preventing default ACLs from being properly applied. • 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.

Related

Attack pattern · CAPEC (17)

  • CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs attack pattern
  • CAPEC-104 Cross Zone Scripting attack pattern
  • CAPEC-127 Directory Indexing attack pattern
  • CAPEC-13 Subverting Environment Variable Values attack pattern
  • CAPEC-17 Using Malicious Files attack pattern
  • CAPEC-39 Manipulating Opaque Client-based Data Tokens attack pattern
  • CAPEC-402 Bypassing ATA Password Security attack pattern
  • CAPEC-45 Buffer Overflow via Symbolic Links attack pattern
  • CAPEC-5 Blue Boxing attack pattern
  • CAPEC-51 Poison Web Service Registry attack pattern
  • CAPEC-59 Session Credential Falsification through Prediction attack pattern
  • CAPEC-60 Reusing Session IDs (aka Session Replay) attack pattern
  • CAPEC-647 Collect Data from Registries attack pattern
  • CAPEC-668 Key Negotiation of Bluetooth Attack (KNOB) attack pattern
  • CAPEC-76 Manipulating Web Input to File System Calls attack pattern
  • CAPEC-77 Manipulating User-Controlled Variables attack pattern
  • CAPEC-87 Forceful Browsing attack pattern

Observed example · CVE (21)

  • CVE-2024-6845 The Chatbot with ChatGPT WordPress plugin before 2.4.6 does not have proper authorization in one of its REST endpoint, allowing… vulnerability
  • CVE-2022-24730 Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. vulnerability
  • CVE-2009-3781 The filefield_file_download function in FileField 6.x-3.1, a module for Drupal, does not properly check node-access permissions for Drupal… vulnerability
  • CVE-2009-3597 Digitaldesign CMS 0.1 stores sensitive information under the web root with insufficient access control, which allows remote attackers to… vulnerability
  • CVE-2009-3230 The core server component in PostgreSQL 8.4 before 8.4.1, 8.3 before 8.3.8, 8.2 before 8.2.14, 8.1 before 8.1.18, 8.0 before 8.0.22, and… vulnerability
  • CVE-2009-3168 Mevin Productions Basic PHP Events Lister 2.0 does not properly restrict access to (1) admin/reset.php and (2) admin/user_add.php, which… vulnerability
  • CVE-2008-7109 The Scanner File Utility (aka listener) in Kyocera Mita (KM) 3.3.0.1 allows remote attackers to bypass authorization and upload arbitrary… vulnerability
  • CVE-2009-2960 CuteFlow 2.10.3 and 2.11.0_c does not properly restrict access to pages/edituser.php, which allows remote attackers to modify usernames and… vulnerability
  • CVE-2009-2282 The Virtual Network Terminal Server daemon (vntsd) for Logical Domains (aka LDoms) in Sun Solaris 10, and OpenSolaris snv_41 through… vulnerability
  • CVE-2009-2213 The default configuration of the Security global settings on the Citrix NetScaler Access Gateway appliance with Enterprise Edition firmware… vulnerability
  • CVE-2008-6548 The rst parser (parser/text_rst.py) in MoinMoin 1.6.1 does not check the ACL of an included page, which allows attackers to read… vulnerability
  • CVE-2008-6123 The netsnmp_udp_fmtaddr function (snmplib/snmpUDPDomain.c) in net-snmp 5.0.9 through 5.4.2.1, when using TCP wrappers for client… vulnerability
  • CVE-2009-0034 parse.c in sudo 1.6.9p17 through 1.6.9p19 does not properly interpret a system group (aka %group) in the sudoers file during authorization… vulnerability
  • CVE-2008-5027 The Nagios process in (1) Nagios before 3.0.5 and (2) op5 Monitor before 4.0.1 allows remote authenticated users to bypass authorization… vulnerability
  • CVE-2008-4577 The ACL plugin in Dovecot before 1.1.4 treats negative access rights as if they are positive access rights, which allows attackers to… vulnerability
  • CVE-2008-3424 Condor before 7.0.4 does not properly handle wildcards in the ALLOW_WRITE, DENY_WRITE, HOSTALLOW_WRITE, or HOSTDENY_WRITE configuration… vulnerability
  • CVE-2007-2925 The default access control lists (ACL) in ISC BIND 9.4.0, 9.4.1, and 9.5.0a1 through 9.5.0a5 do not set the allow-recursion and… vulnerability
  • CVE-2006-6679 Pedro Lineu Orso chetcpasswd before 2.4 relies on the X-Forwarded-For HTTP header when verifying a client's status on an IP address ACL,… vulnerability
  • CVE-2005-3623 nfs2acl.c in the Linux kernel 2.6.14.4 does not check for MAY_SATTR privilege before setting access controls (ACL) on files on exported NFS… vulnerability
  • CVE-2005-2801 xattr.c in the ext2 and ext3 file system code for Linux kernel 2.6 does not properly compare the name_index fields when sharing xattr… vulnerability
  • CVE-2001-1155 TCP Wrappers (tcp_wrappers) in FreeBSD 4.1.1 through 4.3 with the PARANOID ACL option enabled does not properly check the result of a… vulnerability

Child of · CWE (1)

  • CWE-284 Improper Access Control weakness

Referenced by CAPEC · weakness (17)

  • CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs attack pattern
  • CAPEC-104 Cross Zone Scripting attack pattern
  • CAPEC-127 Directory Indexing attack pattern
  • CAPEC-13 Subverting Environment Variable Values attack pattern
  • CAPEC-17 Using Malicious Files attack pattern
  • CAPEC-39 Manipulating Opaque Client-based Data Tokens attack pattern
  • CAPEC-402 Bypassing ATA Password Security attack pattern
  • CAPEC-45 Buffer Overflow via Symbolic Links attack pattern
  • CAPEC-5 Blue Boxing attack pattern
  • CAPEC-51 Poison Web Service Registry attack pattern
  • CAPEC-59 Session Credential Falsification through Prediction attack pattern
  • CAPEC-60 Reusing Session IDs (aka Session Replay) attack pattern
  • CAPEC-647 Collect Data from Registries attack pattern
  • CAPEC-668 Key Negotiation of Bluetooth Attack (KNOB) attack pattern
  • CAPEC-76 Manipulating Web Input to File System Calls attack pattern
  • CAPEC-77 Manipulating User-Controlled Variables attack pattern
  • CAPEC-87 Forceful Browsing attack pattern

Referenced by CVE · weakness (1,750)

  • CVE-2026-104316 IBM Langflow OSS 1.0.0 through 1.12.3 could allow an authenticated attacker to cancel any victim's running background workflow job by… vulnerability
  • CVE-2026-113694 Improper authorization in the SmartIT user attachment feature of BMC IT Service Management Suite versions 25.3.01, 25.4.01, and 26.1.01… vulnerability
  • CVE-2026-113696 Improper authorization in the SmartIT change approval feature of BMC IT Service Management Suite versions 25.3.01, 25.4.01, and 26.1.01… vulnerability
  • CVE-2026-42922 A authorization bypass vulnerability exists in the /nodered functionality of FUXA (version(s): 1.3.2-2809). vulnerability
  • CVE-2026-42949 A authorization bypass vulnerability exists in the /api/runscript functionality of FUXA (version(s): 1.3.2-2809). vulnerability
  • CVE-2026-103506 An authenticated user in Grafana can read SSO client secrets and modify instance-wide SSO settings without the required permissions… vulnerability
  • CVE-2026-56828 Shopper is a Headless e-commerce Admin Panel. vulnerability
  • CVE-2026-118173 MISP Guard, a proxy that enforces security policies on MISP feed data, contained an incomplete validation check for required taxonomy tags. vulnerability
  • CVE-2026-116274 A vulnerability has been found in JIZHICMS up to 2.5.6. vulnerability
  • CVE-2026-116340 A vulnerability was identified in iFlytek astron-agent up to 1.1.2. vulnerability
  • CVE-2026-116368 A vulnerability was determined in DeepSeek Harness up to 0.2.0-rc.2. vulnerability
  • CVE-2026-116384 A weakness has been identified in Bdtask Garage 24 Garage Management Software 1.0. vulnerability
  • CVE-2026-33522 Esri ArcGIS Server versions 11.3 to 12.0 ONLY allows a remote, unauthenticated attacker to update service metadata. vulnerability
  • CVE-2026-116199 Snipe-IT before 8.6.3 contains an authentication bypass in GoogleAuthController::handleGoogleCallback, which logs in the user whose… vulnerability
  • CVE-2026-115803 A flaw has been found in Scada-LTS 2.8.0. vulnerability
  • CVE-2026-115477 obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. vulnerability
  • CVE-2026-57121 PraisonAI is a multi-agent teams system. vulnerability
  • CVE-2026-114245 A weakness has been identified in dhikshitha29 Insurance-Management-System… vulnerability
  • CVE-2026-114249 A vulnerability was detected in dhikshitha29 Insurance-Management-System… vulnerability
  • CVE-2026-114361 A vulnerability was detected in HarnessRouter up to 0.31.10. vulnerability
  • CVE-2026-84748 Improper authorization in Apache bRPC (versions < 1.18.0) on all platforms allows remote attackers to access builtin services through the… vulnerability
  • CVE-2026-113411 A vulnerability was found in Nerimity Desktop up to 2.2.2. vulnerability
  • CVE-2026-113643 A vulnerability was found in EspoCRM up to 9.3.10/10.0.10. vulnerability
  • CVE-2026-81212 IBM DataStage on Cloud Pak for Data 5.4.0.0 allows an unauthenticated user to perform an arbitrary write into shared Redis under any… vulnerability
  • CVE-2026-86976 An authorization issue was addressed with improved state management. vulnerability
  • CVE-2026-87421 Vulnerability in the Oracle Solaris product of Oracle Systems (component: Image Packaging System). vulnerability
  • CVE-2026-87422 Vulnerability in the Oracle Solaris product of Oracle Systems (component: Services). vulnerability
  • CVE-2026-112043 A weakness has been identified in calcom cal.com and cal.diy up to 6.2.0. vulnerability
  • CVE-2026-112045 A vulnerability was detected in donetick up to 0.1.82. vulnerability
  • CVE-2026-112188 MISP contains a vulnerability in its server settings lookup mechanism that allows an authenticated user to retrieve sensitive configuration… vulnerability
Show all 1,750 ›

Referenced by CWE · child of (12)

  • CWE-1230 Exposure of Sensitive Information Through Metadata weakness
  • CWE-1256 Improper Restriction of Software Interfaces to Hardware Features weakness
  • CWE-1297 Unprotected Confidential Information on Device is Accessible by OSAT Vendors weakness
  • CWE-1328 Security Version Number Mutable to Older Versions weakness
  • CWE-1470 Improper External Identity Verification weakness
  • CWE-356 Missing User Interaction for Potentially Unsafe Action weakness
  • CWE-552 Files or Directories Accessible to External Parties weakness
  • CWE-732 Incorrect Permission Assignment for Critical Resource weakness
  • CWE-862 Missing Authorization weakness
  • CWE-863 Incorrect Authorization weakness
  • CWE-926 Improper Export of Android Application Components weakness
  • CWE-927 Use of Implicit Intent for Sensitive Communication weakness

Referenced by OWASP · mapped cwe (4)

  • A01:2025 Broken Access Control Top 10 2025
  • API1:2023 Broken Object Level Authorization API Security Top 10 2023
  • API5:2023 Broken Function Level Authorization API Security Top 10 2023
  • A01:2021 Broken Access Control Top 10 2021