FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.24.0, division by zero in MS-ADPCM and IMA-ADPCM decoders when nBlockAlign is 0, leading to a crash. In libfreerdp/codec/dsp.c, both ADPCM decoders use size % block_size where block_size = context->common.format.nBlockAlign. The nBlockAlign value comes from the Server Audio Formats PDU on the RDPSND channel. The value 0 is not validated anywhere before reaching the decoder. When nBlockAlign = 0, the modulo operation causes a SIGFPE (floating point exception) crash. This vulnerability is fixed in 3.24.0.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-369"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31884.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.24.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "03b48b3601d867afccac1cdc6081de7a275edce7"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "16df2300e1e3f5a51f68fb1626429e58b531b7c8"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31884.json"
[
{
"deprecated": false,
"digest": {
"line_hashes": [
"131066561843354495178151874733639007424",
"67950466556312886147432865143831748992",
"258058590774085504450479845526466489486",
"76624106550431597786069072612047208730",
"168356016362427213364312842500026614106",
"181818710675053873824473667922285537775",
"108391432888781123634031196167080135431",
"165218486659140697090698700239600599981",
"308798407444057328516497203810411613262",
"171637704598313146639302100525174668966",
"185274289170342642091364036981544170156",
"314151997804681838837963758347121067736",
"125045716457481628766622565525638848579",
"85420496564378944755929510778639857689",
"328961870347177906453085544735465824723",
"133943567847030144904971901874937009304",
"15486988161946123751082563128156491282",
"70761640908129304171176065535742490464",
"270309378594372044685979196509714169946",
"48319175860930188341483567784756572558",
"119208567003100408559297420711348887619",
"308221831362593514748770348979795814221",
"44573593799800443449098205487509997680",
"268622573234813463613809645002896806097",
"128167897846635981070816141771684342918",
"187726308642281497517488626208629857823",
"221211051965250177119340106152770546204",
"61447899959414035471725160491372079613",
"85245175222979795524224458980397116062",
"98458464680326471791906282528132780941",
"99519771385214962985353710179161647686",
"101264581200401488138603408760488975425",
"306438772146128690638482031307328134975",
"97756899457132113057715039816498977133",
"1262995767693549212554302238141987501",
"233624093219492352017727783934386198181",
"114408124821172390998025852728062156640",
"237011274959795055646636115970659372827",
"282272389938196310945906294735489978086",
"187298458783290243374513693900229070369",
"296805384504080105163667573970319707083",
"308620003209948859581820685822421439300",
"7689798992573416741245294420490952506",
"325112600349686503057746635048004481159",
"142604493929640819970781194463224762943",
"157006610100128538771112229688803366653",
"91037570296931285134242993465454486641",
"174139609452934687515569831697778552923",
"231716819501491730549578892822175344408",
"328153110276539474043809502507324149308",
"232721502513118291969961451148861822020",
"227173993065181462947872379572589619234",
"316059832047227374518521178987037688780",
"167891499926448206652161581741296139511",
"286880710370038134078160876588507925813",
"195549371008612533478131486292491098968",
"108127996797551820063898137297330811744",
"264614000905033497899421535949000683878",
"117575252970437810641592215369928933851",
"273009366035335216940792331464758108833",
"195049579868113339906247877495401012401",
"7454282809092540335852215329491908782",
"69747602149259590387895271460948690513",
"118434830195517002697624163302932488489",
"196193814070891237568285535078197822403",
"175169876336692766239872463666319589527",
"225152836784413929571462418894092466947",
"328594796304974117603047556951547827792",
"114911771645285420057526440334990468705",
"111681867377884429877353326393580316141",
"307658736329980876219478099976521329807",
"304829084642952867993764782782307803311",
"174769607398896482291013084690103855868",
"167764914676727664497031404523850160317",
"338711704942870438624943233705905838079",
"338755664122979209303346686023230216258",
"45086985700125158395276122319220027611",
"307914753950671721098245221659585319905",
"44112382619556457023442975092347272654",
"55010312711865762226707650548087662851",
"311269524825019497042634827296288772070",
"139665204344472556372927004520431252296",
"142602897281246214655971529761712181191",
"292686114033386712578311259311081700520",
"171506035374152540035789858833443679552",
"269113415862572252344772432780776733718",
"264388321561285212307600398667409953804",
"252724723376348559116664603909685688456",
"76883934410831469314819456102110812262",
"165765398302148725643523363026569503211",
"96781523389391576066793556242098158388",
"68753671980567674635647712687261991454"
],
"threshold": 0.9
},
"id": "CVE-2026-31884-bbaa1dab",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/freerdp/freerdp/commit/03b48b3601d867afccac1cdc6081de7a275edce7",
"target": {
"file": "libfreerdp/codec/dsp.c"
}
}
]
"2026-10-21T09:52:44Z"