---
id: "CVE-2026-103980"
page: "https://infrastack.ai/live/CVE-2026-103980"
kind: "vulnerability"
aliases: ["CVE-2026-103980"]
title: "ideon: SSRF filter misses IPv6 transition addresses, exposing internal networks"
severity: "high"
cvss: 7.1
epss: null
exploited: false
status: "open"
category: "other"
products: []
ecosystems: []
tags: ["ideon", "other", "self-hosted"]
not_affected_if: ["no-user-accounts", "version-0.9.6-or-later"]
published_at: "2026-11-11T21:16:42+00:00"
first_seen_at: "2026-11-11T21:29:07+00:00"
updated_at: "2026-11-11T21:30:47+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-103980", "first_seen_at": "2026-11-11T21:29:07+00:00"}]
exploit_sources: []
---

# ideon: SSRF filter misses IPv6 transition addresses, exposing internal networks

Link for people: https://infrastack.ai/live/CVE-2026-103980 (this .md is for agents)

ideon is a self-hosted visual workspace whose SSRF check for link previews does not recognize IPv4-mapped, NAT64, 6to4 and Teredo IPv6 addresses that embed private IPv4 addresses. A logged-in user can use these addresses to make the server fetch cloud metadata endpoints, localhost services and internal networks.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the ideon version; `0.9.6` or later includes the fix, and anything earlier is affected per the sources.
- Look for `isPrivateIP` in `src/app/lib/ssrf.ts` to confirm the current code.

## Fix

- ideon: move to `0.9.6` or later.

## Timeline

- 2026-11-11T21:29:07+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-103980

## Documents

- [advisory] Vendor advisory: github.com https://github.com/3xpyth0n/ideon/security/advisories/GHSA-fwh7-rv72-xh5q
- [fix] Patch: github.com https://github.com/3xpyth0n/ideon/commit/c4ffb1e50132b9264bde4a679fe24f084f20069d
- [fix] Release notes: github.com https://github.com/3xpyth0n/ideon/releases/tag/v0.9.6

## From the sources

ideon is a self-hosted visual workspace. Prior to version 0.9.6, the SSRF protection in safeFetch is bypassed by IPv6 transition addresses that embed private IPv4 addresses. The isPrivateIP function in src/app/lib/ssrf.ts checks only a narrow set of IPv6 ranges (loopback ::1, ULA fc/fd, link-local fe80) but does not recognize IPv4-mapped (::ffff:), NAT64 well-known (64:ff9b::/96, RFC 6052), NAT64 local-use (64:ff9b:1::/48, RFC 8215), 6to4 (2002::/16, RFC 3056), or Teredo (2001::/32, RFC 4380) encodings. An authenticated user can supply these addresses in link URLs to reach cloud metadata endpoints (169.254.169.254), localhost services, and RFC 1918 internal networks through the link preview metadata fetcher. This issue has been patched in version 0.9.6.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
