A heap-based buffer over-read was discovered in wasm::WasmBinaryBuilder::processFunctions() in wasm/wasm-binary.cpp (when calling wasm::WasmBinaryBuilder::getFunctionIndexName) in Binaryen 1.38.22. A crafted input can cause segmentation faults, leading to denial-of-service, as demonstrated by wasm-opt.
[
{
"id": "CVE-2019-7152-309327dc",
"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
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d",
"signature_type": "Line"
},
{
"id": "CVE-2019-7152-5c11ab82",
"target": {
"function": "AsmConstWalker::visitCall",
"file": "src/wasm/wasm-emscripten.cpp"
},
"digest": {
"length": 466.0,
"function_hash": "114506349049517890130313607795175520772"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d",
"signature_type": "Function"
},
{
"id": "CVE-2019-7152-8fb37496",
"target": {
"function": "main",
"file": "src/tools/wasm-emscripten-finalize.cpp"
},
"digest": {
"length": 5871.0,
"function_hash": "138423354102750047574691565677008332270"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d",
"signature_type": "Function"
},
{
"id": "CVE-2019-7152-a1e1d720",
"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
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/webassembly/binaryen/commit/153ba18ba99dc4dcef29a61e1e586af3df8d921d",
"signature_type": "Line"
}
]