FlawOpen

flawopen.com/AI Security/microsoft-365-copilot-echoleak-prompt-injection-may-2025

● CVE-2025-32711 · CVSS 9.3 · अति गंभीर
सुरक्षा अनुसंधान · FlawOpen

EchoLeak: Copilot इंजेक्शन (CVE-2025-32711)

CVE-2025-32711 में तैयार ईमेल Copilot में बिना क्लिक prompt injection कर सकता था। Microsoft ने सेवा-पक्ष पर सुधार किया; ग्राहक कार्रवाई आवश्यक नहीं।[2], [3]

💡 आसान भाषा में (ELI5)

ऐसे सहायक की कल्पना करें जो पत्रों का सार बनाता है और ऐसा पूर्वावलोकन तंत्र जो उत्तर में चित्र अपने-आप लोड करता है। एक दुर्भावनापूर्ण पत्र सहायक से चित्र-संदर्भ में निजी जानकारी का संदर्भ जुड़वा देता है; कोई क्लिक किए बिना पूर्वावलोकन उस संदर्भ को प्राप्त कर लेता है। 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]

फ्रेमवर्क मैपिंग

हमले का चरण-दर-चरण प्रवाह

चरण 1

अविश्वसनीय ईमेल संदर्भ में आता है

प्रकाशित केस अध्ययन के अनुसार, सामान्य उपयोग के दौरान Copilot को हमलावर-नियंत्रित ईमेल संसाधित या पुनः प्राप्त करना आवश्यक था। केवल ईमेल पहुँचने से यह क्रम शुरू नहीं होता था; ईमेल खोलना या क्लिक करना जरूरी नहीं था।[3], [6]

चरण 2

सामग्री कार्य से प्रतिस्पर्धा करती है

शोधकर्ताओं के अनुसार, इंजेक्ट की गई सामग्री ने Copilot के XPIA वर्गीकारक को चकमा दिया और तैयार उत्तर में संदर्भ-शैली Markdown बाहरी लिंक हटाने की प्रक्रिया से बच गया।[3], [6]

चरण 3

अनुमत डेटा तक पहुँच बनती है

उत्तर में पीड़ित की पहले से उपलब्ध जानकारी को दूरस्थ छवि के संदर्भ में रखा जा सकता था। क्लाइंट ने बिना क्लिक के छवि अपने आप प्राप्त की।[3], [6]

चरण 4

निकास निर्णायक सीमा है

लेख के अनुसार, 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
    )

इंजीनियरिंग और सिस्टम सुरक्षा चेकलिस्ट

स्रोत

← AI Security Directory →