feat(ftp): support explicit TLS upgrades #96

Merged
codinget merged 2 commits from t3code/553a4600 into main 2026-07-12 21:17:53 +02:00
Owner

Summary

  • add verified explicit FTPS control upgrades with AUTH TLS
  • protect passive data connections with the TLS, PBSZ 0, PROT P sequence
  • support optional or required TLS-before-login server policy
  • preserve SNI in insecure mode and handle control/data TLS failures cleanly
  • close abandoned passive accepts when PASV/EPSV channels are replaced

Checks

  • npm run test --workspace=packages/ftp (141 passed)
  • npm run typecheck --workspace=packages/ftp
  • npm run build --workspace=packages/ftp
  • npm exec -- eslint packages/ftp/src
  • npm exec -- prettier --check packages/ftp/src
  • git diff --check

Review

An autonomous review found plaintext PBSZ/PROT ordering and abandoned passive-accept cleanup issues. Both were fixed with regression coverage.

AI disclosure

Implementation and tests were authored with Codex (GPT-5.6-Sol); AI_CHANGES.md is updated.

## Summary - add verified explicit FTPS control upgrades with AUTH TLS - protect passive data connections with the TLS, PBSZ 0, PROT P sequence - support optional or required TLS-before-login server policy - preserve SNI in insecure mode and handle control/data TLS failures cleanly - close abandoned passive accepts when PASV/EPSV channels are replaced ## Checks - npm run test --workspace=packages/ftp (141 passed) - npm run typecheck --workspace=packages/ftp - npm run build --workspace=packages/ftp - npm exec -- eslint packages/ftp/src - npm exec -- prettier --check packages/ftp/src - git diff --check ## Review An autonomous review found plaintext PBSZ/PROT ordering and abandoned passive-accept cleanup issues. Both were fixed with regression coverage. ## AI disclosure Implementation and tests were authored with Codex (GPT-5.6-Sol); AI_CHANGES.md is updated.
codinget added the
Agent
gpt-5.6-sol
4
Agentic
labels 2026-07-12 17:36:10 +02:00
codinget marked the pull request as ready for review 2026-07-12 17:50:33 +02:00
Author
Owner

Autonomous code review completed. It identified two medium-severity findings: (1) eagerly accepted passive transports could be abandoned when PASV/EPSV was replaced, and (2) plaintext sessions could issue PBSZ/PROT out of RFC order and trigger an unexpected data TLS handshake. Commit 602f7a5 closes abandoned accepts, enforces protected-control -> PBSZ 0 -> PROT ordering, and adds regression coverage. Re-review of the updated paths found no remaining issues; all 141 FTP tests and the full CI matrix pass.

Autonomous code review completed. It identified two medium-severity findings: (1) eagerly accepted passive transports could be abandoned when PASV/EPSV was replaced, and (2) plaintext sessions could issue PBSZ/PROT out of RFC order and trigger an unexpected data TLS handshake. Commit 602f7a5 closes abandoned accepts, enforces protected-control -> PBSZ 0 -> PROT ordering, and adds regression coverage. Re-review of the updated paths found no remaining issues; all 141 FTP tests and the full CI matrix pass.
codinget added 2 commits 2026-07-12 21:00:35 +02:00
Co-Authored-By: GPT-5.6-Sol <noreply@openai.com>
fix(ftp): enforce protected data negotiation
CI / lint (pull_request) Successful in 1m43s
CI / format (pull_request) Successful in 1m56s
CI / install (pull_request) Successful in 5m57s
CI / typetest (pull_request) Successful in 2m5s
CI / node-tests (pull_request) Successful in 2m16s
CI / typecheck (pull_request) Successful in 2m24s
CI / browser-tests (pull_request) Successful in 3m59s
50db8b7707
Co-Authored-By: GPT-5.6-Sol <noreply@openai.com>
codinget force-pushed t3code/553a4600 from 602f7a5748 to 50db8b7707 2026-07-12 21:00:35 +02:00 Compare
Author
Owner

Autonomous review completed: no actionable findings. I reviewed the explicit FTPS control/data upgrade paths, TLS failure handling, and passive-channel cleanup; locally verified the FTP suite (141 passing), typecheck, and build.

Autonomous review completed: no actionable findings. I reviewed the explicit FTPS control/data upgrade paths, TLS failure handling, and passive-channel cleanup; locally verified the FTP suite (141 passing), typecheck, and build.
codinget merged commit 50db8b7707 into main 2026-07-12 21:17:53 +02:00
codinget deleted branch t3code/553a4600 2026-07-12 21:17:53 +02:00
Sign in to join this conversation.