flawopen.com/AI Security/microsoft-365-copilot-echoleak-prompt-injection-may-2025
EchoLeak Copilot: CVE-2025-32711
CVE-2025-32711 memungkinkan injeksi prompt ke Copilot lewat email tanpa klik. Microsoft memperbaiki layanan; pelanggan tak perlu bertindak.[2], [3]
Bayangkan asisten yang merangkum surat dan sistem pratinjau yang otomatis memuat ilustrasi dalam jawabannya. Surat berbahaya menipu asisten agar memasukkan referensi ke informasi privat dalam sebuah ilustrasi; sistem pratinjau mengikuti referensi itu tanpa klik. EchoLeak melintasi batas antara email tak tepercaya, jawaban asisten, dan pengambilan eksternal otomatis. Pertahanannya adalah mencegah konten tak tepercaya mengizinkan pengambilan dan memeriksa setiap pratinjau melalui kebijakan terpisah.[3], [4]
Konsep Kunci & Istilah
Injeksi prompt tidak langsung- Instruksi dalam data yang dibaca AI dan berusaha mengalihkannya dari tugas pengguna.[4], [3]
CWE-74: InjeksiCWE-74: Injection. Catatan CVE Microsoft mencantumkan klasifikasi ini dan skor CVSS 3.1 9,3 Critical. NVD secara terpisah menampilkan penilaiannya sendiri, 7,5 High; keduanya adalah penilaian berbeda, bukan pertentangan pada ID kerentanan.[2], [5]Jalur sumber-ke-keluaran- Jalur yang dapat diaudit dari konten tidak tepercaya melalui pemrosesan model ke tindakan atau saluran pengungkapan.[3]
Microsoft 365 Copilot- Asisten kerja Microsoft yang menggunakan konteks Microsoft 365 yang diizinkan.[1]
Hak istimewa minimum- Memberikan identitas atau alat hanya akses yang diperlukan untuk tugas saat ini.[4]
Pemetaan kerangka kerja
- Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-74
- OWASP GenAI 2025 — LLM01:2025 Injeksi prompt
- OWASP GenAI 2025 — LLM02:2025 Pengungkapan informasi sensitif
Alur Serangan Langkah demi Langkah
Keluaran adalah batas penentu
Makalah tersebut melaporkan bahwa layanan pratinjau Microsoft Teams yang diizinkan CSP mengambil tujuan gambar eksternal dan melewati batas konten yang dirancang. Microsoft kemudian merilis perbaikan sisi server; panduannya menyatakan pelanggan tidak perlu melakukan tindakan.[3], [1], [2], [6]
Kode Sumber: Rentan vs Aman
Model edukasi FlawOpen, bukan kode sumber atau patch Microsoft. Cabang rentan memodelkan perender yang otomatis memuat referensi pilihan model. Cabang defensif hanya menerima ServerValidatedPreview yang dibuat oleh resolver sisi server tepercaya, memeriksa kebijakan tujuan yang dikelola server dan klasifikasi nonprivat, lalu meminta kebijakan persetujuan tepercaya memverifikasi persetujuan yang terikat pada jawaban dan tujuan yang tepat. Ini adalah prasyarat eksplisit: tipe Python saja tidak membuat nilai menjadi tepercaya; dalam produksi, kode yang dikendalikan server harus menegakkan batas resolver dan kebijakan. Kode tidak membuat permintaan jaringan dan tidak mereproduksi payload atau implementasi internal EchoLeak. Persetujuan juga terikat pada klasifikasi data.[3], [4]
# MODEL RISIKO ABSTRAK: memodelkan keputusan pratinjau otomatis; tidak membuat permintaan jaringan.
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
# MODEL RISIKO ABSTRAK: memodelkan keputusan pratinjau otomatis; tidak membuat permintaan jaringan.
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
# PRAKONDISI: hanya kode server tepercaya yang membuat nilai tervalidasi ini.
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
)
Daftar Periksa Penguatan Sistem Rekayasa
- ✓Tambahkan uji integrasi perender yang membuktikan bahwa sumber daya eksternal dari email yang diambil tidak dimuat otomatis, meskipun model menyertakannya dalam jawaban.[4]
- ✓Tambahkan uji unit kebijakan yang membuktikan bahwa sumber daya tanpa ID tujuan yang dikelola server dan asal tepercaya ditolak sebelum layanan pratinjau dapat mengambilnya.[4]
- ✓Ikat setiap persetujuan pengecualian pada ID jawaban yang tidak berubah, ID tujuan, dan klasifikasi data; uji bahwa perubahan salah satunya membatalkan persetujuan.[4]
- ✓Catat ID jawaban, ID sumber daya, kategori asal, keputusan kebijakan, dan kelas tujuan; pastikan melalui pengujian bahwa email mentah, prompt, dan isi privat jawaban tidak masuk log.[4]
- ✓Untuk EchoLeak, Microsoft menyatakan perbaikan layanan telah diterapkan dan pelanggan tidak perlu bertindak. Untuk agen AI lain, tinjau advis vendor serta terapkan hak minimum, persetujuan tindakan berisiko tinggi, dan pengujian adversarial.[2], [1]
Sumber
- 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