महत्वपूर्ण Node.js async_hooks DoS (CVE-2025-59466) — पूर्ण‑स्टैक टीमों के लिए तात्कालिक कार्रवाई

ReactNode.jsDevOps

TL;DR — एक उच्च‑प्रभाव वाला Node.js बग (CVE-2025-59466) तब अपरिवर्तनीय प्रक्रिया समाप्ति का कारण बनता है जब एक स्टैक ओवरफ्लो होता है जबकि async_hooks कॉलबैक सक्रिय होते हैं। चूंकि AsyncLocalStorage / async_hooks का व्यापक रूप से React Server Components, Next.js, और हर प्रमुख APM एजेंट द्वारा उपयोग किया जाता है, कई सर्वर‑साइड JavaScript ऐप्स आसान Denial‑of‑Service के जोखिम में हैं। तुरंत पैच किए गए Node.js रिलीज़ (जो 13 जनवरी, 2026 को प्रकाशित हुए) पर अपग्रेड करें और यदि आप तुरंत पैच नहीं कर सकते हैं तो तात्कालिक उपाय लागू करें। (nodejs.org)

क्या हुआ (संक्षेप में)

  • जब async_hooks (या इसके आधार पर AsyncLocalStorage) सक्षम होता है, तो कुछ स्टैक ओवरफ्लो (जैसे, गहरे पुनरावृत्ति जो प्रॉमिस आवंटित करते हैं) सामान्य त्रुटि हैंडलिंग को बायपास कर सकते हैं और Node.js को तुरंत बाहर निकलने का कारण बना सकते हैं (बाहर निकलने का कोड 7) बजाय एक पकड़ने योग्य RangeError फेंकने के। इससे क्रैश अपरिवर्तनीय और trivially exploitable बन जाते हैं। (nodejs.org)

किसे यह तोड़ता है

  • कोई भी उत्पादन ऐप जिसे async_hooks या AsyncLocalStorage के साथ इंस्ट्रूमेंट किया गया है। व्यवहार में सबसे अधिक उजागर समूह हैं:
    • React Server Components (RSC) और Next.js सर्वर जो अनुरोध संदर्भ के लिए AsyncLocalStorage का उपयोग करते हैं।
    • APM/इंस्ट्रूमेंटेशन एजेंट (Datadog, New Relic, Elastic APM, OpenTelemetry, आदि) जो async_hooks ट्रेसिंग सक्षम करते हैं।
    • कोई भी सर्वर कोड जो बाहरी इनपुट द्वारा गहरे पुनरावृत्ति में धकेला जा सकता है। (nodejs.org)

पैच किए गए रिलीज़ (अब किस पर अपग्रेड करें)

  • Node.js सुरक्षा अपडेट जिसमें सुधार शामिल है, 13 जनवरी, 2026 को जारी किए गए थे — अपने रिलीज़ लाइन के लिए मेल खाते पैच किए गए संस्करणों पर अपग्रेड करें। सलाह में सूचीबद्ध उदाहरणों में 20.x, 22.x, 24.x और 25.x लाइनों में पैच किए गए निर्माण शामिल हैं (अपने प्लेटफ़ॉर्म के लिए सटीक संस्करण नंबर के लिए आधिकारिक Node.js सलाह देखें)। इंटरनेट‑फेसिंग सर्वरों और CI रनर्स को प्राथमिकता दें जो सर्वर‑साइड रेंडरिंग या इंस्ट्रूमेंटेशन चलाते हैं। (nodejs.org)

तात्कालिक संचालन चेकलिस्ट (उच्च‑प्रभाव, न्यूनतम घर्षण)

  1. पहले पैच करें
    • Node.js सुरक्षा रिलीज़ को स्टेजिंग और उत्पादन में जल्द से जल्द तैनात करें। यह अनुशंसित और न्यूनतम जोखिम वाला सुधार है। (nodejs.org)
  2. यदि आप तुरंत पैच नहीं कर सकते हैं
    • सार्वजनिक एंडपॉइंट्स पर अस्थायी रूप से तीसरे पक्ष के APM/इंस्ट्रूमेंटेशन एजेंटों को अक्षम करें (वे अक्सर async_hooks को सक्षम करते हैं)। पैच किए गए एजेंट संस्करणों के लिए विक्रेता सलाह का मूल्यांकन करें। (nodejs.org)
    • गहराई से नेस्टेड डेटा को पार्स करने वाले एंडपॉइंट्स पर रक्षात्मक इनपुट सत्यापन जोड़ें (पुनरावृत्ति/JSON गहराई को सीमित करें)। रनटाइम पर स्टैक ओवरफ्लो को पुनर्प्राप्त करने के लिए भरोसा न करें। (nodejs.org)
    • कमजोर सेवाओं को तात्कालिक रूप से पुनरारंभ करने वाले पर्यवेक्षकों (systemd, k8s probes) के तहत चलाने पर विचार करें — यह क्रैश को संभालता है लेकिन शोषण को रोकता नहीं है। इसका उपयोग केवल तब करें जब आप पैच कर रहे हों। (nodejs.org)
  3. Node.js 24+ पर टीमों के लिए
    • Node.js 24 ने V8 के AsyncContextFrame का उपयोग करके AsyncLocalStorage को फिर से लागू किया है जो async_hooks कॉलबैक पर निर्भरता को कम करता है; कई डिफ़ॉल्ट 24+ डिप्लॉयमेंट में React/Next.js उदाहरण उसी तरह प्रभावित नहीं होते हैं। हालाँकि, पैच किए गए 24.x रिलीज़ अभी भी भेजे गए थे — फिर भी अपग्रेड करें। (nodejs.org)

जल्दी जोखिम का पता कैसे लगाएं

  • अपने निर्भरता पेड़ और स्टार्टअप लॉग में async_hooks या AsyncLocalStorage के उपयोग के लिए खोजें।
  • ट्रेसिंग सक्षम करने वाले APM एजेंटों की जांच करें; ये एजेंट सामान्यतः async_hooks.createHook() को कॉल करते हैं।
  • बाहर निकलने के कोड 7 के साथ अनिर्वचनीय प्रक्रिया निकास के लिए निगरानी करें और हाल की अनुरोधों के साथ सहसंबंधित करें जो गहराई से नेस्टेड पेलोड्स को शामिल करते हैं। (nodejs.org)

यह पूर्ण‑स्टैक टीमों के लिए क्यों महत्वपूर्ण है

  • सर्वर रेंडरिंग और वितरित ट्रेसिंग आधुनिक पूर्ण‑स्टैक स्टैक्स के मुख्य भाग हैं। यह बग दिखाता है कि निम्न-स्तरीय रनटाइम आंतरिक (async संदर्भ और हुक) कई परतों में प्रणालीगत उपलब्धता जोखिम पैदा कर सकते हैं — ढांचा, प्लेटफ़ॉर्म, और टेलीमेट्री — और कि रनटाइम व्यवहार को सुरक्षा सीमा के रूप में नहीं माना जाना चाहिए। रनटाइम को ठीक करना आवश्यक है, लेकिन टीमों को ऐप-स्तरीय इनपुट/पुनरावृत्ति नियंत्रण को भी मजबूत करना चाहिए। (nodejs.org)

त्वरित कार्य योजना (एक‑घंटा, एक‑दिन, एक‑सप्ताह)

  • एक घंटा: AsyncLocalStorage या APM एजेंटों का उपयोग करने वाली सेवाओं की सूची बनाएं; बाहर निकलने के कोड 7 के लिए निगरानी जोड़ें। (nodejs.org)
  • एक दिन: पैच किए गए Node.js निर्माणों को स्टेजिंग में तैनात करें; विक्रेता एजेंट अपडेट का समन्वय करें; यदि आवश्यक हो तो सार्वजनिक एंडपॉइंट्स पर एजेंटों को प्रतिबंधित या अक्षम करें। (nodejs.org)
  • एक सप्ताह: पैच किए गए Node.js को उत्पादन में रोल करें, लोड के तहत एप्लिकेशन व्यवहार को मान्य करें, और अनुरोध पार्सिंग पथों में इनपुट/पुनरावृत्ति सीमाएँ जोड़ें। घटना का दस्तावेजीकरण करें और रनबुक को अपडेट करें। (nodejs.org)

समापन नोट

  • यह एक व्यावहारिक, पारिस्थितिकी‑व्यापी उपलब्धता मुद्दा है (न कि एक RCE)। Node.js परियोजना ने सुधार और मार्गदर्शन जारी किया; पूर्ण‑स्टैक टीमों को इसे सर्वर‑साइड रेंडरिंग और इंस्ट्रूमेंटेड उत्पादन सेवाओं के लिए एक संचालन आपातकाल के रूप में मानना चाहिए: सूची बनाएं, पैच करें, और तुरंत इनपुट‑चालित पुनरावृत्ति को कम करें। (nodejs.org)

Source: Node.js आधिकारिक सलाह — React, Next.js, और APM उपयोगकर्ताओं के लिए अपरिवर्तनीय स्टैक स्पेस थकावट से Denial‑of‑Service भेद्यता को कम करना। (nodejs.org)

Link:

Source

आगे पढ़ें