Fail-Safe Defaults
Fail-safe defaults is a design approach in which a system's out-of-the-box configuration is set to the most secure option, so access is denied unless it is explicitly granted. The goal is that when something goes wrong or is left unconfigured, the system stays in a protected state rather than an open one. It reflects the broader idea of being 'secure by default.'
Fail-safe defaults is a secure design principle holding that access decisions should be based on explicit permission rather than explicit exclusion: absent an affirmative grant, access is denied by default. In practice this means default configuration settings are set to the most restrictive, most secure values, so that unconfigured, erroneous, or failure conditions resolve to a denied or protected state. Note a distinction that experts insist on and that is frequently blurred: NIST defines 'fail safe' as a mode of terminating system functions to prevent damage when a failure occurs, which is not identical to 'fail secure,' defined as preventing loss of a secure state. A fail-safe condition prioritizes preventing damage and can, in some scenarios, still permit a security compromise, whereas fail-secure specifically preserves the secure state. Readers should confirm the intended behavior against the specific control, standard, or design requirement rather than treating fail-safe, fail-secure, and fail-soft as interchangeable.
Why it matters
Fail-safe defaults address one of the most common root causes of security exposure: systems that ship or operate in a permissive state and grant access unless someone deliberately restricts it. When the default posture is 'allow,' every unconfigured setting, overlooked account, or misapplied policy becomes a potential opening. By inverting that logic so access is denied unless explicitly granted, the principle ensures that gaps and oversights resolve toward a protected state rather than an exposed one. This is why the principle is frequently described as being 'secure by default,' and why OWASP and secure-design guidance treat default-deny as a foundational expectation rather than a hardening add-on.
The principle also demands a precision that practitioners often lose. NIST distinguishes 'fail safe', a mode of terminating system functions to prevent damage when a failure occurs, from 'fail secure,' which specifically preserves the secure state. These are not interchangeable. A fail-safe condition prioritizes preventing damage to resources and can, in some scenarios, still permit a security compromise, whereas a fail-secure condition is designed to prevent loss of a secure state. Assuming that a design labeled 'fail-safe' automatically preserves confidentiality or access restrictions is a mistake an assessor should catch, because the intended behavior depends entirely on which property the design is meant to protect.
For compliance and authorization purposes, this distinction matters because control language, standards, and design requirements may specify fail-safe, fail-secure, or fail-soft behavior deliberately. Treating them as synonyms during design review, security assessment, or authorization can lead to a system that behaves differently under failure than the control intended. Readers should confirm the required behavior against the specific control, standard, or design requirement rather than relying on the generic 'fail-safe defaults' label.
Who it's relevant to
Inside Fail-Safe Defaults
Common questions
Answers to the questions practitioners most commonly ask about Fail-Safe Defaults.