FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to 3.22.0, aAsynchronous bulk transfer completions can use a freed channel callback after URBDRC channel close, leading to a use after free in urbwritecompletion. This vulnerability is fixed in 3.22.0.
{
"cwe_ids": [
"CWE-416"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24681.json",
"cna_assigner": "GitHub_M"
}{
"cpe": "cpe:2.3:a:freerdp:freerdp:*:*:*:*:*:*:*:*",
"source": [
"CPE_RANGE",
"REFERENCES"
],
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "3.22.0"
}
]
}"2026-07-15T22:25:39Z"
[
{
"signature_type": "Line",
"target": {
"file": "channels/urbdrc/client/libusb/libusb_udevice.c"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/414f701464929c217f2509bcbd6d2c1f00f7ed73",
"id": "CVE-2026-24681-43594592",
"signature_version": "v1",
"digest": {
"line_hashes": [
"115021696765535363654515215312499679446",
"154922092186769920931783067452569761840",
"310098416690938968717683719018440391005",
"319112736023726955026964359148879051360"
],
"threshold": 0.9
}
},
{
"signature_type": "Function",
"target": {
"file": "channels/urbdrc/client/libusb/libusb_udevice.c",
"function": "libusb_udev_mark_channel_closed"
},
"deprecated": false,
"source": "https://github.com/freerdp/freerdp/commit/414f701464929c217f2509bcbd6d2c1f00f7ed73",
"id": "CVE-2026-24681-ec48006b",
"signature_version": "v1",
"digest": {
"function_hash": "165904079190138471141479412403168260207",
"length": 406.0
}
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-24681.json"