FreeRDP is a free implementation of the Remote Desktop Protocol. ainput_send_input_event caches channel_callback in a local variable and later uses it without synchronization; a concurrent channel close can free or reinitialize the callback, leading to a use after free. Prior to 3.22.0, This vulnerability is fixed in 3.22.0.
FreeRDP versions prior to 3.22.0 contain a use-after-free vulnerability in ainput_send_input_event where cached channel_callback is accessed without synchronization, allowing concurrent channel closure to cause memory corruption. This vulnerability could enable remote code execution or denial of service through specially crafted RDP connections.
تؤثر هذه الثغرة على مكتبة FreeRDP المستخدمة على نطاق واسع لتطبيقات بروتوكول سطح المكتب البعيد. الثغرة تنشأ من عدم وجود مزامنة مناسبة عند الوصول إلى متغير معاد استخدامه، مما يسمح بحالات تنافس خطيرة. يمكن للمهاجمين استغلال هذا من خلال إنشاء اتصالات RDP متزامنة متعددة لتحرير الذاكرة أو إعادة تهيئتها.
إصدارات FreeRDP السابقة للإصدار 3.22.0 تحتوي على ثغرة استخدام الذاكرة بعد تحريرها في دالة ainput_send_input_event حيث يتم الوصول إلى channel_callback المخزن مؤقتاً بدون مزامنة. يمكن لإغلاق القناة المتزامن أن يسبب تلف الذاكرة مما قد يؤدي إلى تنفيذ كود بعيد أو رفض الخدمة.
Update FreeRDP to version 3.22.0 or later immediately. For organizations unable to update immediately, restrict RDP access through network segmentation, implement strict firewall rules limiting RDP connections to trusted sources only, disable RDP if not required, and monitor for suspicious RDP connection attempts and channel manipulation patterns.
قم بتحديث FreeRDP إلى الإصدار 3.22.0 أو أحدث فوراً. للمنظمات غير القادرة على التحديث فوراً، قيد الوصول إلى RDP من خلال تقسيم الشبكة، طبق قواعد جدار حماية صارمة تحد من اتصالات RDP إلى مصادر موثوقة فقط، عطل RDP إذا لم يكن مطلوباً، وراقب محاولات اتصال RDP المريبة وأنماط معالجة القنوات.