Skip to content

fix(security): bump basic-ftp to close 4 Dependabot alerts (1 critical) - #229

Merged
github-actions[bot] merged 1 commit into
mainfrom
fix/basic-ftp-path-traversal
Aug 28, 2026
Merged

fix(security): bump basic-ftp to close 4 Dependabot alerts (1 critical)#229
github-actions[bot] merged 1 commit into
mainfrom
fix/basic-ftp-path-traversal

Conversation

@catomean

Copy link
Copy Markdown
Collaborator

Summary

basic-ftp 5.1.0 → 5.3.1, closing 4 open Dependabot alerts including the one critical alert on this repo:

basic-ftp is a deep transitive dependency (puppeteer → @puppeteer/browsers → proxy-agent → pac-proxy-agent → get-uri → basic-ftp), never imported directly — it only matters if get-uri resolves a proxy auto-config file over ftp://, which this backend doesn't configure. Low real-world exposure, but free to fix: get-uri's own package.json already permits ^5.0.2, so npm update basic-ftp resolves to 5.3.1 within the range the parent already allows. No new direct dependency, no package.json change, no code touched.

Verified

get-uri, proxy-agent, and puppeteer all require() cleanly after the bump.

Not fixed here (flagged, not forced)

The remaining ~16 alerts (extract-zip, jws, lodash, minimatch, path-to-regexp, @trpc/server, picomatch, uuid, plus three frontend @opentelemetry packages) are blocked from npm audit fix by a pre-existing, unrelated peer-dependency conflict: this repo runs zod v4, but openai@5.10.2 peer-requires zod v3. Forcing through with --force risks silently breaking whatever depends on openai's zod-validated schemas — not safe to do without review, so left as a separate item.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01Y9rKLxddothnXEtY6KDziN

…itical

basic-ftp 5.1.0 → 5.3.1, closing:
  #44 critical — path traversal in downloadToDir()
  #96 high — unbounded multiline control response buffering DoS
  #89 high — incomplete CRLF injection protection (arbitrary FTP command exec)
  #91 high — unbounded memory consumption in Client.list()

basic-ftp is a deep transitive dependency (puppeteer -> @puppeteer/browsers
-> proxy-agent -> pac-proxy-agent -> get-uri -> basic-ftp), never imported
directly in this codebase — it's used only if get-uri resolves a proxy
auto-config file over an ftp:// URL, which this backend does not configure.
Low real-world exposure, but the fix costs nothing: get-uri's own
package.json already accepts ^5.0.2, so `npm update basic-ftp` resolves to
5.3.1 (the latest 5.x) within the range the parent package already permits —
no new direct dependency, no package.json change, no code touched.

Verified: get-uri/proxy-agent/puppeteer all require() cleanly after the bump.

NOT fixed here: `npm audit fix` for the remaining ~16 open alerts
(extract-zip, jws, lodash, minimatch, path-to-regexp, @trpc/server,
picomatch, uuid, and three frontend/@opentelemetry packages) is blocked by
a pre-existing, unrelated peer-dependency conflict — this repo runs zod v4
but openai@5.10.2 peer-requires zod v3, so `npm audit fix` refuses to
resolve anything without --force. Forcing through that risks silently
breaking whatever depends on openai's zod-validated schemas, and isn't safe
to do blind. Left as a separate, flagged item rather than forced through.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y9rKLxddothnXEtY6KDziN
@github-actions
github-actions Bot merged commit 1a6f243 into main Aug 28, 2026
1 check passed
@github-actions
github-actions Bot deleted the fix/basic-ftp-path-traversal branch August 28, 2026 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant