Accueil / Cybersécurité / Securite informatique / Microsoft – Patch Tuesday juillet 2019

Microsoft – Patch Tuesday juillet 2019

Ce mois-ci Microsoft résout 77 vulnérabilités dont 15 classées comme critiques. Parmi ces dernières, 11 affectent les moteurs de scripts et les navigateurs tandis que les quatre autres concernent le serveur DHCP, GDI+, l’infrastructure .NET et l’ensemble des outils de développement logiciel Azure DevOps Server (anciennement Team Foundation Server).

En outre, Microsoft a publié des correctifs importants pour deux vulnérabilités activement exploitées facilitant une élévation de privilèges, ainsi que pour une exécution de code à distance sur SQL Server. Microsoft a également diffusé deux avis de sécurité concernant des vulnérabilités affectant Outlook sur le web et le noyau Linux. Concernant Adobe, l’éditeur vient tout juste de publier des correctifs pour Bridge CC, Experience Manager et Dreamweaver.

Correctifs pour postes de travail

Déployer des patches pour les moteurs de script, les navigateurs, GDI+ et l’Infrastructure .NET est une priorité pour les équipements de type poste de travail, c’est-à-dire tout système utilisé pour accéder à la messagerie ou à Internet depuis un navigateur. Sont également concernés les serveurs multi-utilisateurs utilisés comme postes de travail distants.

Exécution de code RCE sur le serveur DHCP

Une vulnérabilité par exécution de code à distance (RCE) (CVE-2019-0785) est présente sur le serveur DHCP de Microsoft lorsque ce dernier est configuré pour une reprise après incident. Un attaquant ayant un accès depuis le réseau au serveur DHCP dédié à la reprise après incident pourrait ainsi exécuter du code de manière arbitraire. Ce correctif doit donc être déployé en priorité sur tous les systèmes exécutant un serveur DHCP en mode Reprise après incident.

Attaques actives sur l’élévation de privilèges

Microsoft a publié des patches pour deux vulnérabilités facilitant une élévation de privilèges (CVE-2019-1132 et CVE-2019-0880) dans Win32k et splwow64 et qui ont été exploitées en aveugle. Même s’ils sont classés comme Importants, ces correctifs sont en fait prioritaires car une association avec d’autres vulnérabilités pourrait fournir un accès complet au système à un cyberattaquant.

Exécution de code RCE sur le serveur SQL

Le Patch Tuesday de ce mois-ci résout également une vulnérabilité par exécution de code à distance (CVE-2019-1068) au sein du serveur Microsoft SQL Server. Classée comme Importante, cette vulnérabilité exige une authentification. Cependant, si elle est associée à une injection de code SQL, un cyberattaquant risque de compromettre complètement le serveur.

Azure DevOps Server (anciennement Team Foundation Server)

L’ensemble d’outils de développement logiciel Azure DevOps Server (ex-Team Foundation Server – TFS) est affecté par une vulnérabilité par exécution de code à distance (CVE-2019-1072) qui est exploitée via des téléchargements de fichiers malveillants. En effet, quiconque télécharge un fichier vers un serveur peut exécuter du code via un compte Azure DevOps/TFS. Sont également concernés les utilisateurs anonymes si le serveur est configuré pour accepter ces derniers. Ce correctif est donc une priorité pour toutes les installations Azure DevOps ou TFS.

Script XSS dans Outlook sur le web

Microsoft a publié un avis de sécurité pour une vulnérabilité à base de scripts intersite (XSS) dans Outlook sur le web (anciennement OWA). Cette vulnérabilité permet à un attaquant d’envoyer un fichier SVG malveillant, même si l’utilisateur ciblé doit ouvrir ce fichier d’image vectorielle directement en le glissant vers un nouvel onglet ou en copiant l’URL dans un nouvel onglet. Même si ce scénario d’attaque reste improbable, Microsoft recommande de bloquer les fichiers au format SVG. (Publié par Jimmy Graham dans The Laws of Vulnerabilities)

Étiquetté :

Nos partenaires




Actualités du mois

avril 2026
L M M J V S D
 12345
6789101112
13141516171819
20212223242526
27282930  

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>