flawopen.com/Incidents/deadbugz-mcp-delayed-metadata-supply-chain-campaign-august-2026
Deadbugz: स्वीकृति के बाद MCP टूल मेटाडेटा बदला गया
Pillar Security ने MCP सप्लाई-चेन अभियान दर्ज किया जिसमें तीन सामान्य कॉल के बाद मेटाडेटा बदला गया। समीक्षा में GitHub PR प्रक्रिया से मर्ज हुए अनुरोध नहीं मिले; रिपोर्ट में बाद के समझौते का उल्लेख नहीं है। Cloud Security Alliance के अनुसार, अलग से स्थानीय रूप से चलाए जाने की दृश्यता सीमित थी।[1], [3]
सोचिए कि आपने किसी ठेकेदार को इसलिए मंज़ूरी दी क्योंकि उसके पहचान-पत्र पर सुरक्षित काम लिखा था। तीन सामान्य डिलीवरी के बाद पहचान-पत्र चुपचाप बदलकर बंद कमरों में जाने की अनुमति माँगता है। ख़तरा यह है कि इमारत पुरानी मंज़ूरी पर भरोसा करती रहे। MCP क्लाइंट को सर्वर द्वारा स्वीकृत टूल निर्देश बदलने का पता लगाना चाहिए।[1]
इस पेज के मुख्य शब्द
MCP- प्रोटोकॉल जिसके माध्यम से AI ऐप सर्वर द्वारा दिए गए टूल खोजता और चलाता है।[5]
टूल मेटाडेटा- टूल का नाम, विवरण और इनपुट स्कीमा, जिन्हें क्लाइंट मॉडल के संदर्भ में भेज सकता है।[5], [1]
रनटाइम पर विलंबित बदलाव- इंटरैक्शन की सीमा पूरी होने पर सक्रिय होने वाला व्यवहार; Pillar ने तीन कॉल का काउंटर बताया।[1]
सप्लाई-चेन डिलीवरी- विश्वसनीय विकास प्रक्रिया, जैसे pull request, से निर्भरता या कॉन्फ़िगरेशन जोड़ना।[1]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-829
घटना का समयक्रम (Timeline)
Pillar ने 74 मिनट में बनाए गए 23 संबंधित pull request पाए; समीक्षा के समय कोई भी GitHub PR प्रक्रिया से मर्ज नहीं हुआ था।[1]
Pillar ने तीन कॉल के बाद मेटाडेटा बदलने की तकनीकी रिपोर्ट और संकेत प्रकाशित किए।[1]
OWASP GenAI Project ने Deadbugz को Q3 2026 समीक्षा में शामिल किया; यह ध्यान का संकेत है, समझौते या खोज मात्रा का प्रमाण नहीं।[2]
हमले का चरण-दर-चरण प्रवाह
कॉन्फ़िगरेशन बदलाव प्रस्तावित होता है
pull request AI प्रोजेक्ट में दूरस्थ या स्थानीय MCP सर्वर कॉन्फ़िगरेशन जोड़ता है। Pillar ने दूरस्थ endpoint वाले 17 बदलाव, छिपी स्थानीय script के चार संदर्भ और दो सूची प्रविष्टियाँ देखीं।[1]
पहली समीक्षा में सामान्य टूल दिखते हैं
शुरुआत में सर्वर टेक्स्ट फ़ॉर्मैटिंग और सारांश टूल देता है। Pillar के अनुसार छोटी जाँच में केवल यही सामान्य मेटाडेटा मिल सकता है।[1]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
रिपोर्ट मेटाडेटा poisoning और pull request से डिलीवरी बताती है, MCP specification में CVE नहीं। जोखिम तब होता है जब क्लाइंट शुरुआती मंज़ूरी के बाद सर्वर के बदल सकने वाले विवरण पर भरोसा करता रहता है। Pillar ने अभियान को एक सार्वजनिक GitHub खाते से जोड़ा; यहाँ यह Pillar का attribution है, सत्यापित वास्तविक पहचान नहीं। Pillar ने कहा कि समीक्षा किए गए PR उस समय GitHub PR प्रक्रिया से मर्ज नहीं हुए थे और आगे के समझौते की पुष्टि नहीं हुई। लिंक किया गया स्रोत repository अभी 404 देता है, इसलिए तकनीकी दावे Pillar की प्रकाशित जाँच पर आधारित हैं, कोड ट्री की नई स्वतंत्र जाँच पर नहीं। Python उदाहरण क्लाइंट की रक्षात्मक नीति दिखाता है; यह MCP library का तैयार प्रतिस्थापन नहीं है। CWE-829 संपादकीय वर्गीकरण है; CVE और CVSS नहीं हैं। Adapter को MCP change notifications के बाद डेटा refresh करना चाहिए और tools/list तथा prompts/get दोनों शामिल करने चाहिए; metadata_snapshot केवल उदाहरण वाला adapter method है, MCP SDK API नहीं। approved_digest ऑपरेटर समीक्षा के बाद ही बनाएँ। Snapshot में सर्वर के सभी प्रासंगिक मेटाडेटा शामिल हों: tools/list definitions और स्वीकृत prompts का पूरा prompts/get content। कार्रवाई से ठीक पहले दोबारा लें और अंतर पर कार्रवाई रोकें। यह जाँच सर्वर के व्यवहार में बदलाव या जाँच और उपयोग के बीच बदलाव नहीं पकड़ती; इसलिए अलग action permissions आवश्यक हैं।[1], [4], [5]
def agent_metadata(session):
# एडैप्टर सर्वर के मौजूदा टूल और प्रॉम्प्ट को JSON डेटा के रूप में लौटाता है।
return session.metadata_snapshot()
import hashlib
import hmac
import json
def fingerprint(snapshot):
normalized = dict(snapshot)
for key in ("tools", "prompts"):
normalized[key] = sorted(
snapshot[key],
key=lambda item: json.dumps(item, sort_keys=True, separators=(",", ":")),
)
canonical = json.dumps(normalized, sort_keys=True, separators=(",", ":"))
return hashlib.sha256(canonical.encode()).hexdigest()
def agent_metadata(session, approved_digest):
current = session.metadata_snapshot()
if not hmac.compare_digest(fingerprint(current), approved_digest):
raise PermissionError("MCP metadata changed; require operator approval")
return current
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓स्वीकृत MCP टूल के नाम, विवरण और input schema का canonical fingerprint सहेजें।[1], [4]
- ✓स्वीकृति के बाद
tools/listयाprompts/getबदलने पर टूल रोकें और ऑपरेटर समीक्षा लें।[1], [5], [4] - ✓मॉडल निर्देशों और मेटाडेटा से अलग file, credential, process और outbound network अनुमतियाँ लागू करें।[1], [4]
- ✓MCP endpoint या स्थानीय server script जोड़ने वाले repository बदलाव जाँचें; सक्षम करने से पहले स्रोत सत्यापित करें।[1]
- ✓सर्वर का व्यवहार अनपेक्षित हो तो client logs सुरक्षित रखें और टूल परिभाषा बदलावों को agent गतिविधि से मिलाएँ।[1], [3]
स्रोत
- Pillar Security — Deadbugz: Currently Active MCP Supply-Chain Campaign (12 August 2026)
- OWASP GenAI Security Project — GenAI and Agentic AI Exploit Roundup Q3 2026 (8 October 2026)
- Cloud Security Alliance — Deadbugz: Runtime-Gated MCP Metadata Poisoning as Supply-Chain Attack
- OWASP MCP Security Cheat Sheet
- MCP specification: Tools