emscripten-core / emscripten-core/emscripten
PostMessage triggers false security alert
- Dominant language
- C++
- Stars
- 27.6k
- Forks
- 3.6k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 105
Description
This scanning tool:
https://www.hcl-software.com/appscan/products/appscan-standard
flags an error on this line:
https://github.com/emscripten-core/emscripten/blob/main/src/library_eventloop.js#L368
because PostMessage() is passing "*" as the second parameter.
As far as I can tell, that PostMessage turns into parentPort.postMessage() for which the
second parameter would be objects to transfer, so "*" would not apply.
This seems to be a harmless error that could be easily removed, so as to not trigger
AppScan or other scanning tools.
Here is the finding from AppScan:
Reasoning: AppScan found a postMessage() function that uses the wildcard * for the target domain[s] parameter
```
...
setImmediates.shift()();
}
};
addEventListener("message", Browser_setImmediate_messageHandler, true);
Browser.setImmediate = /** @type{function(function(): ?, ...?): number} */ (function
Browser_emulated_setImmediate(func) {
setImmediates.push(func);
if (ENVIRONMENT_IS_WORKER) {
if (Module["setImmediates"] === undefined) Module["setImmediates"] = [];
Module["setImmediates"].push(func);
postMessage({
target: emscriptenMainLoopMessageId
});
} else postMessage(emscriptenMainLoopMessageId, "*");
});
} else {
Browser.setImmediate = setImmediate;
} }
Browser.mainLoop.scheduler = function Browser_mainLoop_scheduler_setImmediate() {
Browser.setImmediate(Browser.mainLoop.runner);
};
Browser.mainLoop.method = "immediate";
...
```
There's another instance here:
https://github.com/emscripten-core/emscripten/blob/main/src/library_eventloop.js#L76
that didn't trigger the scan, but could.
Contributor guide
Assessment
This issue has not been assessed yet.