Repository navigation
fix(curl): escape multipart backslashes - #1950
Merged
chaliy merged 1 commit intoJun 5, 2026
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR hardens the curl builtin’s multipart Content-Disposition header construction by correctly escaping HTTP quoted-string metacharacters, preventing parameter breakout when user-controlled multipart field names or filenames contain backslashes before quotes.
Changes:
- Update
sanitize_multipart_nameto escape both\and"(while still rejecting CR/LF) to prevent quoted-string termination/injection. - Add a regression unit test covering the
\"edge case to ensure backslash-before-quote is handled safely.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
bashkit | c462bdb | Commit Preview URL | Jun 05 2026, 08:12 PM |
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.
Motivation
Description
sanitize_multipart_nameincrates/bashkit/src/builtins/curl.rsto escape both backslashes (\) and double quotes (") when building HTTP quoted-string parameters.Content-Dispositionheaders for both file and text multipart parts (same function is used at emission sites).test_sanitize_multipart_name_escapes_backslash_before_quoteincrates/bashkit/src/builtins/curl.rsthat verifies a backslash-before-quote value is escaped correctly.Testing
cargo fmt --checkwhich passed.cargo test -p bashkit test_sanitize_multipart_name_escapes_backslash_before_quotewhich passed.cargo test -p bashkit --features http_client sanitize_multipart_nameandcargo test -p bashkitand observed all tests pass.origin/maincould not be performed from this environment.Codex Task