Script execution control on Linux
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 548
- Forks
- 133
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 2
Description
This is a recap of yesterday's meeting (see #1382) about script execution control on Linux, and how it compares to #1364 (see https://github.com/nodejs/node/pull/54364). @RafaelGSS, @mhdawson, @rdw-msft, and I were attending.
LWN published an article about this new feature: Restricting execution of scripts — the third approach
I gave a talk last week that explains the goal, the challenges, and the current approach: Closing the script execution control gap
The changes required for Node.js would be:
- To check all files containing code with execveat(2) + AT_CHECK
- To restrict according to 2 complementary securebits: SECBIT_EXEC_RESTRICT_FILE and SECBIT_EXEC_DENY_INTERACTIVE
Here is a proof of concept for Python (using the original securebits): https://github.com/zooba/spython/pull/12
Latest kernel patch series: https://lore.kernel.org/all/20240704190137.696169-1-mic@digikod.net/
I'll update this issue with the next patches (which will include an enlighten toy script interpreter).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked 2024-09-26 meeting recap, issue #1382, issue #1364, and pull request #54364, then review the referenced execveat(2), securebits, and kernel patch materials. No implementation files or tests are named; the issue does not define a concrete completion target beyond exploring the proposed Node.js execution-control changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, node.js, python
- Domain
- operating-systems, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100