TGViewer
World Of Security World Of Security @world_of_security · 5.44K subscribers
Post #1534 3.16K
🔍 تحلیل یک باگ جالب در Node.js و llhttp
در این آسیب‌پذیری، مهاجم هدر زیر را همراه با یک درخواست جعلی ارسال می‌کند:
Connection: close<TAB>

منظور از <TAB> یک کاراکتر تب واقعی بعد از کلمه close است.
معماری معمول هدف:
Attacker → Reverse Proxy → Node.js Backend

فرانت‌اند یا Reverse Proxy ممکن است مقدار زیر را همان Connection: close در نظر بگیرد:
Connection: close<TAB>

یعنی تصور کند بعد از پردازش درخواست فعلی، اتصال باید بسته شود.
اما در نسخه آسیب‌پذیر llhttp، وجود تب باعث می‌شد پرچم داخلی CONNECTION_CLOSE به‌درستی فعال نشود.
در نتیجه Node.js تصور می‌کرد اتصال همچنان قابل استفاده است و بایت‌های اضافی تحت کنترل مهاجم را به‌عنوان یک درخواست HTTP جدید پردازش می‌کرد.
برداشت Reverse Proxy:

[ درخواست اول ]
[ پایان اتصال ]


برداشت Node.js:

[ درخواست اول ]
[ درخواست جعلی دوم ]

نکته مهم این است که بک‌اند «درخواست را باز نگه نمی‌دارد»؛ بلکه اتصال بین Reverse Proxy و Backend را باز و قابل‌استفاده نگه می‌دارد.
همین اختلاف تفسیر باعث ایجاد HTTP Desynchronization و در شرایط مناسب HTTP Request Smuggling می‌شود.
✅ ریشه اصلی باگ در llhttp و سمت Node.js است، نه الزاماً Reverse Proxy.
اما بهره‌برداری واقعی به رفتار Reverse Proxy هم وابسته است؛ برای مثال:
• هدر را به بک‌اند منتقل کند
• اتصال بک‌اند را دوباره استفاده کند
• مقدار close<TAB> را متفاوت از Node.js تفسیر کند
اگر Reverse Proxy هدر Connection را حذف یا به‌درستی بازسازی کند، ممکن است باگ Node.js قابل بهره‌برداری نباشد.
خلاصه:
Connection: close<TAB>
↓
Reverse Proxy آن را close می‌فهمد
↓
Node.js آن را close تشخیص نمی‌دهد
↓
اتصال Backend باز می‌ماند
↓
بایت‌های اضافی درخواست جدید محسوب می‌شوند

گزارش اصلی:
https://hackerone.com/reports/3723248
#NodeJS #CyberSecurity #RequestSmuggling #HTTP #BugBounty
HackerOne Node.js disclosed on HackerOne: HTTP Request Smuggling via... **Summary:** Node's HTTP server ignores `Connection: close` when the token is followed by a tab character, so bytes after the request body can be parsed as a second request on the same...
  • 🔥 9
  • ❤ 4
  • 👍 2
More from @world_of_security
  1. Sep 24, 2026https://projectblack.io/blog/bypassing-edr-with-local-ai/
  2. Sep 12, 2026📚 خرید کتاب جامع تست نفوذ وب – جلد اول 📖 چاپ دوم کتاب جامع تست نفوذ وب – جلد اول ثبت سفا…
  3. Sep 10, 2026RCE in mexc Android app via Bypass URL validation to access the WebView, JS-Bridge with Pa…
  4. Sep 6, 2026دوستان ممنون میشم با استارز از ما حمایت کنید. این عمل باعث دلگرمی ما میشه 🥲
  5. Sep 3, 2026یه نیمچه چالش آسون XSS بریم😁 یه پارامتر داخل <script> رفلکت می‌شه، ولی دقیقاً بعد از (...…
  6. Aug 25, 2026https://medium.com/@nexovir/one-click-full-account-takeover-via-chained-xss-bypassing-csp-…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →