Un SVG diseñado enviado a la búsqueda de imágenes de Bing ejecutó comandos como NT AUTHORITYSYSTEM en los trabajadores de procesamiento de imágenes de producción de Microsoft y como root en las máquinas Linux de la misma flota.
Las pruebas de XBOW obtuvieron el mismo resultado en trabajadores de diferentes hosts y rangos de red, por lo que el problema se encontraba en el nivel de imagen de Bing, no en una máquina defectuosa. Microsoft emitió dos CVE críticos, CVE-2026-32194 y CVE-2026-32191, y calificó ambos con 9,8 en la escala CVSS.
XBOW, la startup autónoma de seguridad ofensiva, encontró ambos y los informó en privado. Los usuarios de Bing no tienen ningún parche o mitigación que aplicar: Microsoft arregló ambos lados del servidor antes de que salieran los avisos en marzo, y los registros indican que “no hay ninguna acción del cliente que resolver”.
Ninguno de los avisos registró explotación o divulgación pública cuando se publicaron el 19 de marzo. XBOW publicó la mecánica del exploit el 23 de julio, después de retenerla a pedido de Microsoft hasta que la solución llegara.
Lo que sobrevive a la solución es la forma del error. La aplicación creía que estaba manejando una imagen; el ayudante debajo lee parte de esa imagen como un comando.
Si su propia pila canaliza cargas o URL obtenidas por el servidor a través de ImageMagick o cualquier dispositivo compatible con ImageMagick, su exposición depende de si el contenido controlado por el atacante aún puede llegar a una ruta habilitada para delegados. Negue los delegados, corte los formatos que acepta y mantenga al trabajador fuera de la red, y el mismo SVG no hace nada.
La búsqueda inversa de imágenes de Bing obtiene la URL de una imagen desde el backend, porque eso es lo que hace la función. Por sí sola, esa es una SSRF ciega: nada regresa al cliente. El mensaje fue el error. Algunos trabajadores devolvieron un 500 al navegador y aun así buscaron y analizaron lo que recuperaron, lo que apuntaba a algo posterior que estaba realizando el análisis.
SVG respondió esa pregunta. Es XML, no píxeles: puede hacer referencia a otras imágenes, y un renderizador que sigue esas referencias va y las obtiene. Debajo, las suites de conversión de formatos manuales no se procesan por sí mismas ante un delegado, un programa externo invocado a través de un shell.
En la ruta que alcanzó XBOW, esa capa todavía estaba habilitada, por lo que una referencia de imagen que comenzaba con un carácter de barra vertical iba al shell en lugar de leerse como un nombre de archivo. La carga útil era un SVG de un píxel cuya referencia ejecutaba un comando en el trabajador y enroscaba la salida a un recopilador controlado por XBOW.

Eso dio dos rutas al mismo nivel de conversión y dos CVE.
- CVE-2026-32194, archivado como inyección de comando bajo CWE-77, es la carga pública de “Búsqueda por imagen”, con el SVG en base64 como
imageBincampo a/images/kblob. - CVE-2026-32191, archivado como inyección de comando del sistema operativo bajo CWE-78, es la ruta del rastreador: alojar el SVG en cualquier lugar, entregar su URL a la búsqueda a través del
imgurlparámetro, ybingbot/2.0lo trae a la misma tubería. Tampoco necesita autenticación, cookies, estado de sesión o un clic.
The Hacker News verificó ambos registros CVE el 24 de julio. Ambos todavía tienen el estado de no divulgación pública de Microsoft en marzo, que el artículo de XBOW ha superado, y Microsoft todavía los enumera como no explotados.
La prueba tuvo que salir de banda. La interfaz podría devolver un error mientras el trabajador se ejecuta de todos modos. Los trabajadores de Linux devolvieron uid=0 y gid=0. En Windows, systeminfo llamado Centro de datos de Windows Server 2022, whoami /all mostró SeImpersonatePrivilege y SeDebugPrivilege habilitados, y los listados de directorios ejecutaron dentro de los componentes de procesamiento de imágenes multimedia de Bing. La empresa dice que solo ejecutó comandos benignos de solo lectura y no tocó datos de los clientes.
Limitarlo a ese camino requirió docenas de investigaciones. Los pseudoprotocolos de ImageMagick regresaron de manera diferente según el codificador: label: texto renderizado y xc: produjo una imagen en color, mientras text:, caption: y las lecturas directas de archivos fallaron. Metacaracteres de Shell en el interior label: renderizado como texto en lugar de ejecutarse, lo que descartó a ese codificador. La ruta que llegó a un delegado fue la referencia de la imagen dentro del propio SVG.
Apague a los delegados
Un trabajador de procesamiento de imágenes que maneja archivos que no son de confianza no debe acceder a un shell, ejecutarse como SISTEMA ni tener acceso a Internet. El oleoducto de Bing hizo las tres cosas.
La propia guía de ImageMagick es explícita en cuanto a que la política predeterminada es abierta y está destinada a uso en entornos aislados o firewall, no en un sitio web público. Para cualquier cosa que toque imágenes que no sean de confianza, rechace a los delegados directamente en policy.xml:
Luego, en orden de lo que más te compra:
- Corta los formatos que aceptes. SVG, MVG y EPS se encuentran entre los que cuentan con referencias e intérpretes.
- Revisar
delegates.xmly deshabilite todo lo habilitado que no necesite. - Ejecute la conversión en un espacio aislado y con privilegios reducidos.
- Bloquear la red saliente del trabajador, que es la pata que convirtió un error ciego en uno probado.
- Incluya en una lista blanca los destinos a los que puede llegar una recuperación del lado del servidor y mantenga al trabajador alejado de las direcciones internas.
La guía de ImageMagick es realizar pruebas después de cualquier cambio de política, y magick identify -list policy imprime lo que realmente está cargado.
ImageTragick, la inyección de comando delegado de 2016 rastreada como CVE-2016-3714, es la misma clase de falla y sigue resurgiendo porque nadie cuenta el convertidor como parte de la superficie de ataque. Nico Waisman, CISO de XBOW, quien escribió la divulgación, lo expresó de esta manera: “Las aplicaciones tratan a los ayudantes de imágenes como plomería. Los atacantes los tratan como analizadores”.
La recuperación era accesible, no devolvía nada y parecía un callejón sin salida. Lo que lo convirtió en un shell de SISTEMA fue el analizador detrás de él, y nada en la respuesta lo habría dicho.