← नवीनतम पेपर
🤖 AI

Correct Code, Vulnerable Dependencies: A Large Scale Measurement Study of LLM-Specified Library Versions

यह बड़े पैमाने पर किया गया मापन अध्ययन प्रकट करता है कि एलएलएम (LLMs) द्वारा जनरेट किए गए पायथन कोड में विशिष्ट जोखिम भरी रिलीज़ के प्रति प्रणालीगत पूर्वाग्रहों के कारण, वे अक्सर असुरक्षित और असंगत थर्ड-पार्टी लाइब्रेरी वर्ज़न निर्दिष्ट करते हैं, जो एआई-सहायता प्राप्त सॉफ्टवेयर विकास में एक महत्वपूर्ण, पहले अनदेखे जोखिम सतह को उजागर करता है।

मूल लेखक: Chengjie Wang, Jingzheng Wu, Xiang Ling, Tianyue Luo, Chen Zhao

प्रकाशित 2026-05-08
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Chengjie Wang, Jingzheng Wu, Xiang Ling, Tianyue Luo, Chen Zhao

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप अपने सॉफ़्टवेयर प्रोजेक्ट्स के लिए कोड लिखने के लिए एक सुपर-स्मार्ट, अविश्वसनीय रूप से तेज़ व्यक्तिगत सहायक को काम पर रख रहे हैं। यह सहायक, जो एक लार्ज लैंग्वेज मॉडल (LLM) द्वारा संचालित है, लॉजिक लिखने में बहुत अच्छा है: "यहाँ दरवाज़ा लॉक करने का तरीका दिया गया है," या "यहाँ संदेश भेजने का तरीका दिया गया है।"

लेकिन एक पेंच है। कोड को काम करने लायक बनाने के लिए, इस सहायक को उन "टूल्स" (थर्ड-पार्टी लाइब्रेरीज़) का उपयोग करने की आवश्यकता है जो पहले से मौजूद हैं। समस्या जो यह पेपर जांचता है वह यह है कि सहायक केवल टूल्स उठाता ही नहीं है; वह उन टूल्स के विशिष्ट, पुराने और कभी-कभी टूटे हुए वर्ज़न उठा लेता है, और वह ऐसा आपकी जानकारी के बिना करता है।

इस अध्ययन के निष्कर्षों का सरल उपमाओं (analogies) का उपयोग करके विवरण यहाँ दिया गया है:

1. "रेसिपी" बनाम "शॉपिंग लिस्ट"

शोधकर्ताओं ने सहायक से कोड मांगने के दो तरीके आजमाए:

  • "इनलाइन" (Inline) मोड: आप एक कोड स्निपेट मांगते हैं, और सहायक कोड लिखता है और हर टूल के बगल में एक छोटा सा नोट जोड़ देता है, जैसे "टूल X, वर्ज़न 1.0 का उपयोग करें।"
  • "मेनिफेस्ट" (Manifest) मोड: आप सहायक से एक कोड स्निपेट और टूल्स के लिए एक अलग शॉपिंग लिस्ट (एक requirements.txt फ़ाइल) लिखने के लिए कहते हैं।

निष्कर्ष:
जब उनसे "इनलाइन" नोट के लिए कहा गया, तो सहायक सटीक वर्ज़न बताने के लिए बहुत उत्सुक था (95% बार)। लेकिन जब उनसे "शॉपिंग लिस्ट" मांगी गई, तो वह अचानक आलसी और अस्पष्ट हो गया, अक्सर वर्ज़न नंबर खाली छोड़ दिए (केवल 6% से 59% बार)।

  • उपमा: यह एक ऐसे शेफ की तरह है जो, रेसिपी लिखने के लिए पूछे जाने पर कहता है, "बिल्कुल 2015 के विंटेज नमक का उपयोग करें।" लेकिन जब पूरे किचन के लिए शॉपिंग लिस्ट लिखने को कहा जाता है, तो वे बस "नमक" लिख देते हैं और यह आप पर छोड़ देते हैं कि आपको किस साल का नमक खरीदना है।

2. "एक्सपायर्ड मिल्क" की समस्या (सुरक्षा जोखिम)

अध्ययन में पाया गया कि जब सहायक एक विशिष्ट वर्ज़न चुनता है, तो वह अक्सर खतरनाक होता है।

  • आंकड़ा: 37% से 56% बार के बीच, सहायक द्वारा चुना गया विशिष्ट वर्ज़न में ज्ञात सुरक्षा दोष (एक "CVE") था।
  • गंभीरता: इनमें से अधिकांश दोष "क्रिटिकल" (Critical) या "हाई" (High) गंभीरता के थे।
  • ट्विस्ट: ये दोष गुप्त नहीं थे। वे सहायक के प्रशिक्षित होने से पहले ही सार्वजनिक ज्ञान में थे। सहायक बस उन्हें टालने के बारे में नहीं जानता था।
  • उपमा: कल्पना कीजिए कि सहायक एक समय यात्री है जो हमेशा वही दूध चुनता है जो तीन साल पहले एक्सपायर हो चुका है। भले ही कार्टन पर एक्सपायरी डेट वर्षों पहले छपी थी, सहायक फिर भी आपको वही पुराना दूध थमाता रहता है, यह सोचकर कि यह ताज़ा है।

3. "कन्वर्जेंस" प्रभाव (हर कोई एक ही गलत चीज़ चुनता है)

आप सोच सकते हैं कि अलग-अलग AI मॉडल अलग-अलग वर्ज़न चुनेंगे। वे ऐसा नहीं करते।

  • निष्कर्ष: परीक्षण किए गए सभी दस मॉडलों (Google, OpenAI, Alibaba, आदि से) ने एक ही छोटे और जोखिम भरे वर्ज़न सेट पर सहमति जताई। यदि सहायक "टूल X" चुनता है, तो वह लगभग हमेशा "वर्ज़न 2.31.0" ही चुनता है, भले ही नए, सुरक्षित वर्ज़न मौजूद हों।
  • उपमा: यह वैसा ही है जैसे शहर के हर व्यक्ति ने, उनकी पृष्ठभूमि की परवाह किए बिना, जूते का ठीक वही जोड़ा खरीदने का फैसला किया हो जिसका सोल टूटा हुआ है। यह कोई इत्तेफाक नहीं है; यह एक साझा आदत है जो उन्हीं पुराने टेक्स्टबुक्स से सीखी गई है।

4. "टूटी हुई चाबी" की समस्या (संगतता/Compatibility)

भले ही टूल खतरनाक न हो, लेकिन वह फिट नहीं बैठता।

  • निष्कर्ष: सहायकों द्वारा चुने गए वर्ज़न अक्सर इंस्टॉल नहीं किए जा सकते थे या उनके द्वारा लिखे गए कोड के साथ काम नहीं करते थे।
    • स्टैटिक चेक (Static Check): कोड इंस्टॉल तक नहीं होगा (जैसे गोल छेद में चौकोर खूँटा डालने की कोशिश करना)।
    • डायनामिक चेक (Dynamic Check): भले ही वह इंस्टॉल हो जाए, कोड चलाने पर क्रैश हो जाएगा।
  • कारण: सहायक टूल्स के बहुत पुराने वर्ज़न चुनने के शौकीन हैं। ये पुराने वर्ज़न कंप्यूटर सिस्टम के उन हिस्सों पर निर्भर करते हैं जो आधुनिक कंप्यूटरों में हटा दिए गए हैं।
  • उपमा: सहायक एक कोड लिखता है जिसमें लिखा है, "लाइट चालू करें," लेकिन वह 1990 का बल्ब निर्दिष्ट करता है जिसके लिए एक ऐसा सॉकेट चाहिए जो आपके 2026 के घर में मौजूद ही नहीं है। कोड एकदम सही है, लेकिन बल्ब उसमें फिट ही नहीं होगा।

5. हम सहायक को बेहतर होने के लिए "बोल" क्यों नहीं सकते?

शोधकर्ताओं ने इसे ठीक करने के लिए कुछ चीज़ें आजमाईं:

  • "कृपया सुरक्षित रहें" प्रॉम्प्ट: उन्होंने सहायक को बताया, "कृपया सुरक्षा खामियों वाले वर्ज़न का उपयोग न करें।"
    • परिणाम: यह काम नहीं आया। सहायक अभी भी खराब वर्ज़न ही चुनता रहा।
    • क्यों: सहायक नियमों को "भूल" नहीं रहा है; यह बस सुरक्षा चेतावनियों के लाइव डेटाबेस से जुड़ा नहीं है। यह एक ऐसे छात्र की तरह है जिसने 2023 की टेक्स्टबुक रट ली है और उसे 2025 में पारित नए कानून के बारे में पता ही नहीं है। उनके पास वह जानकारी उनके दिमाग में है ही नहीं।
  • "एक्सटर्नल एंकर" (External Anchor) समाधान: जब शोधकर्ताओं ने सहायक को एक पूर्व-अनुमोदित सुरक्षित वर्ज़न की सूची (जैसे कि इंसान द्वारा दी गई एक सख्त शॉपिंग लिस्ट) का उपयोग करने के लिए मजबूर किया, तो सारी समस्याएँ समाप्त हो गईं।
    • परिणाम: सुरक्षा जोखिम गिर गए, और कोड वास्तव में काम करने लगा।

निचोड़ (The Bottom Line)

पेपर यह निष्कर्ष निकालता है कि LLMs कोड के "लॉजिक" को लिखने में तो महान हैं, लेकिन वे टूल्स के "सप्लाई चेन" को मैनेज करने में बहुत खराब हैं।

वे एक मददगार लेकिन अविश्वसनीय लाइब्रेरियन की तरह व्यवहार करते हैं जो आपको एक ऐसी किताब थमा देता है जो देखने में तो एकदम सही लगती है, लेकिन वास्तव में वह एक खतरनाक, पुराना संस्करण है। आप उनके द्वारा सुझाए गए विशिष्ट वर्ज़न नंबरों पर भरोसा नहीं कर सकते। आपको उन्हें एक कच्चा ड्राफ्ट मानना चाहिए और उपयोग करने से पहले सुरक्षा टूल के साथ हमेशा वर्ज़न नंबरों की दोबारा जाँच करनी चाहिए।

समस्या यह नहीं है कि AI "मूर्ख" है; समस्या यह है कि AI पुराने डेटा पर प्रशिक्षित है जो उसे लोकप्रिय-लेकिन-पुराने वर्ज़न को पसंद करने के लिए प्रेरित करता है, और उसके पास वर्तमान सुरक्षा चेतावनियों का लाइव कनेक्शन नहीं है। जब तक AI लाइव सुरक्षा टूल्स से जुड़ा नहीं होता, तब तक मानव डेवलपर को ही एक्सपायरी डेट की जाँच करनी होगी।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →