Accueil / Cybersécurité / IA / Bug Copilot Chat expose des e-mails confidentiels

Bug Copilot Chat expose des e-mails confidentiels

Depuis fin janvier 2026, un bug dans Microsoft 365 Copilot permettrait de lire et résumer des mails pourtant marqués confidentiels, en contournant des politiques censées empêcher l’IA d’analyser ces contenus.

Des développeurs de Microsoft ont signalé un dysfonctionnement de Microsoft 365 Copilot : Copilot Chat peut accéder à des courriels confidentiels et les résumer, malgré des politiques de protection contre les fuites de données prévues pour bloquer l’analyse automatisée. Le bug touche le chat de l’onglet « Travail ». Le problème concerne surtout les dossiers « Éléments envoyés » et « Brouillons », y compris des messages avec balises de confidentialité.

Un contournement silencieux des garde-fous DLP

Le point de départ ressemble à un scénario que redoutent toutes les équipes sécurité : l’outil est autorisé, l’usage est légitime, mais la barrière de protection ne joue plus son rôle. Dans ce cas précis, Microsoft 365 Copilot, via Copilot Chat, se serait mis à lire et à résumer des courriels confidentiels, alors même que des politiques de prévention des fuites de données devraient limiter l’accès des outils automatisés à ces messages.

Copilot Chat est décrit comme un chatbot contextuel, intégré à Word, Excel, PowerPoint, Outlook et OneNote, et conçu pour permettre des échanges avec des agents IA à partir du contenu de travail. L’outil est disponible pour les abonnés Microsoft 365 Entreprise depuis septembre 2025, ce qui le place au cœur des flux bureautiques et, par extension, au contact direct d’informations sensibles.

Le bug signalé ne porte pas sur un détail d’interface mais sur un principe de gouvernance : les balises de confidentialité servent précisément à empêcher des systèmes automatisés, dont Copilot, d’analyser le contenu de certains messages. Or, selon les éléments rapportés, l’assistant aurait ignoré cette contrainte dans une zone très utilisée, la fonction de chat accessible dans l’onglet « Travail ». Le risque, dans un environnement où les utilisateurs sollicitent l’IA pour gagner du temps, est mécanique : une demande anodine de synthèse peut faire remonter des informations qui n’auraient jamais dû être prises en compte par un système automatisé.

D’après Bleeping Computer, le bug est référencé CW1226324 et a été signalé pour la première fois le 21 janvier. La chronologie compte, car elle suggère une fenêtre d’exposition depuis fin janvier, période durant laquelle l’outil a pu traiter des messages censés rester hors périmètre. Dans un cadre cyber, cette temporalité est un indicateur opérationnel : plus la fenêtre est longue, plus la probabilité d’un usage involontaire, puis d’une propagation secondaire, augmente.

Éléments envoyés, brouillons, et la surface d’exposition interne

Le dysfonctionnement serait concentré sur la manière dont Copilot Chat traite les dossiers « Éléments envoyés » et « Brouillons ». C’est un détail qui pèse lourd. Les brouillons, par définition, contiennent souvent des formulations non stabilisées, des négociations en cours, des éléments juridiques avant validation, ou des fragments d’informations qui ne sont pas encore destinés à circuler. Les éléments envoyés, eux, constituent une mémoire fidèle des décisions, des engagements et des échanges sensibles avec l’extérieur. Si ces deux répertoires sont mal gérés par la logique de protection, l’IA peut devenir une interface de recherche et de synthèse sur des contenus que l’organisation a explicitement tenté de verrouiller.

Microsoft aurait attribué le bug à une erreur de code, sans fournir de détails. Ce silence technique est classique dans les incidents qui touchent à des mécanismes de sécurité internes : trop d’informations aideraient aussi les attaquants à comprendre précisément le contournement. Mais l’absence de précisions laisse les responsables sécurité dans une zone inconfortable, car ils doivent estimer l’impact sans connaître le scénario exact, ni les conditions de déclenchement.

Le correctif aurait commencé à être déployé début février. Là encore, la formulation est importante : un déploiement n’est pas une résolution instantanée. En entreprise, la réalité est faite d’environnements hétérogènes, de délais de propagation, de dépendances et de configurations spécifiques. Microsoft n’a pas communiqué de date de résolution complète, ni le nombre d’utilisateurs ou d’organisations concernés. L’entreprise a aussi précisé que l’étendue du problème pourrait évoluer au fil de l’enquête, ce qui suggère un périmètre encore en consolidation.

Sur le plan renseignement et gestion du risque, l’incident rappelle une règle dure : lorsque l’IA est imbriquée dans les outils de travail, la moindre défaillance de segmentation transforme un assistant de productivité en amplificateur de visibilité interne. Le danger n’est pas uniquement l’exfiltration externe, il est aussi l’exposition latérale, celle qui permet à une information de franchir des frontières de confidentialité à l’intérieur même de l’organisation, via des résumés, des reformulations et des requêtes contextuelles.

Ce bug met en tension deux promesses opposées : la fluidité du travail assisté par IA et la granularité des contrôles de confidentialité. Pour les défenseurs, l’enjeu n’est pas de diaboliser l’outil, mais de traiter l’IA comme un composant à privilèges, soumis aux mêmes exigences d’audit, de traçabilité et de cloisonnement que n’importe quel système sensible.

Quand l’IA sait lire, le vrai enjeu de cyber-renseignement devient de contrôler précisément ce qu’elle a le droit de comprendre.

Étiquetté :

Répondre

Nos partenaires




Actualités du mois

février 2026
L M M J V S D
 1
2345678
9101112131415
16171819202122
232425262728  

Articles en UNE

Actus zataz



Réseaux sociaux


Liste des sujets


<!-- Cyber'Émission ZATAZ — badge volant (déplaçable) + réduire/fermer -->
<div class="zataz-yt-float" id="zatazYtFloat" role="region" aria-label="Cyber'Émission ZATAZ">
  <div class="zataz-yt-float__bar" id="zatazYtBar">
    <span class="zataz-yt-float__title">Cyber'Émission ZATAZ</span>

    <div class="zataz-yt-float__actions">
      <button type="button" class="zataz-yt-float__btn" id="zatazYtMin" aria-label="Réduire">—</button>
      <button type="button" class="zataz-yt-float__btn zataz-yt-float__btn--close" id="zatazYtClose" aria-label="Fermer">×</button>
    </div>
  </div>

  <a class="zataz-yt-badge" href="https://www.youtube.com/@ZATAZCOM" target="_blank" rel="noopener noreferrer"
     aria-label="Regarder Cyber'Émission ZATAZ sur YouTube (nouvel onglet)">
    <span class="zataz-yt-badge__thumb" aria-hidden="true">
      <span class="zataz-yt-badge__play" aria-hidden="true"></span>
    </span>
  </a>
</div>

<style>
  .zataz-yt-float{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:99999;
    width:320px;
    max-width:calc(100vw - 36px);
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg,#111827,#0b1220 55%,#111827);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 40px rgba(0,0,0,.35);
    transform:translateZ(0);
    user-select:none;
    touch-action:none; /* drag mobile */
  }

  /* Barre de drag + boutons */
  .zataz-yt-float__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 10px 10px 12px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#fff;
    background:rgba(0,0,0,.18);
    border-bottom:1px solid rgba(255,255,255,.10);
    cursor:grab;
  }
  .zataz-yt-float__bar:active{ cursor:grabbing; }
  .zataz-yt-float__title{
    font-weight:800;
    letter-spacing:.2px;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .zataz-yt-float__actions{ display:flex; gap:8px; }
  .zataz-yt-float__btn{
    appearance:none;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.28);
    color:#fff;
    width:32px;
    height:28px;
    border-radius:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .zataz-yt-float__btn:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
  .zataz-yt-float__btn--close:hover{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.45); }

  /* Contenu (votre vignette) */
  .zataz-yt-badge{
    display:block;
    text-decoration:none;
    color:#fff;
  }
  .zataz-yt-badge__thumb{
    display:block;
    height:180px;
    background:#0f172a url("https://i.ytimg.com/vi/HUo8dnD6Swk/hqdefault.jpg") center/cover no-repeat;
    position:relative;
  }
  .zataz-yt-badge__play{
    position:absolute;
    left:50%;
    top:50%;
    width:54px;
    height:54px;
    margin:-27px 0 0 -27px;
    border-radius:999px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 10px 22px rgba(0,0,0,.35);
  }
  .zataz-yt-badge__play:before{
    content:"";
    position:absolute;
    left:22px;
    top:16px;
    width:0;height:0;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:16px solid #fff;
  }

  .zataz-yt-float:hover{
    box-shadow:0 18px 55px rgba(0,0,0,.45);
    border-color:rgba(255,255,255,.18);
  }
  .zataz-yt-badge:active{ transform:scale(.99); }

  /* Etat réduit */
  .zataz-yt-float.is-min .zataz-yt-badge{ display:none; }
  .zataz-yt-float.is-min{ width:260px; }

  /* Mobile : plus compact */
  @media (max-width:480px){
    .zataz-yt-float{ width:280px; right:12px; bottom:12px; }
    .zataz-yt-badge__thumb{ height:158px; }
    .zataz-yt-float.is-min{ width:220px; }
  }
</style>

<script>
(() => {
  const box = document.getElementById('zatazYtFloat');
  const bar = document.getElementById('zatazYtBar');
  const btnMin = document.getElementById('zatazYtMin');
  const btnClose = document.getElementById('zatazYtClose');

  if (!box || !bar || !btnMin || !btnClose) return;

  // Réduire / restaurer
  btnMin.addEventListener('click', (e) => {
    e.stopPropagation();
    box.classList.toggle('is-min');
    btnMin.textContent = box.classList.contains('is-min') ? '▢' : '—';
    btnMin.setAttribute('aria-label', box.classList.contains('is-min') ? 'Restaurer' : 'Réduire');
  });

  // Fermer
  btnClose.addEventListener('click', (e) => {
    e.stopPropagation();
    box.remove();
  });

  // Drag (souris + tactile) via Pointer Events
  let dragging = false;
  let startX = 0, startY = 0;
  let startLeft = 0, startTop = 0;

  // Position initiale: on convertit right/bottom en left/top pour le drag
  const init = () => {
    const r = box.getBoundingClientRect();
    box.style.left = r.left + 'px';
    box.style.top  = r.top  + 'px';
    box.style.right = 'auto';
    box.style.bottom = 'auto';
  };
  init();

  const clamp = (v, min, max) => Math.min(Math.max(v, min), max);

  bar.addEventListener('pointerdown', (e) => {
    // pas de drag quand on clique sur les boutons
    if (e.target === btnMin || e.target === btnClose) return;

    dragging = true;
    bar.setPointerCapture(e.pointerId);

    const r = box.getBoundingClientRect();
    startX = e.clientX;
    startY = e.clientY;
    startLeft = r.left;
    startTop = r.top;

    e.preventDefault();
  });

  bar.addEventListener('pointermove', (e) => {
    if (!dragging) return;

    const dx = e.clientX - startX;
    const dy = e.clientY - startY;

    const r = box.getBoundingClientRect();
    const w = r.width;
    const h = r.height;

    const maxLeft = window.innerWidth - w - 8;
    const maxTop  = window.innerHeight - h - 8;

    box.style.left = clamp(startLeft + dx, 8, maxLeft) + 'px';
    box.style.top  = clamp(startTop + dy, 8, maxTop) + 'px';
  });

  const endDrag = () => { dragging = false; };
  bar.addEventListener('pointerup', endDrag);
  bar.addEventListener('pointercancel', endDrag);

  // Re-clamp au resize
  window.addEventListener('resize', () => {
    const r = box.getBoundingClientRect();
    const maxLeft = window.innerWidth - r.width - 8;
    const maxTop  = window.innerHeight - r.height - 8;
    box.style.left = clamp(r.left, 8, maxLeft) + 'px';
    box.style.top  = clamp(r.top, 8, maxTop) + 'px';
  });
})();
</script>