Golioth Firmware SDK version 0.19.1 prior to 0.22.0, fixed in commit 0e788217, contain an out-of-bounds read due to improper null termination of a blockwise transfer path. blockwise_transfer_init() accepts a path whose length equals CONFIG_GOLIOTH_COAP_MAX_PATH_LEN and copies it using strncpy() without guaranteeing a trailing NUL byte, leaving ctx->path unterminated. A later strlen() on this buffer (in golioth_coap_client_get_internal()) can read past the end of the allocation, resulting in a crash/denial of service. The input is application-controlled (not network by default).
Golioth Firmware SDK versions prior to 0.22.0 contain an out-of-bounds read vulnerability in blockwise transfer path handling due to improper null termination. This can lead to denial of service through application-controlled input causing buffer over-read and crashes.
تحتوي نسخة SDK من Golioth على خلل في دالة blockwise_transfer_init() حيث تنسخ المسار باستخدام strncpy() دون ضمان إنهاء بـ NUL، مما يترك ctx->path بدون إنهاء صحيح. عند استدعاء strlen() لاحقاً على هذا المخزن المؤقت، يمكن قراءة البيانات خارج حدود التخصيص مما يسبب تعطل التطبيق.
مجموعة أدوات Golioth Firmware SDK الإصدارات السابقة للإصدار 0.22.0 تحتوي على ثغرة قراءة خارج الحدود في معالجة مسار النقل الكتلي بسبب عدم إنهاء فعال بـ null. يمكن أن يؤدي هذا إلى رفض الخدمة من خلال مدخلات يتحكم بها التطبيق مما يسبب تجاوز المخزن المؤقت والأعطال.
Update Golioth Firmware SDK to version 0.22.0 or later, or apply commit 0e788217. Ensure proper null termination of path buffers and validate path length before processing. Implement bounds checking on all string operations handling user-controlled input.
قم بتحديث مجموعة أدوات Golioth Firmware SDK إلى الإصدار 0.22.0 أو أحدث، أو طبق الالتزام 0e788217. تأكد من إنهاء المسار بـ null بشكل صحيح والتحقق من طول المسار قبل المعالجة. طبق فحص الحدود على جميع عمليات السلسلة التي تتعامل مع المدخلات التي يتحكم بها المستخدم.