{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "cpe": "cpe:2.3:a:legeling:prompthub:*:*:*:*:-:*:*:*",
            "extracted_events": [
              {
                "introduced": "0.4.9"
              },
              {
                "fixed": "0.5.4"
              }
            ],
            "source": [
              "AFFECTED_FIELD",
              "CPE_RANGE",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "1a4770d027d5b4f1e0ba8ce8ac66823f756932b1"
            },
            {
              "fixed": "726ade73c3714d449f985fe5b70f50895a51fe45"
            }
          ],
          "repo": "https://github.com/legeling/prompthub",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-9fhh-fjfg-5mr6"
  ],
  "database_specific": {
    "cna_assigner": "GitHub_M",
    "cwe_ids": [
      "CWE-20",
      "CWE-693",
      "CWE-918"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42261.json"
  },
  "details": "PromptHub is an all-in-one AI toolbox for prompt, skill, and agent management. From version 0.4.9 to before version 0.5.4, apps/web/src/routes/skills.ts exposes an authenticated endpoint POST /api/skills/fetch-remote that fetches a user-supplied URL server-side and reflects the response body (up to 5 MB) back to the caller. The SSRF protection in apps/web/src/utils/remote-http.ts (isPrivateIPv6) attempts to block private/loopback destinations, but multiple alternate-but-valid IPv6 representations bypass the check. The bypasses reach any IPv4 address (loopback, RFC1918, link-local) via IPv4-mapped IPv6 in hex form, and the canonical ::1 via any representation that isn't the literal string \"::1\". Any authenticated user (role: user or admin) can trigger the SSRF. On deployments configured with ALLOW_REGISTRATION=true — a supported and documented configuration — this means any internet user who can register. This issue has been patched in version 0.5.4.",
  "id": "CVE-2026-42261",
  "modified": "2026-07-15T01:48:57.269662738Z",
  "published": "2026-05-08T03:11:25.305Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/legeling/PromptHub/releases/tag/v0.5.4"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42261.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/legeling/PromptHub/security/advisories/GHSA-9fhh-fjfg-5mr6"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-42261"
    }
  ],
  "schema_version": "1.8.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "PromptHub: Authenticated SSRF via IPv6 filter bypass in `POST /api/skills/fetch-remote`"
}