Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-4323 — ثغرة حرجة في تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في وظيفتي handle_trace_request و parse_trace_request لخادم HTTP الخاص بـ Fluent Bit. | Kitploit
أدوات/GitHubGitHub/d0rb/cve-2024-4323
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن الويباستغلال الملفات الثنائية
GitHubd0rb/cve-2024-4323

CVE-2024-4323

ثغرة حرجة في تجاوز سعة المخزن المؤقت في الكومة (heap buffer overflow) في وظيفتي handle_trace_request و parse_trace_request لخادم HTTP الخاص بـ Fluent Bit.

عرض المستودع
1منذ 2 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Profile Visitors

🇮🇱 #BringThemHome #NeverAgainIsNow 🇮🇱

نطالب بعودة جميع المواطنين الذين تم أخذهم كرهائن من قبل الجماعة الإرهابية حماس. لن نرتاح حتى يتم إطلاق سراح كل رهينة ويعود إلى منزله بأمان. يمكنك المساعدة في إعادتهم إلى الوطن. https://stories.bringthemhomenow.net/

CVE-2024-4323

نظرة عامة

تم تحديد الوظيفتين handle_trace_request و parse_trace_request في تطبيق خادم HTTP لـ Fluent Bit كمصدر لثغرة خطيرة، CVE-2024-4323. تنشأ هذه الثغرة بسبب عدم كفاية فحص الحدود والتحقق من الإدخال، مما يؤدي إلى فيضان محتمل في المخزن المؤقت في الكومة. يسلط هذا الاستعراض الضوء على طبيعة الثغرة، وتأثيرها المحتمل، والخطوات اللازمة للتخفيف من حدتها.

تفاصيل الوظيفة

وظيفة handle_trace_request

تعالج هذه الوظيفة طلبات التتبع HTTP الواردة، وتقوم بتخصيص المخزن المؤقت ونسخ بيانات الطلب.

الكود الثغري:

root@kitploit:~
static int handle_trace_request(struct flb_hs *hs, struct mk_http_session *session, struct mk_http_request *request)
{
    char *buffer;
    size_t size;
    int ret;
    flb_sds_t input_name;

    input_name = get_input_name(request);
    if (input_name == NULL) {
        return -1;
    }

    size = request->data.len;
    buffer = malloc(size);
    if (!buffer) {
        flb_sds_destroy(input_name);
        return -1;
    }

    memcpy(buffer, request->data.data, size);
    ret = parse_trace_request(buffer, size, request);

    free(buffer);
    flb_sds_destroy(input_name);

    return ret;
}

وظيفة parse_trace_request

تقوم هذه الوظيفة بتحليل البيانات من طلب التتبع.

الكود الثغري:

root@kitploit:~
void parse_trace_request(char *buffer, size_t size, struct mk_http_request *request)
{
    if (size > MAX_SIZE) {
        // Handle error
        return;
    }

    // Parsing logic
}

المشكلات المحددة

root@kitploit:~
*   **فيضان المخزن المؤقت في الكومة:**
    *   **تخصيص المخزن المؤقت ونسخه:** تستخدم وظيفة `handle_trace_request` مباشرةً حجم بيانات الطلب الواردة لتخصيص مخزن مؤقت ونسخ البيانات دون التحقق المناسب. يمكن أن يؤدي ذلك إلى فيضان في المخزن المؤقت في الكومة إذا تجاوز الحجم الذاكرة المخصصة.
    *   **نقص فحص الحدود:** تقوم وظيفة `parse_trace_request` بفحص حجم بدائي ولكنها لا تضمن أن حجم المخزن المؤقت ضمن الحدود الآمنة قبل التحليل.
*   **التحقق من الإدخال:**
    *   **التحقق غير الكافي من الإدخال:** لا تتحقق الوظائف بشكل كافٍ من بيانات الطلب الواردة، مما يجعلها عرضة للأحمال الضارة المصممة لاستغلال فيضان المخزن المؤقت.

التأثير المحتمل

root@kitploit:~
*   **حرمان الخدمة (DoS):** يمكن للمهاجم صياغة طلب يتسبب في تعطل التطبيق عن طريق إغراق المخزن المؤقت في الكومة، مما يؤدي إلى حرمان الخدمة.
*   **تنفيذ التعليمات البرمجية عن بُعد (RCE):** في أسوأ الحالات، يمكن للمهاجم استغلال الفيضان لتنفيذ تعليمات برمجية عشوائية على الخادم، مما قد يؤدي إلى السيطرة على النظام.

التخفيف

الإصلاح المقترح

يقدم التصحيح التالي فحص الحدود والتحقق من الإدخال للتخفيف من الثغرة:

root@kitploit:~
#define MAX_ALLOWED_SIZE 1024 * 1024  // Define a reasonable maximum size

static int handle_trace_request(struct flb_hs *hs, struct mk_http_session *session, struct mk_http_request *request)
{
    char *buffer;
    size_t size;
    int ret;
    flb_sds_t input_name;

    input_name = get_input_name(request);
    if (input_name == NULL) {
        return -1;
    }

    size = request->data.len;
    if (size > MAX_ALLOWED_SIZE) {
        // Log error and return
        flb_sds_destroy(input_name);
        return -1;
    }

    buffer = malloc(size);
    if (!buffer) {
        flb_sds_destroy(input_name);
        return -1;
    }

    memcpy(buffer, request->data.data, size);
    ret = parse_trace_request(buffer, size, request);

    free(buffer);
    flb_sds_destroy(input_name);

    return ret;
}

void parse_trace_request(char *buffer, size_t size, struct mk_http_request *request)
{
    if (size > MAX_ALLOWED_SIZE) {
        // Handle error
        return;
    }

    // Parsing logic
    // ...
}

التحسينات الرئيسية

root@kitploit:~
*   **فحص الحدود:** تمت إضافة فحص للتأكد من أن حجم البيانات الواردة لا يتجاوز الحد الأقصى المسموح به المحدد قبل تخصيص المخزن المؤقت.
*   **التحقق من الإدخال:** تم ضمان التحقق من بيانات الإدخال لمنع الطلبات كبيرة الحجم أو المشوهة من التسبب في فيضان المخزن المؤقت.

الخاتمة

الثغرة في الوظيفتين handle_trace_request و parse_trace_request هي مشكلة خطيرة يمكن أن تؤدي إلى مخاطر أمنية شديدة، بما في ذلك حرمان الخدمة وتنفيذ التعليمات البرمجية عن بُعد. يخفف التصحيح المقترح بشكل فعال من هذه المخاطر من خلال إدخال فحص قوي للحدود والتحقق من الإدخال. من الضروري تطبيق هذا التصحيح على الفور وإجراء عمليات تدقيق منتظمة للكود لضمان أمان وسلامة تطبيق Fluent Bit.

تنزيل الأداة