Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| duke-git | lancet | 2.1.2 – ≤ 2.3.9, 1.3.1 – ≤ 1.4.6 | — |
References
- https://github.com/duke-git/lancet/issues/356 issue-tracking technical-description
- https://github.com/duke-git/lancet/pull/357 patch issue-tracking
- https://github.com/duke-git/lancet/commit/835111c832939a85416d686a1e99d5fe7060c9b4 patch
- https://github.com/duke-git/lancet/blob/v2.3.9/netutil/net.go#L192-L205 technical-description
- https://github.com/duke-git/lancet/blob/v1.4.6/netutil/net.go#L158-L170 technical-description
- https://github.com/duke-git/lancet product
- VulnCheck Advisory: Lancet through 2.3.9 SSRF Protection Bypass via netutil.IsInternalIP third-party-advisory