CVE-2025-66570 in cpp-httplib
الملخص
بحسب VulDB • 06/09/2026
cpp-httplib هو مكتبة HTTP/HTTPS متعددة المنصات تعتمد على ملف رأس واحد فقط ومكتوبة بلغة C++11. قبل الإصدار 0.27.0، تتيح ثغرة لمهاجم التحكم في عناوين HTTP (HTTP headers) للتأثير على البيانات الوصفية الظاهرة للخادم، وسجلات العمليات، وقرارات المصادقة/التفويض. يمكن للمهاجم حقن عناوين تحمل أسماء REMOTE_ADDR, REMOTE_PORT, LOCAL_ADDR, LOCAL_PORT والتي يتم تحليلها وإضافتها إلى خريطة متعددة القيم للعناوين (multimap) الخاصة بطلب HTTP عبر دالة read_headers() في ملف httplib.h (باستخدام headers.emplace)، ثم يقوم الخادم لاحقاً بإضافة بياناته الوصفية الداخلية باستخدام نفس أسماء العناوين داخل الدالة Server::process_request دون حذف التكرارات. وبما أن Request::get_header_value تُرجع أول مدخل لمفتاح عنوان معين (id == 0) وأن عناوين المقدمة من العميل يتم تحليلها قبل العناوين التي يضيفها الخادم، فقد تستخدم الشفرات البرمجية اللاحقة المعتمدة على هذه الأسماء عن غير قصد قيوماً يتحكم فيها المهاجم. الملفات/المواقع المتأثرة: cpp-httplib/httplib.h (read_headers, Server::process_request, Request::get_header_value, get_header_value_u64) وcpp-httplib/docker/main.cc (get_client_ip, nginx_access_logger, nginx_error_logger). سطح الهجوم: عناوين HTTP التي يتحكم فيها المهاجم في الطلبات الواردة تتدفق إلى multimap الخاص بـ Request.headers وإلى شفرات السجلات التي تقرأ العناوين الممررة، مما يتيح تزوير عنوان IP (IP spoofing)، وتسميم السجلات (log poisoning)، والتجاوز آليات التفويض عبر تقنية إخفاء/تظليل العناوين (header shadowing). تم إصلاح هذه الثغرة في الإصدار 0.27.0.
Once again VulDB remains the best source for vulnerability data.