CVE-2026-28807 PUBLISHED

Path Traversal in wisp.serve_static allows arbitrary file read

Assigner: EEF
Reserved: 03.03.2026 Published: 10.03.2026 Updated: 11.03.2026

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in gleam-wisp wisp allows arbitrary file read via percent-encoded path traversal.

The wisp.serve_static function is vulnerable to path traversal because sanitization runs before percent-decoding. The encoded sequence %2e%2e passes through string.replace unchanged, then uri.percent_decode converts it to .., which the OS resolves as directory traversal when the file is read.

An unauthenticated attacker can read any file readable by the application process in a single HTTP request, including application source code, configuration files, secrets, and system files.

This issue affects wisp: from 2.1.1 before 2.2.1.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
CVSS Score: 8.7

Product Status

Vendor gleam-wisp
Product wisp
Versions Default: unaffected
  • affected from 2.1.1 to 2.2.1 (excl.)
  • affected from pkg:hex/wisp@2.1.1 to pkg:hex/wisp@2.2.1 (excl.)
Vendor gleam-wisp
Product wisp
Versions Default: unaffected
  • affected from 129dcb1fe10ab1e676145d91477535e1c90ab550 to 161118c431047f7ef1ff7cabfcc38981877fdd93 (excl.)
  • affected from pkg:github/gleam-wisp/wisp@129dcb1fe10ab1e676145d91477535e1c90ab550 to pkg:github/gleam-wisp/wisp@161118c431047f7ef1ff7cabfcc38981877fdd93 (excl.)

Credits

  • John Downey finder
  • Louis Pilfold remediation developer

References

Problem Types

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') CWE

Impacts

  • CAPEC-139 Relative Path Traversal