The main function in tools/wasm2js.cpp in Binaryen 1.38.22 has a heap-based buffer overflow because Emscripten is misused, triggering an error in cashew::JSPrinter::printAst() in emscripten-optimizer/simple_ast.h. A crafted input can cause segmentation faults, leading to denial-of-service, as demonstrated by wasm2js.
{ "vanir_signatures": [ { "signature_type": "Line", "target": { "file": "src/tools/wasm-emscripten-finalize.cpp" }, "digest": { "line_hashes": [ "22616790360282577033674605180077833219", "191972970298653173444158597266287009694", "14821571429962120343001262233210576335", "151191529705392329886293484142824340752", "185122690502798721846121553612976097687", "53197629183357289701089927573176392278", "324194258621610357039876706449906529187", "288962724844564451928959159070423739797", "119541822130047711562403959423585453020", "196957992580538602360349810475843857508", "266074370991696475216603390399545124213" ], "threshold": 0.9 }, "source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d", "deprecated": false, "id": "CVE-2019-7154-309327dc", "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "AsmConstWalker::visitCall", "file": "src/wasm/wasm-emscripten.cpp" }, "digest": { "length": 466.0, "function_hash": "114506349049517890130313607795175520772" }, "source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d", "deprecated": false, "id": "CVE-2019-7154-5c11ab82", "signature_version": "v1" }, { "signature_type": "Function", "target": { "function": "main", "file": "src/tools/wasm-emscripten-finalize.cpp" }, "digest": { "length": 5871.0, "function_hash": "138423354102750047574691565677008332270" }, "source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d", "deprecated": false, "id": "CVE-2019-7154-8fb37496", "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "src/wasm/wasm-emscripten.cpp" }, "digest": { "line_hashes": [ "315711385697882142515874801209616814643", "296156224043627193328400495169611395702", "77499482424643067126151120578878875266", "274324235565113840226923181117945430074", "90088919803854712328793541726553905294", "239511132063355793396937242033905988083", "37757062407568417218192717800299663089", "99495896202181285171447783518041064724", "39719218561181330581269317214892922476", "130840213018713389535742735768989788570", "59454224216472073359920052981429413417", "81681221918972354805958228841923233931", "61967027930462198887128716957949142642", "16540623721121067462332746169520368488", "89218691273730261051480484430257932328", "80088878758691338675558368774357100149", "36203083223426206760729530190185201362", "214050444586084780357169729595550129855", "41674973558809398479455871761264659042", "189369635161906183679516518282489184360", "143351518440347716055171766304302159734", "41776136258577880614344662206580082890", "50217705517904600268041040273596962622", "193172374485864913901209068670512605948", "184066918667677860940062195156789695990", "87407311439441835597684821978109907569", "135947261108190545169005646228083740563", "96562869205760499504990143647018032837", "184528604685741297685066204159611654836", "296700476545690631986867236150304976384", "169728093976989309268302028951847201368", "291789020970159672831707353184537475750", "170228873566876733807541136341936756863", "332714337655117707011562848579240136886", "266592970334377096938786646358898995910", "244907938788025967984980323528724878551" ], "threshold": 0.9 }, "source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d", "deprecated": false, "id": "CVE-2019-7154-a1e1d720", "signature_version": "v1" } ] }