@@ -834,6 +834,25 @@ def audit_ec2(findings, region):
834834 )
835835
836836
837+ def audit_elbv2 (findings , region ):
838+ json_blob = query_aws (region .account , "elbv2-describe-load-balancers" , region )
839+
840+ for load_balancer in json_blob .get ("LoadBalancers" , []):
841+ arn = load_balancer ["LoadBalancerArn" ]
842+
843+ # Check attributes
844+ attributes_json = get_parameter_file (
845+ region , "elbv2" , "describe-load-balancer-attributes" , arn
846+ )
847+
848+ for attribute in attributes_json .get ("Attributes" , []):
849+ if (
850+ attribute ["Key" ] == "routing.http.drop_invalid_header_fields.enabled"
851+ and attribute ["Value" ] == "false"
852+ ):
853+ findings .add (Finding (region , "REQUEST_SMUGGLING" , arn ))
854+
855+
837856def audit_sg (findings , region ):
838857 # TODO Check if security groups allow large CIDR range (ex. 1.2.3.4/3)
839858 # TODO Check if an SG restricts IPv4 and then opens IPv6 or vice versa.
@@ -1143,6 +1162,7 @@ def audit(accounts):
11431162 audit_redshift (findings , region )
11441163 audit_es (findings , region )
11451164 audit_ec2 (findings , region )
1165+ audit_elbv2 (findings , region )
11461166 audit_sg (findings , region )
11471167 audit_lambda (findings , region )
11481168 audit_glacier (findings , region )
0 commit comments