Check ID: elbv2_desync_mitigation_mode
Provider: AWS
Service: elbv2
Severity: MEDIUM
Resource type: AwsElbv2LoadBalancer

What this check verifies

Application Load Balancer settings are reviewed for HTTP desync protections. It evaluates routing.http.desync_mitigation_mode for strictest or defensive; when neither is configured, it checks routing.http.drop_invalid_header_fields.enabled is true as a compensating control.

Risk

Lacking robust desync mitigation enables inconsistent HTTP parsing and request smuggling:
  • Confidentiality: token theft, data exfiltration
  • Integrity: cache/queue poisoning, unauthorized actions
  • Availability: backend exhaustion and outages
Only dropping invalid headers reduces but does not eliminate this exposure.

Recommendation

Set ALBs to desync_mitigation_mode=strictest (or defensive if compatibility is required) and keep routing.http.drop_invalid_header_fields.enabled=true. Apply defense in depth: validate RFC-compliant requests, roll out changes gradually with monitoring, and enforce least privilege on downstream services.

Remediation

aws elbv2 modify-load-balancer-attributes --load-balancer-arn <ALB_ARN> --attributes Key=routing.http.desync_mitigation_mode,Value=strictest

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = elbv2_desync_mitigation_mode. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks