CVE-2026-110240 in Lancetinfo

Summary

by MITRE • 10/13/2026

Lancet through 2.3.9 contains an SSRF protection bypass vulnerability in netutil.IsInternalIP that misclassifies IPv6 private, link-local, CGNAT and transition addresses as external. Attackers can supply hostnames resolving to these address forms, including NAT64, 6to4 or Teredo embedding internal IPv4, to reach internal services or cloud metadata endpoints.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Analysis

by VulDB Data Team • 10/13/2026

The vulnerability identified in Lancet versions through 2.3.9 represents a critical security flaw within the netutil.IsInternalIP function, which is responsible for determining whether an IP address belongs to a private or local network segment. This misclassification stems from an incomplete implementation of IPv6 address validation logic that fails to correctly identify specific categories of non-routable and reserved addresses as internal. Specifically, the function erroneously treats IPv6 link-local addresses (fe80::/10), carrier-grade NAT addresses (fc00::/7 or similar CGNAT ranges depending on implementation details often confused with unique local addresses), and various transition mechanisms such as 6to4 (2002::/16), Teredo, and NAT64 prefixes as external public addresses. This oversight creates a significant gap in the application's security controls that rely on this function to enforce access restrictions or prevent server-side request forgery attacks.

From an operational perspective, this flaw allows attackers to bypass SSRF protections by supplying hostnames that resolve to these misclassified IPv6 address forms. Since the system perceives these addresses as external, it permits outbound requests directed at them without triggering internal network blocklists or validation checks. Attackers can exploit this behavior to reach sensitive internal services, such as database servers, administrative interfaces, or microservices running on localhost or private subnets that are not directly exposed to the public internet but are accessible via IPv6 routing paths. Furthermore, and perhaps more critically in cloud-native environments, attackers can target cloud metadata endpoints like AWS EC2 Instance Metadata Service (IMDS) or Azure Managed Identity endpoints which often have specific IP ranges or DNS names that may be misinterpreted by flawed validation logic if not explicitly whitelisted as internal targets for blocking.

The security impact is severe because it undermines the fundamental assumption of SSRF mitigations, which typically rely on distinguishing between trusted external domains and untrusted internal resources. By classifying these IPv6 variants as external, Lancet effectively opens a tunnel into the internal network topology from an externally facing service. This can lead to unauthorized access to backend systems, data exfiltration through internal APIs, or credential theft via cloud metadata services if those endpoints are reachable over the misidentified IPv6 paths. The vulnerability aligns with CWE-918 Server-Side Request Forgery (SSRF) and specifically relates to CWE-20 Improper Input Validation where the input validation logic fails to correctly categorize network addresses based on RFC standards for private and reserved address spaces.

To mitigate this risk, developers must update Lancet to a version greater than 2.3.9 where the netutil.IsInternalIP function has been corrected to properly recognize IPv6 link-local, unique local (ULA), CGNAT, and transition mechanism addresses as internal or restricted ranges. In the interim, if upgrading is not immediately feasible, organizations should implement additional network-level controls such as egress filtering at the firewall or proxy layer to explicitly block outbound connections to known cloud metadata IP ranges and private IPv6 prefixes regardless of how the application validates them. Additionally, input validation logic within custom applications using Lancet should be audited to ensure that any direct calls to IsInternalIP are supplemented with explicit checks for these specific IPv6 address blocks before making network requests. This defense-in-depth approach ensures that even if the library's internal logic is bypassed or flawed, external controls will prevent exploitation of SSRF vectors targeting internal infrastructure.

Responsible

VulnCheck

Reservation

10/13/2026

Disclosure

10/13/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!