CVE-2026-92395: @fastify/proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet

Published Sep 16, 2026
·
Updated

@fastify/proxy-addr is a Fastify plugin that determines a request's client address behind trusted reverse proxies, and it backs Fastify request.ip and request.ips. In versions 3.0.0 through 5.1.0, a trust subnet written in IPv4-mapped IPv6 notation with an IPv4-sized prefix, such as ::ffff:10.0.0.0/8 instead of the correct ::ffff:10.0.0.0/104, is accepted without error but trusts every IPv4 address on the internet rather than the block it names. Because the socket peer then becomes trusted at hop 0, any unauthenticated client can supply an arbitrary X-Forwarded-For header and control the address the application reads, which defeats IP-based access control, rate limiting, geolocation, and audit logging. The plugin inherited this defect from the upstream proxy-addr module (CVE-2026-90711). The issue is fixed in @fastify/proxy-addr 5.1.1, and users should upgrade to 5.1.1 or later. As a workaround, ensure any IPv4-mapped IPv6 trust subnet uses a prefix length of at least 97, or express the range in plain IPv4 notation.

Affected Software

2 affected components
npm/@fastify/proxy-addr>=3.0.0<=5.1.0
npm/@fastify/proxy-addr<=5.1.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade @fastify/proxy-addr to a version that resolves this vulnerability.

    Fixed in 5.1.1
  2. Configuration

    As a workaround, ensure any IPv4-mapped IPv6 trust subnet uses a prefix length of at least 97 (example: ::ffff:10.0.0.0/104), or rewrite the trust range in plain IPv4 notation.

    @fastify/proxy-addr trust subnet (IPv4-mapped IPv6 notation prefix length) = at least 97 (e.g., use ::ffff:10.0.0.0/104 instead of ::ffff:10.0.0.0/8) or express the range in plain IPv4 notation
  3. Compensating control

    Because socket peer is trusted at hop 0, consider enforcing IP-based controls (access control, rate limiting, geolocation, audit logging) using additional trusted mechanisms rather than relying on request.ip/request.ips until the service is upgraded to @fastify/proxy-addr 5.1.1 or later.

Event History

Sep 16, 2026
CVE Published
via MITRE·02:35 PM
Data Sourced
via MITRE·02:35 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are exposed to spoofed client IP addresses?

Deployments using @fastify/proxy-addr versions 3.0.0 through 5.1.0 are exposed if they configure a trusted subnet in IPv4-mapped IPv6 notation with an IPv4-sized prefix, such as ::ffff:10.0.0.0/8. That configuration causes every IPv4 socket peer to be trusted rather than only the intended range.

2

Does an attacker need access to a trusted proxy or credentials?

No. Once the malformed trust subnet is configured, any unauthenticated client can send an arbitrary X-Forwarded-For header and control the address returned to the application through request.ip and request.ips.

3

What can be affected if the application relies on these address fields?

IP-based access controls, rate limiting, geolocation decisions, and audit logging can be bypassed or corrupted because the application may treat an attacker-chosen X-Forwarded-For value as the client address.

4

What can be done before upgrading?

Ensure IPv4-mapped IPv6 trust subnets use a prefix length of at least 97, or express the trusted range in plain IPv4 notation. Upgrade to @fastify/proxy-addr 5.1.1 or later when possible.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203