Skip to content

Security: Arbitrary module load and potential RCE in sync-rpc worker protocol#446

Open
tuanaiseo wants to merge 1 commit intoarakoodev:tsfrom
tuanaiseo:contribai/fix/security/arbitrary-module-load-and-potential-rce-
Open

Security: Arbitrary module load and potential RCE in sync-rpc worker protocol#446
tuanaiseo wants to merge 1 commit intoarakoodev:tsfrom
tuanaiseo:contribai/fix/security/arbitrary-module-load-and-potential-rce-

Conversation

@tuanaiseo
Copy link
Copy Markdown

Problem

The TCP worker accepts an INIT message containing filename, then performs require(filePath) on that path. If an attacker can connect to this worker port, they can load attacker-chosen local modules (or writable files), resulting in arbitrary code execution in the worker process.

Severity: critical
File: JS/wasm/sync-rpc/worker.js

Solution

Do not accept module paths from network input. Replace with a fixed allowlist of pre-registered handlers, bind server to localhost only, add authentication on the socket protocol, and reject absolute/parent-relative paths.

Changes

  • JS/wasm/sync-rpc/worker.js (modified)

Testing

  • Existing tests pass
  • Manual review completed
  • No new warnings/errors introduced

The TCP worker accepts an `INIT` message containing `filename`, then performs `require(filePath)` on that path. If an attacker can connect to this worker port, they can load attacker-chosen local modules (or writable files), resulting in arbitrary code execution in the worker process.

Affected files: worker.js

Signed-off-by: tuanaiseo <221258316+tuanaiseo@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 7, 2026

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Before we can accept your contribution, we ask that you sign the Arakoo Contributor License Agreement. You can sign the CLA by adding a new comment to this pull request and pasting exactly the following text.


I have read the Arakoo CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request

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.

1 participant