This weakness occurs when software uses an overly complicated internal model to represent its data or the relationships between data elements.
Overly complex data structures, like deeply nested objects, convoluted inheritance hierarchies, or custom formats where standard ones would suffice, create a significant maintenance burden. This complexity makes the code harder to read, test, and modify, slowing down development and increasing the chance of introducing logic errors during changes. From a security perspective, this 'complexity debt' indirectly enables vulnerabilities. Security flaws become harder to spot during code reviews or audits because the core logic is obscured. Fixing identified issues also takes longer and is riskier, as developers may not fully understand the side effects of their changes in the tangled web of data relationships.
Impact: Reduce Maintainability
Impact: Reduce Performance