CWEweakness

CWE-915 Improperly Controlled Modification of Dynamically-Determined Object Attributes

Official page ↗
Alternate terms
Mass Assignment, AutoBinding, PHP Object Injection
Abstraction
Base
Structure
Simple
Status
Incomplete
Languages
ASP.NET, Not Language-Specific, PHP, Python, Ruby
CWE version
5.0

Description

The product receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.

Common consequences

• Integrity: Modify Application Data — An attacker could modify sensitive data or program variables. • Integrity: Execute Unauthorized Code or Commands • Other, Integrity: Varies by Context, Alter Execution Logic

Potential mitigations

• [Implementation] If available, use features of the language or framework that allow specification of allowlists of attributes or fields that are allowed to be modified. If possible, prefer allowlists over denylists. For applications written with Ruby on Rails, use the attr_accessible (allowlist) or attr_protected (denylist) macros in each class that may be used in mass assignment. • [Architecture and Design, Implementation] If available, use the signing/sealing features of the programming language to assure that deserialized data has not been tainted. For example, a hash-based message authentication code (HMAC) could be used to ensure that data has not been modified. • [Implementation] For any externally-influenced input, check the input against an allowlist of internal object attributes or fields that are allowed to be modified. • [Implementation, Architecture and Design] Refactor the code so that object attributes or fields do not need to be dynamically identified, and only expose getter/setter functionality for the intended attributes.

Detection methods

• Automated Static Analysis: Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)

Observed examples

• CVE-2024-3283: Application for using LLMs allows modification of a sensitive variable using mass assignment. • CVE-2012-2054: Mass assignment allows modification of arbitrary attributes using modified URL. • CVE-2012-2055: Source version control product allows modification of trusted key using mass assignment. • CVE-2008-7310: Attackers can bypass payment step in e-commerce product. • CVE-2013-1465: Use of PHP unserialize function on untrusted input allows attacker to modify application configuration. • CVE-2012-3527: Use of PHP unserialize function on untrusted input in content management system might allow code execution. • CVE-2012-0911: PHP-based content management system written in PHP uses unserialize function on untrusted input to generate arbitrary objects, possibly allowing code execution. • CVE-2011-4962: Content management system written in PHP allows code execution through page comments. • CVE-2009-4137: Use of PHP unserialize function on cookie value allows remote code execution or upload of arbitrary files. • CVE-2007-5741: Content management system written in Python interprets untrusted data as pickles, allowing code execution. • CVE-2011-2520: Python script allows local users to execute code via pickled data. • CVE-2005-2875: Python script allows remote attackers to execute arbitrary code using pickled objects. • CVE-2013-0277: Ruby on Rails allows deserialization of untrusted YAML to execute arbitrary code. • CVE-2011-2894: Spring framework allows deserialization of objects from untrusted sources to execute arbitrary code. • CVE-2012-1833: Grails allows binding of arbitrary parameters to modify arbitrary object properties. • CVE-2010-3258: Incorrect deserialization in web browser allows escaping the sandbox. • CVE-2008-1013: Media library allows deserialization of objects by untrusted Java applets, leading to arbitrary code execution.

Related

Observed example · CVE (17)

  • CVE-2024-3283 A vulnerability in mintplex-labs/anything-llm allows users with manager roles to escalate their privileges to admin roles through a mass… vulnerability
  • CVE-2013-0277 ActiveRecord in Ruby on Rails before 2.3.17 and 3.x before 3.1.0 allows remote attackers to cause a denial of service or execute arbitrary… vulnerability
  • CVE-2013-1465 The Cubecart::_basket method in classes/cubecart.class.php in CubeCart 5.0.0 through 5.2.0 allows remote attackers to unserialize arbitrary… vulnerability
  • CVE-2012-1833 VMware SpringSource Grails before 1.3.8, and 2.x before 2.0.2, does not properly restrict data binding, which might allow remote attackers… vulnerability
  • CVE-2011-4962 code/sitefeatures/PageCommentInterface.php in SilverStripe 2.4.x before 2.4.6 might allow remote attackers to execute arbitrary code via a… vulnerability
  • CVE-2012-3527 view_help.php in the backend help system in TYPO3 4.5.x before 4.5.19, 4.6.x before 4.6.12 and 4.7.x before 4.7.4 allows remote… vulnerability
  • CVE-2012-0911 TikiWiki CMS/Groupware before 6.7 LTS and before 8.4 allows remote attackers to execute arbitrary PHP code via a crafted serialized object… vulnerability
  • CVE-2008-7310 Spree 0.2.0 does not properly restrict the use of a hash to provide values for a model's attributes, which allows remote attackers to set… vulnerability
  • CVE-2012-2054 Redmine before 1.3.2 does not properly restrict the use of a hash to provide values for a model's attributes, which allows remote attackers… vulnerability
  • CVE-2012-2055 GitHub Enterprise before 20120304 does not properly restrict the use of a hash to provide values for a model's attributes, which allows… vulnerability
  • CVE-2011-2894 Spring Framework 3.0.0 through 3.0.5, Spring Security 3.0.0 through 3.0.5 and 2.0.0 through 2.0.6, and possibly other versions deserialize… vulnerability
  • CVE-2011-2520 fw_dbus.py in system-config-firewall 1.2.29 and earlier uses the pickle Python module unsafely during D-Bus communication between the GUI… vulnerability
  • CVE-2010-3258 The sandbox implementation in Google Chrome before 6.0.472.53 does not properly deserialize parameters, which has unspecified impact and… vulnerability
  • CVE-2009-4137 The loadContentFromCookie function in core/Cookie.php in Piwik before 0.5 does not validate strings obtained from cookies before calling… vulnerability
  • CVE-2008-1013 Apple QuickTime before 7.4.5 enables deserialization of QTJava objects by untrusted Java applets, which allows remote attackers to execute… vulnerability
  • CVE-2007-5741 Plone 2.5 through 2.5.4 and 3.0 through 3.0.2 allows remote attackers to execute arbitrary Python code via network data containing pickled… vulnerability
  • CVE-2005-2875 Py2Play allows remote attackers to execute arbitrary Python code via pickled objects, which Py2Play unpickles and executes. vulnerability

Child of · CWE (1)

  • CWE-913 Improper Control of Dynamically-Managed Code Resources weakness

Peer of · CWE (1)

  • CWE-502 Deserialization of Untrusted Data weakness

Referenced by CVE · weakness (196)

  • CVE-2026-90863 Missing authorization in the administrative interface of Progress Software WS_FTP Server versions prior to 2024.0.7 and 2025.0.4 on Windows… vulnerability
  • CVE-2026-118538 A vulnerability was determined in a2ui-project a2ui up to 0.12.0. vulnerability
  • CVE-2026-58255 Cronicle is a multi-server task scheduler and runner, with a web based front-end UI. vulnerability
  • CVE-2026-116216 MacCMS v10 through 2026.1000.4056 contains a mass assignment vulnerability in index/Comment::saveData() that allows unauthenticated… vulnerability
  • CVE-2026-115933 Postiz signs its session, invitation and password reset tokens with one shared secret and without any marker of what a token is for. vulnerability
  • CVE-2026-96378 Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in Drupal Commerce Decoupled Checkout allows… vulnerability
  • CVE-2026-112239 The extension provides a backend endpoint that writes a submitted value into a submitted field of a submitted page record. vulnerability
  • CVE-2026-112295 FlyCms through commit edfdf724 contains a mass assignment vulnerability that allows authenticated users to overwrite protected account… vulnerability
  • CVE-2026-112305 Semaphore UI through 2.19.16 contains a remote code execution vulnerability that allows users with the task_runner role to override… vulnerability
  • CVE-2026-110804 Improperly controlled modification of JIT elevation settings in PAM checkout in Devolutions Server 2026.3.8.0 and earlier allows an… vulnerability
  • CVE-2026-97858 An attacker can cause the server to unbind the target device from its current owner and rebind it to the requesting account, regardless of… vulnerability
  • CVE-2026-77470 Lychee is a free, open-source photo-management tool. vulnerability
  • CVE-2026-108948 A vulnerability has been found in code-projects Online Reviewer System 1.0. vulnerability
  • CVE-2026-109186 jshERP through 3.6 contains a mass assignment vulnerability in the UserController update handler that allows authenticated users to… vulnerability
  • CVE-2026-92119 REST API Mass Assignment vulnerability in Apache Allura. vulnerability
  • CVE-2026-108740 GoatCounter through 2.7.0 contains a mass assignment privilege escalation vulnerability in the userPrefSave handler that allows logged-in… vulnerability
  • CVE-2026-105863 Payload is a free and open source headless content management system. vulnerability
  • CVE-2026-106100 Payload is a free and open source headless content management system. vulnerability
  • CVE-2026-106550 Mozilla's Node-convict (version 6.2.2 and later) is vulnerable to a Denial of Service vulnerability caused by incomplete… vulnerability
  • CVE-2026-102780 Joomla Extension - joomlafry.com - Unauthenticated cross-record publication and mass assignment in TF Content 2.9.0 - 2.9.4 - The extension… vulnerability
  • CVE-2026-105180 A vulnerability was determined in Jeebase 0.0.1. vulnerability
  • CVE-2026-103036 oRPC is a tool that helps build APIs that are end-to-end type-safe and adhere to OpenAPI standards. vulnerability
  • CVE-2026-103918 oRPC is a tool that helps build APIs that are end-to-end type-safe and adhere to OpenAPI standards. vulnerability
  • CVE-2026-104908 MISP contains an improper input validation vulnerability in the decaying model import functionality. vulnerability
  • CVE-2026-103235 MISP contains a mass assignment vulnerability in the event delegation feature. vulnerability
  • CVE-2026-13720 An Editor can set file-provisioning metadata (the grafana.app/managedBy, grafana.app/managerId and grafana.app/sourcePath annotations) when… vulnerability
  • CVE-2026-93364 Bludit CMS through 3.22.0 contains a mass assignment vulnerability that allows authenticated users with the Author role to modify… vulnerability
  • CVE-2026-93477 Improperly Controlled Modification of Dynamically-Determined Object Attributes vulnerability in ash-project ash allows a user to set the… vulnerability
  • CVE-2026-61834 scim-patch is a library for applying SCIM patch operations. vulnerability
  • CVE-2026-76086 Formie is a Craft CMS plugin for creating forms. vulnerability
Show all 196 ›

Referenced by CWE · child of (1)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness

Referenced by CWE · has member (1)

  • CWE-1340 CISQ Data Protection Measures view

Referenced by CWE · peer of (1)

  • CWE-502 Deserialization of Untrusted Data weakness

Referenced by OWASP · mapped cwe (5)

  • A08:2025 Software or Data Integrity Failures Top 10 2025
  • API3:2023 Broken Object Property Level Authorization API Security Top 10 2023
  • A08:2021 Software and Data Integrity Failures Top 10 2021
  • CS-Mass_Assignment Mass Assignment Cheat Sheet Cheat Sheet
  • CS-REST_Assessment REST Assessment Cheat Sheet Cheat Sheet