From c462bdb5ed24612617b566807043e6c612aa9554 Mon Sep 17 00:00:00 2001 From: Mykhailo Chalyi Date: Fri, 5 Jun 2026 14:49:05 -0500 Subject: [PATCH] fix(curl): escape multipart backslashes --- crates/bashkit/src/builtins/curl.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/crates/bashkit/src/builtins/curl.rs b/crates/bashkit/src/builtins/curl.rs index dfda09947..b2f14ba2b 100644 --- a/crates/bashkit/src/builtins/curl.rs +++ b/crates/bashkit/src/builtins/curl.rs @@ -295,7 +295,8 @@ impl Builtin for Curl { } /// Sanitize a multipart field name or filename to prevent header injection. -/// Rejects CR/LF characters (which could inject headers) and escapes double quotes. +/// Rejects CR/LF characters (which could inject headers) and escapes quoted-string +/// metacharacters so names cannot terminate `Content-Disposition` parameters. fn sanitize_multipart_name(value: &str, label: &str) -> std::result::Result { if value.contains('\r') || value.contains('\n') { return Err(format!( @@ -303,7 +304,15 @@ fn sanitize_multipart_name(value: &str, label: &str) -> std::result::Result