Alexcrichton

#2865من 60,587
100.2إجمالي CVSS
الثغرات · 14
منخفضة
1
متوسطة
6
عالية
5
حرجة
2
PT-2025-41158
2025-10-07
3.3
CVE-2025-61670
Bytecode Alliance
Wasmtime
يحتوي Wasmtime، وهو بيئة تشغيل لـ WebAssembly، على تسربات في الذاكرة في واجهة برمجة التطبيقات (API) الخاصة بلغة C/C++ عند استخدام روابط (bindings) لقيم WebAssembly من نوع `anyref` أو `externref`. تنجم هذه المشكلة عن تراجع تم إدخاله أثناء تطوير الإصدار 37.0.0، وهو مرتبط بشكل خاص بإعادة هيكلة `ManuallyRooted<T>` إلى `OwnedRooted<T>` في لغة Rust. لم يتم تحديث واجهات برمجة التطبيقات (API) لـ C و C++ بالكامل لتعكس الدلالات الجديدة للملكية في `OwnedRooted<T>`، مما أدى إلى حدوث تسربات في الذاكرة. وعلى وجه التحديد، أدى خطأ في الكتابة في الدالة `wasmtime val unroot` إلى منع إزالة الجذر بشكل صحيح، ولم تتم إزالة الجذور أبدًا من الدوال المُعرَّفة من قِبل المضيف التي تُرجع قيم `wasmtime {externref,anyref} t`. كانت واجهة برمجة التطبيقات (API) لـ C++ تفتقر إلى دالات التدمير في الأنواع ذات الصلة، مما ساهم بشكل أكبر في تفاقم المشكلة. تحدث حالات تسرب الذاكرة هذه عند استخدام `anyref` أو `externref` في واجهة برمجة التطبيقات (API) لـ C/C++، ولا يتأثر كريت Rust `wasmtime` بذلك.