π‘οΈ Sentinel: [CRITICAL] Fix command injection in VS Code extension#99
π‘οΈ Sentinel: [CRITICAL] Fix command injection in VS Code extension#99
Conversation
Replaced execSync with execFileSync and implemented proper argument parsing to prevent command injection from malicious workspace directories. Co-authored-by: raccioly <63126795+raccioly@users.noreply.github.com>
|
π Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a π emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
π¨ Severity: CRITICAL
π‘ Vulnerability: The VS Code extension used
execSyncwith concatenated string arguments, which allowed command injection if theworkspaceDirpath contained shell metacharacters like;,&&, or||.π― Impact: If a user opened a maliciously crafted folder name in VS Code, an attacker could achieve arbitrary Remote Code Execution (RCE) on the developer's machine with their permissions.
π§ Fix:
execSyncwithexecFileSync.parseArgsfunction to correctly tokenize the command string arguments into an array..mjsscript vianodewhere possible, avoiding Windows.cmdwrappers which fall back to shell execution.npx.cmdexplicitly on Windows if the node_modules script wasn't found.β Verification:
node -c.node --test tests/*.test.mjs).PR created automatically by Jules for task 9493210260264761375 started by @raccioly