fix: update suppaftp to 12.0 and clear remaining audit advisories - #86
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The MSRV workflow passes an invalid custom command and will fail before checking the crate.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates vulnerable FTP/XML dependencies and adds security/MSRV validation.
Changes:
- Upgrades
suppaftp,rusty-s3, andquick-xml. - Adapts S3 response parsing and adds an FTP integration test.
- Adds MSRV and dependency-audit workflows.
File summaries
| File | Description |
|---|---|
Cargo.toml |
Updates dependencies, features, and MSRV. |
src/s3/mod.rs |
Adapts rusty-s3 parsing calls. |
tests/ftp_tests.rs |
Adds manual FTP verification. |
.github/workflows/rust.yml |
Adds MSRV validation. |
.github/workflows/audit.yml |
Adds scheduled security auditing. |
CHANGELOG.md |
Documents security and CI changes. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The new Rust 1.88 MSRV conflicts with the documented Rust 1.70 MSRV in AGENTS.md.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
Cargo.toml:6
- The MSRV declaration now conflicts with the contributor guidance in
AGENTS.md:94, which still says the project supports Rust 1.70+. Update that guidance to 1.88 so future changes and local verification do not target an unsupported compiler.
- Files reviewed: 6/6 changed files
- Comments generated: 0 new
- Review effort level: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Security fix:
suppaftp7.0 is flagged by RUSTSEC-2026-0271 (FTP command injection via CRLF in control channel arguments, patched in >= 10.0.2). This PR updates suppaftp to 12.0 and, while running the new audit pipeline, also clears thequick-xmladvisories (RUSTSEC-2026-0194, RUSTSEC-2026-0195) viarusty-s30.10 (which dropped quick-xml) andquick-xml0.41.Changes
suppaftp7.0 -> 12.0. API used by oneio (FtpStream::connect,login,transfer_type,retr_as_stream,FtpError) is source-compatible; no code changes needed for the FTP path.suppaftp?/rustls->suppaftp?/rustls-aws-lc-rs(feature renamed in suppaftp 10+).rust-version = "1.88.0"(suppaftp 12 requires Rust 1.88).rusty-s30.9 -> 0.10:parse_responsenow takes&strinstead of&[u8]; two call sites insrc/s3/mod.rsupdated.quick-xml0.38 -> 0.41; existing usage compiles unchanged.Check MSRVjob (cargo msrv verify -- --all-features) inrust.yml, and a newSecurity auditworkflow (cargo audit, on Cargo.toml/Cargo.lock changes and weekly).tests/ftp_tests.rsagainstftp.radb.net(the same host bgpkit-commons IRR sources use) for manual FTP-path verification.Testing
cargo +1.88.0 check --all-featuresand--no-default-featurespass (fresh lockfile resolution).cargo clippy --all-features -- -D warningsand--no-default-featurespass;cargo fmt --checkpasses.cargo test --all-featurespasses (S3/R2 tests stay ignored as usual).cargo auditreports 0 vulnerabilities (307 crates scanned).cargo test --test ftp_tests --features ftp -- --ignoredagainstftp.radb.netpasses (anonymous login + binary RETR + gzip decode ofradb.db.gz).test-s3CI job (requires R2 credentials).