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

2023-07-20のJS: vm2の開発終了、Storybook 7.1、Fresh 1.3 #1100

Merged
merged 18 commits into from
Jul 20, 2023

Conversation

azu
Copy link
Member

@azu azu commented Jul 20, 2023

Node.jsのnode:vmモジュールはSandbox(信用できないコードの実行環境)としては利用できませんが、vm2node:vmをラップしてSandboxを提供するモジュールでした。

今回、vm2の仕組み的に修正できないSandboxに関する脆弱性が発見されたため、メンテナンスを終了することが宣言されています。脆弱性の詳細はまだ公開されていませんが、Sandboxを破ることができる脆弱性で、PoCは8月ごろに公開される予定です。

Sandbox機能が欲しい場合は、QuickJSをWebAssemblyにコンパイルしたquickjs-emscriptenやV8のIsolateを使ったisolated-vmへの移行を推奨しています。
proxy-agents(PACファイルを評価するためにvm2を利用していた)はquickjs-emscriptenへ移行したようです。

vm2node:vm上で実行するコードからホスト環境を参照できないようにパッチで塞いでいくアプローチをとっていました。(📝 node:vmを使ったことがある人向けの話。contextとして渡すオブジェクトにProxyを使い、特定のプロパティを参照できなくするなど)
これは軽量ですが、塞げない穴が出てきたり抜け漏れが出やすいアプローチです。

こういったSandboxにはどのようなアプローチがあるかは、次の記事が面白いと思います。


Storybook 7.1がリリースされました。

Storybook上でオンボーディングの追加、Emotionなどのスタイリングライブラリのセットアップを自動化、Vueのサポートの改善などが含まれています。
また今までコミュニティ開発であったFigma design addonをコアのAddonとして管理するようになっています。


Deno向けのウェブアプリケーションフレームワークであるFresh 1.3がリリースされました。

非同期のルートコンポーネントをサポート、プラグインがルーティングやミドルウェアを定義できるように、_500.tsxでのエラーページのサポート、ErrorBoundaryのサポートなどが追加されています。
また、1ファイルから複数のislandsをexportできるように、Deno.serveのサポートなども追加されています。

@azu azu merged commit 067a236 into develop Jul 20, 2023
@azu azu deleted the jser-week-652 branch July 20, 2023 13:21
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