---
id: "CVE-2026-53980"
page: "https://infrastack.ai/live/CVE-2026-53980"
kind: "vulnerability"
aliases: ["CVE-2026-53980"]
title: "Wish Go library: git middleware path traversal lets SSH users reach other repos"
severity: "high"
cvss: 8.6
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["git-hosting", "go", "package", "ssh", "wish"]
not_affected_if: ["no-git-middleware", "unauthenticated-only-access"]
published_at: "2026-11-06T15:17:22+00:00"
first_seen_at: "2026-11-06T15:42:45+00:00"
updated_at: "2026-11-06T15:44:06+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-53980", "first_seen_at": "2026-11-06T15:42:45+00:00"}]
exploit_sources: []
---

# Wish Go library: git middleware path traversal lets SSH users reach other repos

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

Charmbracelet wish, a Go library for building SSH servers, has a path traversal flaw in its git middleware. An authenticated SSH user can supply crafted repository paths to read or write Git repositories outside the configured root directory.

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

## How to check

- Check the version of `charm.land/wish/v2` in `go.mod` or `go list -m charm.land/wish/v2`
- Look for `git.Middleware()` usage in your Go SSH server code

## Fix

- `charm.land/wish/v2` before `2.0.5`: move to `2.0.5` or later

## Timeline

- 2026-11-06T15:42:45+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-53980

## Documents

- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/charmbracelet-wish-path-traversal-via-git-middleware
- [fix] Patch: github.com https://github.com/charmbracelet/wish/commit/533db0daa90446b0d4ae3284877179c37e0cc48e
- [fix] Release notes: github.com https://github.com/charmbracelet/wish/releases/tag/v2.0.5

## From the sources

Charmbracelet wish before 2.0.5 contains a path traversal vulnerability in the git middleware (charm.land/wish/v2) that allows authenticated SSH users to escape the configured repository directory by supplying crafted repo paths that bypass a flawed forward-slash-count containment check in git.Middleware(). Attackers can use a single-depth path ../evil, or on Windows a payload ..\..\evil that defeats the slash-count guard entirely, to read or write arbitrary repositories outside the intended root via git-upload-pack, git-upload-archive, or git-receive-pack.

---

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