Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sanitize GitHub action shell cmd to prevent cmd injection #3509 #3510

Conversation

hamidonos
Copy link
Collaborator

@hamidonos hamidonos commented Oct 14, 2024

Notes:

We use execFileSync to execute shell commands in a a separate child process.

Separate Process:
The child process created by execFileSync runs independently from the main Node.js process. It does not share the same memory or execution context with the parent process, so they do not interfere with each other directly.
If the child process crashes or exits, it won't directly crash the parent Node.js process.

Controlled Input and Output:
The child process has its own stdin, stdout, and stderr streams, and the parent process can choose to interact with them (read/write), but they are isolated unless explicitly connected.
By default, execFileSync captures the output of the child process and returns it to the parent process only after execution completes.

Environment Variables:
The child process runs with its own set of environment variables. You can specify a custom environment for the child process, which is separate from the environment of the parent process.

Every argument is passed separately.

Every shell argument is sanitized independently

Before we pass shell commands and arguments to the child process we sanitize the input parameters.
Sanitization checks for illegal characters and if a argument is a executable command -> if so we throw an error and exit the program

Copy link
Member

@de-jcup de-jcup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good work - let's merge it 👍

@hamidonos hamidonos merged commit cdb5c25 into develop Oct 17, 2024
2 checks passed
@hamidonos hamidonos deleted the gha_feature-sanitize-github-action-shell-cmd-to-prevent-cmd-injection-#3509 branch October 17, 2024 06:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sanitize GitHub Action input to prevent command injection
2 participants