Golioth Firmware SDK version 0.10.0 prior to 0.22.0, fixed in commit 48f521b, contain a stack-based buffer overflow in Payload Utils. The golioth_payload_as_int() and golioth_payload_as_float() helpers copy network-supplied payload data into fixed-size stack buffers using memcpy() with a length derived from payload_size. The only length checks are guarded by assert(); in release builds, the asserts are compiled out and memcpy() may copy an unbounded payload_size. Payloads larger than 12 bytes (int) or 32 bytes (float) can overflow the stack, resulting in a crash/denial of service. This is reachable via LightDB State on_payload with a malicious server or MITM.
Golioth Firmware SDK versions 0.10.0 to 0.22.0 contain a stack-based buffer overflow in payload utility functions that can be exploited via network-supplied data to cause denial of service. The vulnerability exists because length validation relies on assert() statements that are disabled in release builds, allowing unbounded memcpy() operations.
تحتوي مجموعة Golioth Firmware SDK على ثغرة فيضان ذاكرة مكدس في وظائف golioth_payload_as_int() و golioth_payload_as_float() التي تنسخ بيانات البيانات المزودة من الشبكة إلى مخازن مؤقتة بحجم ثابت. يمكن استغلال هذه الثغرة عبر خادم ضار أو هجوم man-in-the-middle لإحداث انهيار التطبيق ورفض الخدمة. الثغرة موجودة في الإصدارات من 0.10.0 إلى 0.22.0 وتم إصلاحها في الإصدار 0.22.0.
مجموعة أدوات Golioth Firmware SDK من الإصدار 0.10.0 إلى 0.22.0 تحتوي على فيضان ذاكرة مكدس في وظائف معالجة البيانات يمكن استغلاله عبر البيانات المزودة من الشبكة لإحداث رفض الخدمة. يوجد الثغرة لأن التحقق من الطول يعتمد على عبارات assert() التي يتم تعطيلها في الإصدارات الإنتاجية.
Upgrade Golioth Firmware SDK to version 0.22.0 or later, or apply commit 48f521b. Implement proper input validation and length checks that are enforced in both debug and release builds. Replace assert()-based validation with runtime checks. Implement network segmentation to restrict untrusted server connections.
قم بترقية مجموعة Golioth Firmware SDK إلى الإصدار 0.22.0 أو أحدث، أو طبق التصحيح 48f521b. قم بتنفيذ التحقق الصحيح من المدخلات والتحقق من الطول المفروض في كل من إصدارات التصحيح والإنتاج. استبدل التحقق القائم على assert() بفحوصات وقت التشغيل. قم بتنفيذ تقسيم الشبكة لتقييد الاتصالات بالخوادم غير الموثوقة.