An issue was discovered in Mongoose before 6.15. The parsemqtt() function in mgmqtt.c has a critical heap-based buffer overflow.
[
{
"id": "CVE-2019-12951-02b35968",
"target": {
"file": "src/mg_mqtt.c",
"function": "parse_mqtt"
},
"signature_version": "v1",
"digest": {
"length": 3484.0,
"function_hash": "198169568359688866823416702201207463449"
},
"source": "https://github.com/cesanta/mongoose/commit/b3e0f780c34cea88f057a62213c012aa88fe2deb",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2019-12951-a154c9ac",
"target": {
"file": "mongoose.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"318451959179559600212943761384714751553",
"203506875419145949752113475847773794541",
"300124475507211204145507290533671466820",
"99989783270940607929970042812623215153",
"113964899949487998914705191903055108661",
"220909073243904259200325940333054122391",
"181963326070752889268247635560144729332",
"194616825067426885033132069526593454473",
"32297059813226418094209480233904743941",
"158743914063726245224935765878676000180",
"242058701329965836886413194556142218028",
"202685874918949681063835384083901977148",
"298896519032976953735511227272721233568",
"234203154594107864103826915773165607850",
"156914595055367849120805501920246572284",
"316546846396089965587538649279488520373",
"115818615017429595644330698564950237276",
"212090324586127216818259759998632085017",
"280321884277974389504920536560302828502"
]
},
"source": "https://github.com/cesanta/mongoose/commit/b3e0f780c34cea88f057a62213c012aa88fe2deb",
"deprecated": false,
"signature_type": "Line"
},
{
"id": "CVE-2019-12951-b0b505de",
"target": {
"file": "mongoose.c",
"function": "parse_mqtt"
},
"signature_version": "v1",
"digest": {
"length": 3484.0,
"function_hash": "198169568359688866823416702201207463449"
},
"source": "https://github.com/cesanta/mongoose/commit/b3e0f780c34cea88f057a62213c012aa88fe2deb",
"deprecated": false,
"signature_type": "Function"
},
{
"id": "CVE-2019-12951-b1da9acb",
"target": {
"file": "src/mg_mqtt.c"
},
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"318451959179559600212943761384714751553",
"203506875419145949752113475847773794541",
"300124475507211204145507290533671466820",
"99989783270940607929970042812623215153",
"113964899949487998914705191903055108661",
"220909073243904259200325940333054122391",
"181963326070752889268247635560144729332",
"194616825067426885033132069526593454473",
"32297059813226418094209480233904743941",
"158743914063726245224935765878676000180",
"242058701329965836886413194556142218028",
"202685874918949681063835384083901977148",
"298896519032976953735511227272721233568",
"234203154594107864103826915773165607850",
"156914595055367849120805501920246572284",
"316546846396089965587538649279488520373",
"115818615017429595644330698564950237276",
"212090324586127216818259759998632085017",
"280321884277974389504920536560302828502"
]
},
"source": "https://github.com/cesanta/mongoose/commit/b3e0f780c34cea88f057a62213c012aa88fe2deb",
"deprecated": false,
"signature_type": "Line"
}
]