Allocation of Resources Without Limits or Throttling vulnerability in benoitc hackney allows Flooding. The URL parser in src/hackney_url.erl converts every unrecognized URL scheme to a permanent BEAM atom via binary_to_atom/2. BEAM atoms are never garbage-collected and the atom table defaults to a hard limit of 1,048,576 entries. An attacker who can supply URLs with attacker-chosen scheme prefixes — directly as request targets, as configured webhook URLs, or via Location headers followed during redirects — can exhaust the atom table and crash the entire BEAM VM with system_limit.
This issue affects hackney: from 2.0.0 before 4.0.1.
CVE-2026-47067 is a denial-of-service vulnerability in the Erlang hackney HTTP client library where unrecognized URL schemes are converted to permanent BEAM atoms without limits, allowing attackers to exhaust the atom table and crash the entire virtual machine. Organizations using hackney versions 2.0.0 through 4.0.0 are vulnerable to resource exhaustion attacks via crafted URLs in requests, webhooks, or redirect chains.
ثغرة تخصيص الموارد بدون حدود في مكتبة hackney تسمح بهجمات حجب الخدمة من خلال استنزاف جدول ذرات BEAM الدائم. يمكن للمهاجمين استخدام عناوين URL بمخططات مخصصة في الطلبات المباشرة أو عناوين URL الخطافات أو رؤوس إعادة التوجيه لإجبار تحويل غير محدود إلى ذرات دائمة.
This vulnerability affects Erlang-based applications using hackney library versions 2.0.0 to 4.0.0, enabling attackers to crash services through malicious URL schemes that exhaust system resources without proper throttling or limits.
Upgrade hackney library to version 4.0.1 or later immediately. Implement URL validation and sanitization to reject requests with suspicious or non-standard URL schemes before processing. Deploy rate limiting and request filtering at the application and network perimeter levels. Monitor BEAM VM atom table usage and implement alerting for unusual growth patterns.
قم بترقية مكتبة hackney إلى الإصدار 4.0.1 أو أحدث فوراً. طبق التحقق من صحة عناوين URL ورفض الطلبات ذات المخططات غير القياسية قبل المعالجة. نفذ تحديد معدل الطلبات والتصفية على مستوى التطبيق والشبكة. راقب استخدام جدول الذرات وطبق التنبيهات للنمو غير الطبيعي.