#64 serve: git upload-pack has no timeout, no concurrency cap, and fully buffers the pack

closedsecurityopened
details
updated
id
ee5121b8-e3da-4667-88b7-243e11ec27f6

/repo.bundle/git-upload-pack spawns git upload-pack per POST with no timeout, no concurrency limit, and buffers the entire pack in RAM (wait_with_output() → Vec<u8> → respond).

Problems:

Note this is the smart path and is serve-only (dumb /repo.git is static and unaffected), so a deployment that never advertises /repo.bundle still exposes it — the route exists whenever www/repo.bundle exists, which build always writes.

Fix direction:

Acceptance:

Comments (1)

all issues