flawopen.com/AI Security/microsoft-365-copilot-echoleak-prompt-injection-may-2025
EchoLeak: Copilot इंजेक्शन (CVE-2025-32711)
CVE-2025-32711 में तैयार ईमेल Copilot में बिना क्लिक prompt injection कर सकता था। Microsoft ने सेवा-पक्ष पर सुधार किया; ग्राहक कार्रवाई आवश्यक नहीं।[2], [3]
ऐसे सहायक की कल्पना करें जो पत्रों का सार बनाता है और ऐसा पूर्वावलोकन तंत्र जो उत्तर में चित्र अपने-आप लोड करता है। एक दुर्भावनापूर्ण पत्र सहायक से चित्र-संदर्भ में निजी जानकारी का संदर्भ जुड़वा देता है; कोई क्लिक किए बिना पूर्वावलोकन उस संदर्भ को प्राप्त कर लेता है। EchoLeak ने अविश्वसनीय ईमेल, सहायक के उत्तर और स्वचालित बाहरी अनुरोध के बीच की सीमा पार की। बचाव यह है कि अविश्वसनीय सामग्री को अनुरोध की अनुमति न मिले और हर पूर्वावलोकन की अलग नीति से जाँच हो।[3], [4]
इस पेज के मुख्य शब्द
अप्रत्यक्ष प्रॉम्प्ट इंजेक्शन- AI द्वारा पढ़े जाने वाले डेटा में छिपे निर्देश जो उसे उपयोगकर्ता के कार्य से भटकाने का प्रयास करते हैं।[4], [3]
CWE-74: इंजेक्शनCWE-74: Injection। Microsoft के CVE रिकॉर्ड में यह वर्गीकरण और CVSS 3.1 स्कोर 9.3 Critical है। NVD अपनी अलग 7.5 High रेटिंग दिखाता है; ये अलग आकलन हैं, भेद्यता पहचानकर्ता में विरोधाभास नहीं।[2], [5]स्रोत-से-निकास पथ- अविश्वसनीय सामग्री, मॉडल प्रोसेसिंग और कार्रवाई या प्रकटीकरण चैनल के बीच ऑडिट योग्य पथ।[3]
Microsoft 365 Copilot- अनुमत Microsoft 365 संदर्भ का उपयोग करने वाला Microsoft कार्य सहायक।[1]
न्यूनतम विशेषाधिकार- पहचान या टूल को केवल वर्तमान कार्य के लिए आवश्यक पहुँच देना।[4]
फ्रेमवर्क मैपिंग
- इस गाइड में बताई गई कमजोरी के लिए CWE संदर्भ: CWE-74
- OWASP GenAI 2025 — LLM01:2025 प्रॉम्प्ट इंजेक्शन
- OWASP GenAI 2025 — LLM02:2025 संवेदनशील जानकारी का प्रकटीकरण
हमले का चरण-दर-चरण प्रवाह
निकास निर्णायक सीमा है
लेख के अनुसार, CSP में अनुमत Microsoft Teams पूर्वावलोकन सेवा ने छवि के बाहरी पते से सामग्री प्राप्त की और निर्धारित सामग्री-सीमा पार की। Microsoft ने बाद में सर्वर-पक्षीय सुधार जारी किया; उसके निर्देशों के अनुसार ग्राहक को कोई कार्रवाई करने की आवश्यकता नहीं है।[3], [1], [2], [6]
सोर्स कोड: कमज़ोर बनाम सुरक्षित कार्यान्वयन
यह FlawOpen का शिक्षण मॉडल है, Microsoft का स्रोत कोड या पैच नहीं। असुरक्षित शाखा उस रेंडरर को दर्शाती है जो मॉडल द्वारा चुने गए संदर्भ को अपने-आप लोड करता है। सुरक्षित शाखा केवल विश्वसनीय सर्वर-पक्ष रिज़ॉल्वर द्वारा बनाए गए ServerValidatedPreview को स्वीकार करती है, सर्वर-नियंत्रित गंतव्य नीति और गैर-निजी वर्गीकरण जाँचती है, और विश्वसनीय मंजूरी नीति से ठीक उसी उत्तर व गंतव्य से जुड़ी मंजूरी सत्यापित करवाती है। ये स्पष्ट पूर्वशर्तें हैं: Python प्रकार अपने-आप किसी मान को विश्वसनीय नहीं बनाते; उत्पादन में सर्वर-नियंत्रित कोड को रिज़ॉल्वर और नीति की सीमाएँ लागू करनी चाहिए। कोड नेटवर्क अनुरोध नहीं करता और EchoLeak के पेलोड या आंतरिक कार्यान्वयन को पुनः नहीं बनाता। मंजूरी डेटा वर्गीकरण से भी जुड़ी होती है।[3], [4]
# अमूर्त जोखिम मॉडल: स्वचालित पूर्वावलोकन निर्णय दर्शाता है; कोई नेटवर्क अनुरोध नहीं करता।
from dataclasses import dataclass
@dataclass(frozen=True)
class PreviewRequest:
response_id: str
destination_id: str
provenance: str
contains_private_data: bool
def vulnerable_preview_decision(request):
return True
# अमूर्त जोखिम मॉडल: स्वचालित पूर्वावलोकन निर्णय दर्शाता है; कोई नेटवर्क अनुरोध नहीं करता।
from dataclasses import dataclass
@dataclass(frozen=True)
class ServerValidatedPreview:
response_id: str
destination_id: str
provenance: str
data_classification: str
class ServerPolicy:
def destination_is_allowed(self, destination_id):
raise NotImplementedError
def verifies_exact_approval(self, approval, *, response_id, destination_id, data_classification):
raise NotImplementedError
# पूर्वशर्त: केवल विश्वसनीय सर्वर कोड ही यह सत्यापित मान बनाता है।
def authorize_preview(request: ServerValidatedPreview, approval, server_policy):
if request.provenance != 'trusted-catalog' or request.data_classification != 'public':
return False
if not server_policy.destination_is_allowed(request.destination_id):
return False
return server_policy.verifies_exact_approval(
approval, response_id=request.response_id, destination_id=request.destination_id,
data_classification=request.data_classification
)
इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट
- ✓रेंडरर का इंटीग्रेशन परीक्षण जोड़ें जो साबित करे कि प्राप्त ईमेल से आया बाहरी संसाधन अपने-आप लोड नहीं होता, भले ही मॉडल उसे उत्तर में शामिल करे।[4]
- ✓नीति का यूनिट परीक्षण जोड़ें जो साबित करे कि सर्वर-नियंत्रित गंतव्य ID और विश्वसनीय स्रोत-जानकारी के बिना संसाधन को पूर्वावलोकन सेवा द्वारा प्राप्त किए जाने से पहले अस्वीकार किया जाता है।[4]
- ✓किसी भी अपवादात्मक मंजूरी को अपरिवर्तनीय उत्तर ID, गंतव्य ID और डेटा वर्गीकरण से बाँधें; परीक्षण करें कि इनमें से कोई फ़ील्ड बदलने पर मंजूरी अमान्य हो जाती है।[4]
- ✓उत्तर ID, संसाधन ID, स्रोत श्रेणी, नीति निर्णय और गंतव्य वर्ग लॉग करें; परीक्षण से पुष्टि करें कि कच्चा ईमेल, प्रॉम्प्ट और निजी उत्तर सामग्री लॉग में नहीं है।[4]
- ✓EchoLeak के लिए Microsoft ने सेवा-पक्ष सुधार लागू किया है; ग्राहक कार्रवाई आवश्यक नहीं। अन्य AI एजेंटों के लिए विक्रेता सलाह देखें और न्यूनतम विशेषाधिकार, उच्च-जोखिम कार्रवाई की मंजूरी तथा प्रतिकूल परीक्षण लागू करें।[2], [1]
स्रोत
- Microsoft Security Insider — AI application security considerations for organizations
- Microsoft Security Response Center — CVE-2025-32711
- AAAI case study — EchoLeak zero-click prompt-injection chain
- OWASP Top 10 for LLM Applications — Prompt Injection
- NVD — CVE-2025-32711 (NVD enrichment and CNA data)
- Aim Security / Aim Labs — original EchoLeak disclosure