{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "0"
              },
              {
                "fixed": "2.18.0"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "326d83e780ae120b45ccd6f3d7bd24922b54461c"
            },
            {
              "fixed": "5baffdc213f0deaaeb318e97a41d611ac0656a94"
            }
          ],
          "repo": "https://github.com/penpot/penpot",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-wxgm-8qjw-x445"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-918"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105689.json"
  },
  "details": "Penpot is an open-source design and prototyping platform. Prior to 2.18.0, app.util.ssrf/blocked-address? relies on Java InetAddress predicates that do not classify NAT64, 6to4, or Teredo addresses and applies additional CIDR checks only to IPv4 values. Exploitation requires routing through a NAT64 gateway or an attacker-controlled DNS AAAA record; cloud environments with NAT64 gateways are directly exploitable. A user controlling a media import URL, or an administrator controlling a webhook URL, can then supply an IPv6 transition address that embeds a cloud-metadata, loopback, link-local, or private IPv4 target and bypasses the intended SSRF restrictions. Media import can disclose response bodies, while webhook delivery can expose response status as a network-probing side channel. This issue is fixed in version 2.18.0.",
  "id": "CVE-2026-105689",
  "modified": "2026-10-09T02:31:05.672787881Z",
  "published": "2026-10-05T19:51:04.208Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/penpot/penpot/releases/tag/2.18.0"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105689.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/penpot/penpot/security/advisories/GHSA-wxgm-8qjw-x445"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-105689"
    },
    {
      "type": "FIX",
      "url": "https://github.com/penpot/penpot/commit/326d83e780ae120b45ccd6f3d7bd24922b54461c"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "Penpot: SSRF guard bypass via IPv6 transition addresses (NAT64/6to4/Teredo) in webhook delivery and media download"
}