CWEweakness

CWE-732 Incorrect Permission Assignment for Critical Resource

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

Description

The product specifies permissions for a security-critical resource in a way that allows that resource to be read or modified by unintended actors.

Common consequences

• Confidentiality: Read Application Data, Read Files or Directories — An attacker may be able to read sensitive information from the associated resource, such as credentials or configuration information stored in a file. • Access Control: Gain Privileges or Assume Identity — An attacker may be able to modify critical properties of the associated resource to gain privileges, such as replacing a world-writable executable with a Trojan horse. • Integrity, Other: Modify Application Data, Other — An attacker may be able to destroy or corrupt critical data in the associated resource, such as deletion of records from a database. For example, consider a misconfigured storage account for the cloud that can be read or written by a public or anonymous user.

Potential mitigations

• [Implementation] When using a critical resource such as a configuration file, check to see if the resource has insecure permissions (such as being modifiable by any regular user) [REF-62], and generate an error or even exit the software if there is a possibility that the resource could have been modified by an unauthorized party. • [Architecture and Design] Divide the software into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully defining distinct user groups, privileges, and/or roles. Map these against data, functionality, and the related resources. Then set the permissions accordingly. This will allow you to maintain more fine-grained control over your resources. [REF-207] • [Architecture and Design, Operation] Run the code in a "jail" or similar sandbox environment that enforces strict boundaries between the process and the operating system. This may effectively restrict which files can be accessed in a particular directory or which commands can be executed by the software. OS-level examples include the Unix chroot jail, AppArmor, and SELinux. In general, managed code may provide some protection. For example, java.io.FilePermission in the Java SecurityManager allows the software to specify restrictions on file operations. This may not be a feasible solution, and it only limits the impact to the operating system; the rest of the application may still be subject to compromise. Be careful to avoid CWE-243 and other weaknesses related to jails. • [Implementation, Installation] During program startup, explicitly set the default permissions or umask to the most restrictive setting possible. Also set the appropriate permissions during program installation. This will prevent you from inheriting insecure permissions from any user who installs or runs the program. • [System Configuration] For all configuration files, executables, and libraries, make sure that they are only readable and writable by the software's administrator. • [Documentation] Do not suggest insecure configuration changes in documentation, especially if those configurations can extend to resources and other programs that are outside the scope of the application. • [Installation] Do not assume that a system administrator will manually change the configuration to the settings that are recommended in the software's manual. • [Operation, System Configuration] Ensure that the software runs properly under the United States Government Configuration Baseline (USGCB) [REF-199] or an equivalent hardening configuration guide, which many organizations use to limit the attack surface and potential risk of deployed software. • [Implementation, System Configuration, Operation] When storing data in the cloud (e.g., S3 buckets, Azure blobs, Google Cloud Storage, etc.), use the provider's controls to disable public access.

Detection methods

• Automated Static Analysis: Automated static analysis may be effective in detecting permission problems for system resources such as files, directories, shared memory, device interfaces, etc. Automated techniques may be able to detect the use of library functions that modify permissions, then analyze function calls for arguments that contain potentially insecure values. However, since the software's intended security policy might allow loose permissions for certain operations (such as publishing a file on a web server), automated static analysis may produce some false positives - i.e., warnings that do not have any security consequences or require any code changes. When custom permissions models are used - such as defining who can read messages in a particular forum in a bulletin board system - these can be difficult to detect using automated static analysis. It may be possible to define custom signatures that identify any custom functions that implement the permission checks and assignments. • Automated Dynamic Analysis: Automated dynamic analysis may be effective in detecting permission problems for system resources such as files, directories, shared memory, device interfaces, etc. However, since the software's intended security policy might allow loose permissions for certain operations (such as publishing a file on a web server), automated dynamic analysis may produce some false positives - i.e., warnings that do not have any security consequences or require any code changes. When custom permissions models are used - such as defining who can read messages in a particular forum in a bulletin board system - these can be difficult to detect using automated dynamic analysis. It may be possible to define custom signatures that identify any custom functions that implement the permission checks and assignments. • 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. • Manual Static Analysis: Manual static analysis may be effective in detecting the use of custom permissions models and functions. The code could then be examined to identifying usage of the related functions. Then the human analyst could evaluate permission assignments in the context of the intended security model of the software. • Manual Dynamic Analysis: Manual dynamic analysis may be effective in detecting the use of custom permissions models and functions. The program could then be executed with a focus on exercising code paths that are related to the custom permissions. Then the human analyst could evaluate permission assignments in the context of the intended security model of the software. • Fuzzing: Fuzzing is not effective in detecting this weakness. • Black Box: Use monitoring tools that examine the software's process as it interacts with the operating system and the network. This technique is useful in cases when source code is unavailable, if the software was not developed by you, or if you want to verify that the build phase did not introduce any new weaknesses. Examples include debuggers that directly attach to the running process; system-call tracing utilities such as truss (Solaris) and strace (Linux); system activity monitors such as FileMon, RegMon, Process Monitor, and other Sysinternals utilities (Windows); and sniffers and protocol analyzers that monitor network traffic. Attach the monitor to the process and watch for library functions or system calls on OS resources such as files, directories, and shared memory. Examine the arguments to these calls to infer which permissions are being used. • Automated Static Analysis - Binary or Bytecode: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Inter-application Flow Analysis • 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: • Host-based Vulnerability Scanners - Examine configuration for flaws, verifying that audit mechanisms work, ensure host configuration meets certain predefined criteria • 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: Highly cost effective: • Host Application Interface Scanner Cost effective for partial coverage: • Fuzz Tester • Framework-based Fuzzer • Automated Monitored Execution • Forced Path Execution • Manual Static Analysis - Source Code: According to SOAR [REF-1479], the following detection techniques may be useful: Highly cost effective: • Manual Source Code Review (not inspections) Cost effective for partial coverage: • Focused Manual Spotcheck - Focused manual analysis of source • 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 • Automated Static Analysis: According to SOAR [REF-1479], the following detection techniques may be useful: Cost effective for partial coverage: • Configuration Checker • 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-2026-53657: helper agent in a Linux VM launcher creates a root-owned Unix domain socket with world-writable permissions, allowing code execution from VM guests • CVE-2022-29527: Go application for cloud management creates a world-writable sudoers file that allows local attackers to inject sudo rules and escalate privileges to root by winning a race condition. • CVE-2009-3482: Anti-virus product sets insecure "Everyone: Full Control" permissions for files under the "Program Files" folder, allowing attackers to replace executables with Trojan horses. • CVE-2009-3897: Product creates directories with 0777 permissions at installation, allowing users to gain privileges and access a socket used for authentication. • CVE-2009-3489: Photo editor installs a service with an insecure security descriptor, allowing users to stop or start the service, or execute commands as SYSTEM. • CVE-2020-15708: socket created with insecure permissions • CVE-2009-3289: Library function copies a file to a new target and uses the source file's permissions for the target, which is incorrect when the source file is a symbolic link, which typically has 0777 permissions. • CVE-2009-0115: Device driver uses world-writable permissions for a socket file, allowing attackers to inject arbitrary commands. • CVE-2009-1073: LDAP server stores a cleartext password in a world-readable file. • CVE-2009-0141: Terminal emulator creates TTY devices with world-writable permissions, allowing an attacker to write to the terminals of other users. • CVE-2008-0662: VPN product stores user credentials in a registry key with "Everyone: Full Control" permissions, allowing attackers to steal the credentials. • CVE-2008-0322: Driver installs its device interface with "Everyone: Write" permissions. • CVE-2009-3939: Driver installs a file with world-writable permissions. • CVE-2009-3611: Product changes permissions to 0777 before deleting a backup; the permissions stay insecure for subsequent backups. • CVE-2007-6033: Product creates a share with "Everyone: Full Control" permissions, allowing arbitrary program execution. • CVE-2007-5544: Product uses "Everyone: Full Control" permissions for memory-mapped files (shared memory) in inter-process communication, allowing attackers to tamper with a session. • CVE-2005-4868: Database product uses read/write permissions for everyone for its shared memory, allowing theft of credentials. • CVE-2004-1714: Security product uses "Everyone: Full Control" permissions for its configuration files. • CVE-2001-0006: "Everyone: Full Control" permissions assigned to a mutex allows users to disable network connectivity. • CVE-2002-0969: Chain: database product contains buffer overflow that is only reachable through a .ini configuration file - which has "Everyone: Full Control" permissions.

Related

Attack pattern · CAPEC (11)

  • CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs attack pattern
  • CAPEC-122 Privilege Abuse attack pattern
  • CAPEC-127 Directory Indexing attack pattern
  • CAPEC-17 Using Malicious Files attack pattern
  • CAPEC-180 Exploiting Incorrectly Configured Access Control Security Levels attack pattern
  • CAPEC-206 Signing Malicious Code attack pattern
  • CAPEC-234 Hijacking a privileged process attack pattern
  • CAPEC-60 Reusing Session IDs (aka Session Replay) attack pattern
  • CAPEC-61 Session Fixation attack pattern
  • CAPEC-62 Cross Site Request Forgery attack pattern
  • CAPEC-642 Replace Binaries attack pattern

Observed example · CVE (20)

  • CVE-2026-53657 Lima launches Linux virtual machines, typically on macOS, for running containerd. vulnerability
  • CVE-2022-29527 Amazon AWS amazon-ssm-agent before 3.1.1208.0 creates a world-writable sudoers file, which allows local attackers to inject Sudo rules and… vulnerability
  • CVE-2020-15708 Ubuntu's packaging of libvirt in 20.04 LTS created a control socket with world read and write permissions. vulnerability
  • CVE-2009-3897 Dovecot 1.2.x before 1.2.8 sets 0777 permissions during creation of certain directories at installation time, which allows local users to… vulnerability
  • CVE-2009-3939 The poll_mode_io file for the megaraid_sas driver in the Linux kernel 2.6.31.6 and earlier has world-writable permissions, which allows… vulnerability
  • CVE-2009-3611 common/snapshots.py in Back In Time (aka backintime) 0.9.26 changes certain permissions to 0777 before deleting the files in an old backup… vulnerability
  • CVE-2009-3482 TrustPort Antivirus before 2.8.0.2266 and PC Security before 2.0.0.1291 use weak permissions (Everyone: Full Control) for files under… vulnerability
  • CVE-2009-3489 Adobe Photoshop Elements 8.0 installs the Adobe Active File Monitor V8 service with an insecure security descriptor, which allows local… vulnerability
  • CVE-2009-3289 The g_file_copy function in glib 2.0 sets the permissions of a target file to the permissions of a symbolic link (777), which allows… vulnerability
  • CVE-2009-1073 nss-ldapd before 0.6.8 uses world-readable permissions for the /etc/nss-ldapd.conf file, which allows local users to obtain a cleartext… vulnerability
  • CVE-2009-0115 The Device Mapper multipathing driver (aka multipath-tools or device-mapper-multipath) 0.4.8, as used in SUSE openSUSE, SUSE Linux… vulnerability
  • CVE-2009-0141 XTerm in Apple Mac OS X 10.4.11 and 10.5.6, when used with luit, creates tty devices with insecure world-writable permissions, which allows… vulnerability
  • CVE-2008-0322 The I2O Utility Filter driver (i2omgmt.sys) 5.1.2600.2180 for Microsoft Windows XP sets Everyone/Write permissions for the "\\.\I2OExc"… vulnerability
  • CVE-2008-0662 The Auto Local Logon feature in Check Point VPN-1 SecuRemote/SecureClient NGX R60 and R56 for Windows caches credentials under the… vulnerability
  • CVE-2007-6033 Invensys Wonderware InTouch 8.0 creates a NetDDE share with insecure permissions (Everyone/Full Control), which allows remote authenticated… vulnerability
  • CVE-2007-5544 IBM Lotus Notes before 6.5.6, and 7.x before 7.0.3; and Domino before 6.5.5 FP3, and 7.x before 7.0.2 FP1; uses weak permissions… vulnerability
  • CVE-2005-4868 Shared memory sections and events in IBM DB2 8.1 have default permissions of read and write for the Everyone group, which allows local… vulnerability
  • CVE-2004-1714 BlackICE PC Protection and Server Protection installs (1) firewall.ini, (2) blackice.ini, (3) sigs.ini and (4) protect.ini with Everyone… vulnerability
  • CVE-2002-0969 Buffer overflow in MySQL daemon (mysqld) before 3.23.50, and 4.0 beta before 4.02, on the Win32 platform, allows local users to execute… vulnerability
  • CVE-2001-0006 The Winsock2ProtocolCatalogMutex mutex in Windows NT 4.0 has inappropriate Everyone/Full Control permissions, which allows local users to… vulnerability

Child of · CWE (2)

  • CWE-285 Improper Authorization weakness
  • CWE-668 Exposure of Resource to Wrong Sphere weakness

Referenced by CAPEC · weakness (11)

  • CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs attack pattern
  • CAPEC-122 Privilege Abuse attack pattern
  • CAPEC-127 Directory Indexing attack pattern
  • CAPEC-17 Using Malicious Files attack pattern
  • CAPEC-180 Exploiting Incorrectly Configured Access Control Security Levels attack pattern
  • CAPEC-206 Signing Malicious Code attack pattern
  • CAPEC-234 Hijacking a privileged process attack pattern
  • CAPEC-60 Reusing Session IDs (aka Session Replay) attack pattern
  • CAPEC-61 Session Fixation attack pattern
  • CAPEC-62 Cross Site Request Forgery attack pattern
  • CAPEC-642 Replace Binaries attack pattern

Referenced by CVE · weakness (1,821)

  • CVE-2026-103404 An Incorrect Permission Assignment for Critical Resource vulnerability in RoutingManager in Juniper Networks Session Smart Conductor allows… vulnerability
  • CVE-2026-90464 An external control of file path vulnerability in a WatchGuard Fireware OS firewall diagnostic command allows a remote, authenticated… vulnerability
  • CVE-2026-92377 Improper access control in the Patch Management update mechanism of TeamViewer Full Client and Host for Windows prior to version 15.82… vulnerability
  • CVE-2026-77060 boneIO black_debian_images stores the Mosquitto MQTT broker password file at /etc/mosquitto/passwd with world-readable permissions. vulnerability
  • CVE-2025-30051 The CGM CLININET application stores the production database login and password, as well as RabbitMQ broker credentials, in the SysIO.pl… vulnerability
  • CVE-2025-30054 CGM CLININET is vulnerable to local privilege escalation. vulnerability
  • CVE-2026-50057 A local privilege escalation vulnerability in the Zimbra Collaboration Suite (ZCS) MTA package allows the Unix zimbra account to execute… vulnerability
  • CVE-2026-93640 A local privilege escalation vulnerability in the optional dnscache package of Zimbra Collaboration Suite (ZCS) allows the Unix zimbra… vulnerability
  • CVE-2026-115253 An incorrect permission assignment vulnerability in the WatchGuard Agent's log directory allows a local, authenticated non-administrative… vulnerability
  • CVE-2026-96293 A cleartext storage of sensitive information vulnerability in WatchGuard Endpoint Security's Full Disk Encryption feature for macOS allows… vulnerability
  • CVE-2026-111184 NoMachine Named Pipe Incorrect Permission Assignment Local Privilege Escalation Vulnerability. vulnerability
  • CVE-2026-114105 Adm-zip before 0.6.1 contains an incorrect permission assignment vulnerability that allows attackers to set setuid, setgid, or sticky bits… vulnerability
  • CVE-2026-76495 As part of Cisco's ongoing commitment to proactive security and product quality, the Cisco Expressway Series software engineering team has… vulnerability
  • CVE-2026-113720 virtualenv is a tool for creating isolated virtual python environments. vulnerability
  • CVE-2026-71169 Dell Application Store, versions prior to 26.05.0.7, contain an Incorrect Permission Assignment for Critical Resource vulnerability. vulnerability
  • CVE-2026-96424 Incorrect DBus policy for lomiri-upload-manager (part of lomiri-download-manager) allows arbitrary user to read arbitrary file as root over… vulnerability
  • CVE-2026-96425 Incorrect DBus policy for lomiri-download-manager allows arbitrary user to run arbitrary command as root over DBus vulnerability
  • CVE-2026-96542 Incorrect permission assignment (CWE-732) in the standalone installer for EA Javelin Anticheat (versions 1.0.14329371, 1.0.14547437,… vulnerability
  • CVE-2026-102740 The AsyncHttpClient library allows Java applications to execute HTTP requests and asynchronously process HTTP responses. vulnerability
  • CVE-2026-104618 On request the `sdbootutil` script creates a world-readable debug log in /var/log/sdbootutil.log. vulnerability
  • CVE-2026-34008 An incorrect permission assignment for critical resource vulnerability has been reported to affect Notes Station 3. vulnerability
  • CVE-2026-34014 An incorrect permission assignment for critical resource vulnerability has been reported to affect Download Station. vulnerability
  • CVE-2026-92228 The Apache Airflow Keycloak provider's multi-team provisioning (`_attach_team_permissions`) granted every team role global read access to… vulnerability
  • CVE-2026-70402 Gitea creates server-side Git hook directories and scripts with mode 0777 and relies on the process umask to restrict access. vulnerability
  • CVE-2026-87093 Incorrect Permission Assignment for Critical Resource vulnerability in Progress MOVEit Transfer. vulnerability
  • CVE-2026-101020 An incorrect permission assignment for critical resource issue exists in AssetView, AssetView CLOUD, and AssetView Cloud +. vulnerability
  • CVE-2026-78632 The Okta RADIUS Agent Windows installer assigns write permissions to the NT SERVICE\ALL SERVICES and CREATOR OWNER security principals on… vulnerability
  • CVE-2026-97792 Improper access control in Windows Container Isolation FS Filter Driver (unionfs.sys) allows an authorized attacker to elevate privileges… vulnerability
  • CVE-2026-97800 Incorrect permission assignment for critical resource in Windows Mobile Broadband allows an authorized attacker to elevate privileges… vulnerability
  • CVE-2026-109243 FreeRDP from 3.0.0 before 3.32.0 contains an incorrect permission assignment vulnerability that allows local users to read private keys… vulnerability
Show all 1,821 ›

Referenced by CWE · child of (11)

  • CWE-1004 Sensitive Cookie Without 'HttpOnly' Flag weakness
  • CWE-276 Incorrect Default Permissions weakness
  • CWE-277 Insecure Inherited Permissions weakness
  • CWE-278 Insecure Preserved Inherited Permissions weakness
  • CWE-279 Incorrect Execution-Assigned Permissions weakness
  • CWE-281 Improper Preservation of Permissions weakness
  • CWE-493 Critical Public Variable Without Final Modifier weakness
  • CWE-582 Array Declared Public, Final, and Static weakness
  • CWE-583 finalize() Method Declared Public weakness
  • CWE-608 Struts: Non-private Field in ActionForm Class weakness
  • CWE-766 Critical Data Element Declared Public weakness

Referenced by CWE · has member (6)

  • CWE-1003 Weaknesses for Simplified Mapping of Published Vulnerabilities view
  • CWE-1200 Weaknesses in the 2019 CWE Top 25 Most Dangerous Software Errors view
  • CWE-1337 Weaknesses in the 2021 CWE Top 25 Most Dangerous Software Weaknesses view
  • CWE-1340 CISQ Data Protection Measures view
  • CWE-1350 Weaknesses in the 2020 CWE Top 25 Most Dangerous Software Weaknesses view
  • CWE-884 CWE Cross-section view

Referenced by CWE · requires (2)

  • CWE-61 UNIX Symbolic Link (Symlink) Following weakness
  • CWE-689 Permission Race Condition During Resource Copy weakness

Referenced by OWASP · mapped cwe (1)

  • A01:2025 Broken Access Control Top 10 2025