Cybersecurity glossary

What is Insecure Design?

Learn what insecure design means in the OWASP Top 10, how missing threat modeling and security controls at design time create systemic risk, and how to build secure-by-design applications.

Application securityUpdated August 11, 2026
Also known asOWASP A04 Insecure DesignInsecure application designMissing security design

Definition

Insecure Design is an OWASP Top 10 category (A04:2021) covering weaknesses that originate from missing or ineffective security design—flawed threat models, absent controls, and architectures that cannot enforce required protections even when implementation is otherwise careful.

Why insecure design matters

Many incidents are not clever zero-days—they are products that never designed for hostility. Insecure Design (OWASP A04) captures missing security controls at the architecture and requirements layer: the system works as built, and attackers work within those rules.

If threat modeling, abuse cases, and control selection are skipped, later hardening becomes expensive theater. You cannot configure your way out of a missing authorization model.

How insecure design leads to exploitation

1

Feature ships without security requirements

Product scope focuses on happy paths; adversarial misuse is not an acceptance criterion.

2

Architecture omits key controls

No isolation, step-up auth, integrity checks, or abuse limits are designed into the flow.

3

Implementation follows the incomplete design

Code can be clean and still lack the control that never appeared in the design.

4

Attackers abuse intended behavior

Legitimate APIs and workflows are chained in unintended ways for fraud or takeover.

Design gaps that show up in production

Missing threat model

Assets, trust boundaries, and attacker goals were never enumerated for a critical flow.

No control for the risk

High-impact actions lack rate limits, approvals, proofs, or segregation of duties.

Client-trusted decisions

Design assumes the UI enforces price, role, or eligibility that only the server should own.

Bolted-on security

AuthZ or logging is added late as middleware without redesigning the domain model.

Building secure design into delivery

ControlNotes
Threat modelingModel assets, actors, entry points, and abuse cases before coding high-risk features
Security requirementsWrite testable controls (authZ rules, limits, integrity) into acceptance criteria
Secure patternsReuse proven patterns for authN/authZ, tenancy, crypto, and workflow state
Abuse-case testingQA and security test misuse paths, not only functional success
Architecture reviewGate risky designs with security review before they scale
Measure control coverageTrack which critical flows have explicit designed controls versus assumptions
  • Identify crown-jewel workflows and require a threat model for each.
  • Add security requirements to tickets for authZ, abuse limits, and data integrity.
  • Reject designs that rely on the client to enforce business or security rules.
  • Define tenant isolation and privilege boundaries in the domain model.
  • Plan monitoring and alerting as part of the design, not as an afterthought.
  • Re-threat-model when integrations, AI features, or new trust parties are added.
  • Train product and engineering on secure-by-design expectations together.
  • Track OWASP A04 findings as design debt with explicit remediation owners.

The practical takeaway

Insecure Design means the security control was never designed in. Threat-model critical flows, write security into requirements, and verify abuse cases. Fixing A04 is an architecture and product discipline—not a late lint rule.

Related security terms

Frequently asked questions

What is insecure design in simple terms?

The product was planned without the right security controls. Patching code later cannot fully fix an architecture that never accounted for abuse, privilege boundaries, or trust assumptions.

How is insecure design different from a coding bug?

Implementation bugs are mistakes in code. Insecure design means the required control was never specified—no rate limit concept, no multi-step verification, no isolation between tenants—so 'correct' code still fails securely.

What does OWASP A04 cover?

OWASP Top 10 A04:2021 highlights missing or ineffective control design, weak threat modeling, and features shipped without security requirements that match the risk.

Can secure coding standards alone fix insecure design?

No. Coding standards reduce injection and similar flaws. Design issues need threat models, security requirements, abuse cases, and architectural controls before and during build.

What are examples of insecure design?

Password reset without proof of control, storefronts that trust client prices, APIs without tenant isolation plans, and high-value actions with no step-up authentication or abuse limits.

How should teams prevent insecure design?

Threat model critical flows, write security requirements as acceptance criteria, review designs for missing controls, and verify controls with abuse-case tests—not only happy-path QA.

Is insecure design only for greenfield apps?

No. Refactors, new integrations, and feature flags routinely introduce design gaps in mature products when risk is not reassessed.

References

Explore authoritative guidance and frameworks related to insecure design.

Explore every security definition

Return to the glossary to search by term, alias, starting letter, or security category.

Browse glossary