Open1

wasm_exec.js の差分

Go 1.17.2 で WASM port のセキュリティ・アップデートが行われたが wasm_exec.js も改修されたということなので diff をとってみた。

wasm_exec.js
$ diff -u go1.17.1/misc/wasm/wasm_exec.js go1.17.2/misc/wasm/wasm_exec.js
--- go1.17.1/misc/wasm/wasm_exec.js    2021-09-10 00:41:20.000000000 +0900
+++ go1.17.2/misc/wasm/wasm_exec.js    2021-10-08 04:58:29.000000000 +0900
@@ -567,6 +567,13 @@
                 offset += 8;
             });
 
+            // The linker guarantees global data starts from at least wasmMinDataAddr.
+            // Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr.
+            const wasmMinDataAddr = 4096 + 4096;
+            if (offset >= wasmMinDataAddr) {
+                throw new Error("command line too long");
+            }
+
             this._inst.exports.run(argc, argv);
             if (this.exited) {
                 this._resolveExitPromise();

今回の脆弱性に絡む部分のチェックを追加しただけか。簡単でよかったね。一応,本家ブログ記事にも追記しておいた。

https://text.baldanders.info/release/2021/10/go-1_17_2-is-released/
ログインするとコメントできます