Skip to content

Commit c8d2ee0

Browse files
Merge pull request #198 from Tcode-Motion/security/prevent-path-traversal-process-3065281696807958351
🔒 Prevent path traversal in process commands
2 parents 951af32 + cdac8ce commit c8d2ee0

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

‎stdlib/src/process.rs‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,15 @@ impl StdlibRegistry {
3232
));
3333
}
3434
let cmd = args[0].try_into_string()?;
35+
if cmd.contains("..") || cmd.contains('\0') {
36+
return Err(RuntimeError::new(
37+
RuntimeErrorKind::InvalidOperation(
38+
"Security policy violation: Path traversal or null bytes in command are denied".to_string(),
39+
),
40+
None,
41+
None,
42+
));
43+
}
3544
let args_list = match &args[1] {
3645
RuntimeValue::List { items, .. } => {
3746
let mut list = Vec::new();
@@ -115,6 +124,16 @@ impl StdlibRegistry {
115124
}
116125
};
117126

127+
if cmd.contains("..") || cmd.contains('\0') {
128+
return Err(RuntimeError::new(
129+
RuntimeErrorKind::InvalidOperation(
130+
"Security policy violation: Path traversal or null bytes in command are denied".to_string(),
131+
),
132+
None,
133+
None,
134+
));
135+
}
136+
118137
let parsed = shlex::split(&cmd).ok_or_else(|| {
119138
RuntimeError::new(
120139
RuntimeErrorKind::InvalidOperation(

0 commit comments

Comments
 (0)