
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-69192 is an octal-encoding bypass vulnerability in the ip-address npm library (by beaugunderson) that allows attackers to circumvent SSRF filters and network trust-boundary checks. The root cause is that Address4 accepts IPv4 octets with leading zeros and decodes them as decimal (e.g., 012 → 12), while the WHATWG URL host parser, inet_aton, and getaddrinfo all decode leading zeros as octal (e.g., 012 → 10). This disagreement means an application using the library to block internal addresses will classify 012.0.0.1 as public (12.0.0.1), while the actual network request reaches 10.0.0.1. All versions up to and including 10.3.0 are affected; version 10.3.1 contains the fix. The vulnerability carries a CVSS v4 base score of 7.7 (High) (Github Advisory, Feedly).
The defect is classified as CWE-20 (Improper Input Validation) and CWE-918 (Server-Side Request Forgery). In src/v4/constants.ts, the RE_ADDRESS regex used by Address4.parse contained the per-octet alternative [01]?[0-9][0-9]?, which permits a leading zero — so 012 passes validation. Downstream, every octet is decoded via parseInt(part, 10), yielding 12, while resolvers interpret the same string as octal 10. Because the flaw is in the parse gate itself, all downstream classifiers — isPrivate(), isLoopback(), isLinkLocal(), isCGNAT(), isInSubnet(), isHostInSubnet(), and correctForm() — all operate on the mis-decoded value. Notably, Address6 already rejected this notation on its IPv4-in-IPv6 path, making Address4 the outlier. A proof-of-concept is included in the advisory: installing ip-address@10.3.0 and calling isBlocked('012.0.0.1') returns false (allowed), while fetch('http://012.0.0.1/') connects to 10.0.0.1 (Github Advisory).
The primary security impact is SSRF enablement: an attacker can supply an octal-ambiguous address (e.g., 012.0.0.1 or 012.012.012.012) to an application that uses ip-address for SSRF filtering, causing the filter to classify the address as public while the actual HTTP request reaches an internal RFC 1918 host (the entire 10.0.0.0/8 and 0.0.0.0/8 ranges are reachable via this technique). This can expose cloud instance metadata services, internal APIs, and other restricted endpoints. The CVSS v4 scoring reflects high subsequent-system confidentiality impact, acknowledging that internal services reachable via SSRF may expose sensitive data. Availability and integrity of the vulnerable system itself are not directly impacted (Github Advisory, Feedly).
ip-address npm library (versions ≤ 10.3.0) to validate or filter them for SSRF protection.012.0.0.1 (resolves to 10.0.0.1) or 012.012.012.012 (resolves to 10.10.10.10).new URL('http://012.0.0.1/').hostname returns '10.0.0.1'.Address4.isValid('012.0.0.1') (returns true) and new Address4('012.0.0.1').isPrivate() (returns false), so the request is classified as external and allowed.10.0.0.1 or a cloud metadata endpoint such as 169.254.169.254 if reachable via similar encoding).10.x.x.x, 172.16.x.x, 192.168.x.x) or cloud metadata endpoints (e.g., 169.254.169.254) that were not initiated by legitimate application logic./\b0\d+\.\d+\.\d+\.\d+/ or specific values like 012.0.0.1, 012.012.012.012, 010.0.0.1).http://169.254.169.254/latest/meta-data/) originating from the application process.Upgrade the ip-address npm package to version 10.3.1, which tightens the RE_ADDRESS regex to reject octets with leading zeros and adds an explicit pre-check in Address4.parse that throws AddressError for any octet matching /^0\d/. If an immediate upgrade is not possible, apply the following input sanitization before passing any host string to Address4: if (host.split('.').some((octet) => /^0\d/.test(octet))) throw new Error('ambiguous address');. Additionally, the advisory recommends treating ip-address classifiers as one layer of SSRF defense only — a robust guard must also resolve hostnames and validate the resolved IP against the actual socket destination, accounting for DNS rebinding and redirects (Github Advisory, v10.3.1 Release).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."