You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I know this is a prototype but it looks like the current state allows the client to execute arbitrary code. A <textarea>'s content is sent right to (dynamic-require) under the assumption the code is scribble code.
If I were writing this I would either:
Force use of a harmless, strict subset of scribble and replace the #lang line on each submission to use this subset. Forbid use of Racket from within Scribble, or at least forbid access to ports, threads, file-system checks, etc.
Allow the full power of Racket (since scribble already does), but never execute what users submit right off. The code would be funneled into a sandbox VM (Vagrant?) off any sensitive network and be subject to human editorial review.
The text was updated successfully, but these errors were encountered:
zyrolasting
changed the title
Find a way to prevent malicious code
Find a way to prevent malicious code execution
Sep 11, 2019
I know this is a prototype but it looks like the current state allows the client to execute arbitrary code. A
<textarea>
's content is sent right to(dynamic-require)
under the assumption the code isscribble
code.If I were writing this I would either:
scribble
and replace the#lang
line on each submission to use this subset. Forbid use of Racket from within Scribble, or at least forbid access to ports, threads, file-system checks, etc.scribble
already does), but never execute what users submit right off. The code would be funneled into a sandbox VM (Vagrant?) off any sensitive network and be subject to human editorial review.The text was updated successfully, but these errors were encountered: