/

CVE-2026-110628

Severity:

HIGH RISK

(8.6)

SSRF (CWE-918) in Kan Attachment Download API Route

CVE-2026-110628

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Unauthorized access to internal network resources and sensitive metadata

Severity:

HIGH RISK

(8.6)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Kan contains an unauthenticated server-side request forgery vulnerability in the attachment download endpoint. When S3_ENDPOINT is not configured, an attacker may influence the destination requested by the server and access internal services, localhost ports, or cloud instance metadata.

Kan contains an unauthenticated server-side request forgery vulnerability in the attachment download endpoint. When S3_ENDPOINT is not configured, an attacker may influence the destination requested by the server and access internal services, localhost ports, or cloud instance metadata.

Affected context

The issue affects Kan deployments using the attachment download API when S3_ENDPOINT is unset and request parameters can influence the URL passed to the server-side fetch operation. The vulnerability is associated with an incomplete remediation of an earlier SSRF issue and does not require authentication at the affected route.

The issue affects Kan deployments using the attachment download API when S3_ENDPOINT is unset and request parameters can influence the URL passed to the server-side fetch operation. The vulnerability is associated with an incomplete remediation of an earlier SSRF issue and does not require authentication at the affected route.

Exploit preconditions

  • Attack surface: The /api/download/attatchment HTTP route
  • Required access: Network access to the Kan server; authentication is not required
  • Trigger point: Processing an attachment download request
  • Configuration condition: S3_ENDPOINT is unset
  • Why exploitation is possible: Attacker-controlled URL-related parameters can influence the server-side fetch() destination without sufficient destination restrictions
  • Attack surface: The /api/download/attatchment HTTP route
  • Required access: Network access to the Kan server; authentication is not required
  • Trigger point: Processing an attachment download request
  • Configuration condition: S3_ENDPOINT is unset
  • Why exploitation is possible: Attacker-controlled URL-related parameters can influence the server-side fetch() destination without sufficient destination restrictions

Why this happens

The vulnerability results from incomplete validation and restriction of attacker-influenced request destinations. The attachment download handler passes controllable URL parameters to a server-side HTTP client without reliably enforcing an approved host, scheme, or network boundary. This maps to CWE-918, where a server is induced to make requests to unintended locations on behalf of an external requester.

The vulnerability results from incomplete validation and restriction of attacker-influenced request destinations. The attachment download handler passes controllable URL parameters to a server-side HTTP client without reliably enforcing an approved host, scheme, or network boundary. This maps to CWE-918, where a server is induced to make requests to unintended locations on behalf of an external requester.

Potential impact

  • An attacker may read responses from internal services
  • An attacker could access services bound to localhost
  • Cloud instance metadata and associated credentials may be exposed
  • Internal network topology or service configuration may be disclosed
  • Compromised metadata credentials could enable further cloud resource access
  • An attacker may read responses from internal services
  • An attacker could access services bound to localhost
  • Cloud instance metadata and associated credentials may be exposed
  • Internal network topology or service configuration may be disclosed
  • Compromised metadata credentials could enable further cloud resource access

General mitigation guidance

Mitigation generally focuses on enforcing a strict server-side destination

policy for all attachment retrieval requests.

Common defensive patterns include:

  • Allowing requests only to explicitly approved storage hosts
  • Rejecting private, loopback, link-local, and other restricted address ranges
  • Restricting accepted URL schemes and disabling redirects to untrusted destinations
  • Resolving hostnames and validating the resulting addresses before connection
  • Treating client-supplied URL parameters as untrusted identifiers rather than fetch targets
  • Using secure-by-default storage configuration and requiring an explicit endpoint
  • Applying network egress controls and least-privilege cloud identity permissions

Mitigation generally focuses on enforcing a strict server-side destination

policy for all attachment retrieval requests.

Common defensive patterns include:

  • Allowing requests only to explicitly approved storage hosts
  • Rejecting private, loopback, link-local, and other restricted address ranges
  • Restricting accepted URL schemes and disabling redirects to untrusted destinations
  • Resolving hostnames and validating the resulting addresses before connection
  • Treating client-supplied URL parameters as untrusted identifiers rather than fetch targets
  • Using secure-by-default storage configuration and requiring an explicit endpoint
  • Applying network egress controls and least-privilege cloud identity permissions

How teams detect issues like this

Detection approaches may include:

  • Static analysis for server-side HTTP clients receiving request-derived URLs
  • Code review checks for missing allowlists, redirect controls, and private-address filtering
  • Dynamic testing with requests targeting loopback, private, link-local, and metadata ranges
  • Web application firewall or gateway policies that restrict suspicious destination parameters
  • Network monitoring for unexpected outbound requests from the Kan service
  • Automated security review tools that identify SSRF-prone data flows

Detection approaches may include:

  • Static analysis for server-side HTTP clients receiving request-derived URLs
  • Code review checks for missing allowlists, redirect controls, and private-address filtering
  • Dynamic testing with requests targeting loopback, private, link-local, and metadata ranges
  • Web application firewall or gateway policies that restrict suspicious destination parameters
  • Network monitoring for unexpected outbound requests from the Kan service
  • Automated security review tools that identify SSRF-prone data flows

Sources

SourceLink
github.comgithub.com/kanbn/kan
github.comgithub.com/kanbn/kan/blob/v0.6.0/.env.example#L25-L27
github.comgithub.com/kanbn/kan/blob/v0.6.0/apps/web/src/pages/api/download/attatchment.ts#L21-L52
github.comgithub.com/kanbn/kan/commit/53397d8e81dc1494d94132848c1f0416f1152bd7
github.comgithub.com/kanbn/kan/pull/590
github.comgithub.com/kanbn/kan/security/advisories/GHSA-qrx8-9hc6-jvqg
hackmd.iohackmd.io/@leediay/HyIxU63ofg
vulncheck.comvulncheck.com/advisories/kan-0.5.5-through-0.6.0-unauthenticated-ssrf-via-api-download-attatchment

Frequently asked

questions

Yes. The affected attachment download route is reachable over the network, and

the described weakness does not require authentication. Exploitability still

depends on the route being exposed and S3_ENDPOINT being unset.

An attacker needs network access to the Kan server and the ability to submit

requests to the attachment download endpoint. No authenticated account is

generally required for the vulnerable request path.

Ensure that server-side fetch operations use strict allowlists for approved

hosts and schemes, reject restricted address ranges, and do not trust

client-supplied destinations.

Centralize outbound request validation, enforce egress network policies, test

private and metadata address protections, and apply least privilege to the

service's cloud identity and network access.

Yes. The affected attachment download route is reachable over the network, and

the described weakness does not require authentication. Exploitability still

depends on the route being exposed and S3_ENDPOINT being unset.

An attacker needs network access to the Kan server and the ability to submit

requests to the attachment download endpoint. No authenticated account is

generally required for the vulnerable request path.

Ensure that server-side fetch operations use strict allowlists for approved

hosts and schemes, reject restricted address ranges, and do not trust

client-supplied destinations.

Centralize outbound request validation, enforce egress network policies, test

private and metadata address protections, and apply least privilege to the

service's cloud identity and network access.

Find out what's already
exploitable in your codebase.