server: awselb/2.0 response header on AWS Application Load Balancers exposes your infrastructure software to anyone who looks. You can disable it using a single load balancer attribute: routing.http.response.server.enabled = false. This guide shows you how.
What is the problem?
When a client makes an HTTP request to an application behind an AWS Application Load Balancer, the ALB includes a Server response header by default. It looks like this:
This header tells any attacker — or automated scanner — that your application is sitting behind an AWS Elastic Load Balancer, version 2.0. While this alone does not constitute a critical vulnerability, it is a textbook information disclosure finding and is flagged in:
- OWASP Testing Guide v4.2 (OTG-INFO-002: Fingerprinting Web Server)
- NIST SP 800-115 — Technical Guide to Information Security Testing
- Most enterprise security questionnaires and compliance audits
- Summit VAPT reports — we flag it on every engagement where it appears
The fix: routing.http.response.server.enabled
AWS introduced the ability to disable this header via a load balancer attribute. The attribute is:
routing.http.response.server.enabled
true or false
true (header is sent by default)
server: header is omitted from all ALB responses
How to disable it — 3 methods
Method 1: AWS Console
- Open the EC2 Console and navigate to Load Balancers.
- Select your Application Load Balancer.
- Click the Attributes tab.
- Click Edit in the top right.
- Scroll to HTTP response headers and toggle Server header to Off.
- Click Save changes.
Method 2: AWS CLI
To verify the change was applied:
Method 3: Terraform
Verify the fix
After applying the change, confirm the header is no longer present in ALB responses:
curl command should return no output for the server header. If it still appears, wait 60 seconds for propagation and test again.Additional ALB hardening recommendations
While you are in the ALB attributes panel, consider applying these additional hardening measures. All are low-risk, high-value changes:
routing.http.drop_invalid_header_fields.enabled = true
Drops requests with malformed HTTP headers, reducing attack surface.
routing.http.desync_mitigation_mode = defensive
Protects against HTTP desync and request smuggling attacks.
Add a listener rule to redirect all HTTP (port 80) traffic to HTTPS (port 443) with a 301 permanent redirect.
access_logs.s3.enabled = true
Essential for incident response and compliance audits.
Why does this matter for your VAPT report?
In our experience running penetration tests, the server: awselb/2.0 header appears in roughly 60% of AWS-hosted web applications we test. It is consistently flagged as an informational to low severity finding depending on the client's compliance framework.
For SOC2 Type 2 auditors and ISO 27001 assessors, it is evidence that the organisation has not fully hardened its infrastructure against information disclosure. Fixing it takes under 5 minutes and removes the finding completely from your next VAPT report.
server header in your report, apply the fix above and contact us via your Slack channel. We will verify it is resolved and update your certificate status within 24 hours.