Haxoris Wiki

A06: Insecure Design

Insecure Design refers to flaws in an application’s architecture or logic that create security weaknesses, making it vulnerable to attacks. Unlike implementation bugs, these issues stem from poor security planning, lack of threat modeling, or failing to enforce security principles at the design stage. Insecure design can lead to data exposure, authentication bypasses, privilege escalation, and business logic abuses. No amount of clean code fixes a workflow that was never designed to be safe.

Common Vulnerabilities:

  • Lack of Threat Modeling and Security Review in the Development Process
  • Flawed Business Logic That Enables Abuses (e.g., bypassing payment verification)
  • Missing Anti-Automation Controls (No Rate Limiting, Bypassable CAPTCHA)
  • Unbounded Resource Consumption by Design, Enabling Denial of Service
  • Inadequate Data Protection Strategies (e.g., storing sensitive data in plaintext)
  • Improper Separation of Privileges or Over-Permissioned Accounts
  • Unrestricted File Upload Accepted by Design
  • Trusting Client-Side Enforcement of Server-Side Rules

To mitigate these risks, applications should incorporate security best practices from the design phase, enforce strong authentication and authorization controls, apply the principle of least privilege, conduct threat modeling, and implement secure coding guidelines. Design in limits — request quotas, resource ceilings, and abuse detection — before an attacker discovers their absence. Regular security reviews and testing should be performed to identify and fix architectural flaws before deployment.

In this section

Last updated

References