FIPS 140-3 Mode
Description
Enforces exclusive use of FIPS 140-3 validated cryptographic modules for all system cryptographic operations. Enabled via the fips=1 kernel boot parameter (dracut fips module) and fips-mode-setup on RHEL, or FIPSAlgorithmPolicy registry key on Windows. When active, the kernel crypto API restricts to validated implementations (AES, SHA-256+, RSA 2048+, ECDSA P-256/P-384, HMAC), the OpenSSL FIPS provider replaces the default provider, and GnuTLS/NSS restrict to FIPS-approved algorithms. Non-validated algorithms (MD5, RC4, DES, Blowfish, Camellia, IDEA) are removed from available cipher lists entirely — operations requesting them fail with an error rather than falling back to a weaker option. FIPS mode imposes significant compatibility constraints: some TLS cipher suites become unavailable, HMAC-MD5 is prohibited (breaking some Kerberos configurations), Ed25519 SSH keys are rejected, and applications using non-validated crypto (custom OpenSSL builds, BoringSSL, Go's crypto/tls) are unaffected. On RHEL, FIPS mode automatically sets the crypto policy to FIPS, which is stricter than DEFAULT but less restrictive than FUTURE for non-FIPS-relevant parameters. The primary value is compliance attestation (FedRAMP, CMMC, DISA STIG) combined with the security benefit of using audited, CAVP-tested implementations.
CVSS Vector Impacts
| Metric | Transition | Rationale |
|---|---|---|
| Attack Complexity (AC) | L → H | Without FIPS mode, system crypto libraries offer both validated and non-validated algorithm implementations — an attacker exploiting a protocol downgrade vulnerability can force negotiation to a non-validated, potentially weaker implementation (e.g., MD5-based HMAC, RC4 stream cipher, DES). With FIPS mode active, non-validated algorithms are removed from the kernel crypto API and userspace library provider lists entirely — the negotiation cannot select them because they do not exist in the available set. The attacker must find an exploitable flaw in the FIPS-validated implementation itself, which has undergone NIST CAVP testing and third-party lab validation. Does not increase complexity for vulnerabilities that do not involve cryptographic algorithm selection (memory corruption, logic bugs, injection) |
CWE Relationships
Verification
Verify FIPS mode is enabled at boot, kernel, and crypto library levels
# Expected: FIPS mode is enabled
# Expected: 1
# Expected: enabled
# Expected: 1
# Expected: 1
Remediation
fips-mode-setup --enable
systemctl reboot
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy' -Name 'Enabled' -Value 1 -Type DWord
Restart-Computer -Force
Applicability (CVE 5.2.0 Schema)
| Vendor | Product | CPEs | Platforms | Status |
|---|---|---|---|---|
| redhat | enterprise_linux |
cpe:2.3:o:redhat:enterprise_linux:8:*:*:*:*:*:*:*cpe:2.3:o:redhat:enterprise_linux:9:*:*:*:*:*:*:*cpe:2.3:o:redhat:enterprise_linux:10:*:*:*:*:*:*:*
|
All | applicable |