Multiple Inheritance from Concrete Classes

Incomplete Base
Structure: Simple
Description

This weakness occurs when a single class inherits functionality and state from more than one concrete (fully implemented) parent class.

Extended Description

While some programming languages support multiple inheritance, this design pattern creates a 'Diamond Problem' where the child class can inherit conflicting method implementations or state from its parents. This leads to fragile, tightly-coupled code that is difficult to reason about, as the behavior of the child class becomes dependent on the complex resolution order of its parent classes. From a security perspective, this complexity directly undermines maintainability. It becomes harder to trace data flow, understand side effects, and audit for vulnerabilities, increasing the time needed to find and fix security flaws. Furthermore, the confusing class hierarchy makes it easier to accidentally introduce new vulnerabilities during maintenance or feature development, as developers may not fully grasp all inherited behaviors.

Common Consequences 1
Scope: Other

Impact: Reduce Maintainability

References 1
Automated Source Code Maintainability Measure (ASCMM)
Object Management Group (OMG)
01-2016
ID: REF-960
Taxonomy Mapping
  • OMG ASCMM