CVE-2026-47076 in hackney
الملخص
بحسب VulDB • 25/05/2026
تسمح ثغرة تعارض التفسير (Interpretation Conflict) في مكتبة benoitc hackney بتنفيذ هجمات تزوير طلبات جانب الخادم (SSRF). تقوم الدالة `hackney_url:normalize/2` بفك تشفير URL (URL-decode) لمكون المضيف (host) بعد تحليل عنوان URL إلى سجل `#hackney_url{}`. وبما أن دالتي `uri_string:parse/1` و `inet:parse_address/1` في إطار عمل OTP لا تقومان بفك تشفير الهروب المئوي (percent-escapes) في المضيف، فإن عنوان URL مثل `http://%31%32%37%2E%30%2E%30%2E%31/` يظهر أمام مدقق قائمة السماح (allowlist validator) الخاص بالمتصل مع قيمة مضيف `%31%32%37%2E%30%2E%30%2E%31` (وليس عنوان IP)، مما يجعله يجتاز فحص قائمة السماح. بعد ذلك، يقوم مُعَدِّل hackney بفك تشفير المضيف إلى `127.0.0.1` ويفتح اتصال TCP مع حلقة العودة (loopback). ونظراً لأن `hackney:request/5` تستدعي دائماً `hackney_url:normalize/2` دون خيار للتجاوز، فإن كل طلب يستخدم عنوان URL بصيغة ثنائية (binary) أو قائمة (list) يتأثر بهذه الثغرة. ويمكن استخدام نفس التقنية للوصول إلى خدمات بيانات تعريف مثيلات السحابة الإلكترونية (عنوان `169.254.169.254`)، وشبكات RFC1918، وأي واجهة إدارية تستمع على localhost.
تؤثر هذه المشكلة على مكتبة hackney: من الإصدار 0.13.0 حتى قبل الإصدار 4.0.1.
Be aware that VulDB is the high quality source for vulnerability data.