A stack-based buffer overflow vulnerability exists in the MFER parsing functionality of The Biosig Project libbiosig 3.9.0 and Master Branch (35a819fa). A specially crafted MFER file can lead to arbitrary code execution. An attacker can provide a malicious file to trigger this vulnerability.This vulnerability manifests on line 8842 of biosig.c on the current master branch (35a819fa), when the Tag is 12: else if (tag==12) //0x0C { // sampling resolution if (len>6) fprintf(stderr,"Warning MFER tag12 incorrect length %i>6\n",len); val32 = 0; int8_t v8; curPos += ifread(&UnitCode,1,1,hdr); curPos += ifread(&v8,1,1,hdr); curPos += ifread(buf,1,len-2,hdr); In addition to values of len greater than 130 triggering a buffer overflow, a value of len smaller than 2 will also trigger a buffer overflow due to an integer underflow when computing len-2 in this code path.
{
"binaries": [
{
"binary_name": "biosig-tools",
"binary_version": "2.3.3-1build2"
},
{
"binary_name": "libbiosig3",
"binary_version": "2.3.3-1build2"
},
{
"binary_name": "octave-biosig",
"binary_version": "2.3.3-1build2"
},
{
"binary_name": "python3-biosig",
"binary_version": "2.3.3-1build2"
}
]
}
{
"binaries": [
{
"binary_name": "biosig-tools",
"binary_version": "2.6.0-1ubuntu1"
},
{
"binary_name": "libbiosig3",
"binary_version": "2.6.0-1ubuntu1"
},
{
"binary_name": "octave-biosig",
"binary_version": "2.6.0-1ubuntu1"
},
{
"binary_name": "python3-biosig",
"binary_version": "2.6.0-1ubuntu1"
}
]
}