---
id: "CVE-2026-38600"
kind: "vulnerability"
aliases: ["CVE-2026-38600"]
title: "gohttpserver: crafted zip upload writes arbitrary files to disk"
severity: "high"
cvss: null
epss: null
exploited: false
status: "open"
category: "other"
products: [{"name": "gohttpserver", "fixed": [], "affected": "<= 1.3.0", "ecosystem": "go"}]
ecosystems: []
tags: ["file-upload", "go", "gohttpserver", "other", "self-hosted", "zip-slip"]
not_affected_if: ["auth-required", "newer-version", "upload-disabled"]
published_at: "2026-11-03T17:18:13+00:00"
first_seen_at: "2026-11-03T17:21:57+00:00"
updated_at: "2026-11-03T17:26:24+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-38600", "first_seen_at": "2026-11-03T17:21:57+00:00"}, {"source": "analyst", "url": null, "first_seen_at": "2026-11-03T17:26:24+00:00"}]
---

# gohttpserver: crafted zip upload writes arbitrary files to disk

The upload handler in gohttpserver up to v1.3.0 unzips uploaded archives (unzip=true) without checking entry paths, so a crafted zip can write files outside the target directory. The project is marked not maintained. A fix PR (#233) is open and unmerged.

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

## Affected

- go:gohttpserver affected <= 1.3.0 fixed ?

## How to check

Run 'gohttpserver --version' or check the image/binary tag; every release up to v1.3.0 is affected. Look at the start command or service file for --upload; without it the upload endpoint is off. Also check whether auth is on (--auth-type http/openid/oauth2-proxy) and whether the port is reachable from untrusted networks. Look for files outside the served root that were written recently.

## Fix

No fixed release known. The README says the project is not maintained. Upstream PR #233 adds a path check to unzipFile but was still open and unmerged when last seen. Until a release exists, do not run with --upload, or block unzip=true uploads at a reverse proxy.

## Timeline

- 2026-11-03T17:21:57+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-38600
- 2026-11-03T17:26:24+00:00 analyst — Source: NVD plus the upstream README and PR #233 (found via search; the PR page itself would not fetch, so its content is from the search snippet). No fix released; project marked not maintained. Researcher Den-Sec lists the CVE as Zip Slip to RCE, 9.1, in their own profile, not the vendor. Nothing is verified because there is no maintainer advisory. Unclear: whether upload without auth is possible in a default config. Upload needs --upload; auth is optional.

## Documents

- [advisory] NVD CVE-2026-38600 https://nvd.nist.gov/vuln/detail/CVE-2026-38600
- [describes] codeskyblue/gohttpserver README (not maintained; --upload flag, unzip=true) https://github.com/codeskyblue/gohttpserver
- [discussion] PR #233: Zip Slip protection in unzipFile (open, unmerged) https://github.com/codeskyblue/gohttpserver/pull/233

## From the sources

A Zip Slip vulnerability in the /upload endpoint of codeskyblue gohttpserver through v1.3.0 allows attackers to write arbitrary files via uploading a crafted Zip archive.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
