Informe del incidente de octubre de AdGuard para Windows: Post Mortem

Recientemente, algunos usuarios de AdGuard para Windows han estado experimentando problemas con su aplicación. Después de lanzar la versión 7.22, descubrimos que la actualización causaba fallos ocasionales al cargar páginas en los navegadores. Aunque el problema se mitigó rápidamente en Chrome, persistió por más tiempo en Firefox, ya que el error resultó ser poco común y difícil de reproducir, provocado por una combinación inusual de factores que no fueron detectados durante las pruebas.

A la fecha de esta publicación, hemos lanzado un hotfix — AdGuard para Windows v7.22.1 — que resuelve el problema por completo. Asegúrate de que tu aplicación esté actualizada a la última versión para una experiencia fluida. Si usas AdGuard en otras plataformas, no necesitas hacer nada; todo debería funcionar con normalidad.

Lamentamos sinceramente las molestias y esperamos que este incidente no afecte tu experiencia general con AdGuard. Fue un caso aislado que no volverá a ocurrir. Además de resolver el problema técnico, revisamos nuestros procesos internos y ya implementamos varias mejoras para evitar situaciones similares en el futuro.

A continuación mostramos la línea de tiempo de los eventos que llevaron al incidente, seguida de más detalles técnicos y las medidas que estamos tomando para prevenir que algo así vuelva a suceder.

Línea de tiempo de los eventos

2 de octubre

Lanzamos AdGuard para Windows v7.22.

4 de octubre

Un usuario abrió un issue en GitHub reportando problemas al cargar páginas y, eventualmente, un error Timed out después de actualizar a la versión 7.22.

6 de octubre

Nuestro equipo de QA comenzó a investigar el problema, pero no pudo reproducirlo. Ese mismo día el equipo escaló el problema a los desarrolladores y comenzaron las discusiones internas.

16 de octubre

A medida que más usuarios se unían a la discusión en GitHub, los reportes y votos positivos se acumularon. Lamentablemente, en esta etapa, el equipo de QA no siguió las pautas internas de escalamiento para issues de este nivel. Tuvimos grandes dificultades para reproducir el error, en parte por la inconsistencia de los reportes de los usuarios. Esto llevó al equipo a suponer que el problema había sido introducido un par de versiones atrás y que, por lo tanto, no requería un hotfix. Como resultado, se pospuso para la siguiente versión programada y, aunque la tarea fue marcada como P1: Crítica, no se escaló correctamente y se perdió tiempo valioso.

30 de octubre

Después de 24 días, el problema volvió a surgir internamente, revelando su verdadero impacto en los usuarios. Una vez que logramos reproducirlo, pudimos estimar el daño con mayor precisión. Inmediatamente comenzamos a trabajar en un hotfix (v7.22.1). Sin embargo, gran parte del tiempo y esfuerzo se dedicó a reproducir el error de manera consistente y comprender su causa principal. Varias hipótesis fueron probadas y descartadas durante el proceso.

Durante la investigación, también descubrimos un error de Firefox relacionado con conexiones QUIC, que ralentizaba aún más la carga de páginas y complicaba la depuración. Además, se identificó otro problema relacionado con la falta de filtrado de conexiones QUIC cuando AdGuard se ejecutaba junto a AdGuard VPN en modo de compatibilidad con Wintun deshabilitado.

1 de noviembre

Identificamos parcialmente la causa del problema y encontramos una forma de reproducirlo. Se implementó una corrección en DnsLibs, nuestro motor de filtrado DNS, y se lanzó una versión nocturna para pruebas.

5 de noviembre

Detectamos la causa principal: un error en el componente de detección de bucles de enrutamiento de CoreLibs, el motor de filtrado de AdGuard. El problema fue corregido rápidamente y se lanzó una segunda versión nocturna.

6 de noviembre

Las pruebas mostraron que las primeras correcciones resolvían la mayoría de los problemas con conexiones TCP, pero aún persistían algunos problemas relacionados con UDP. Para minimizar el impacto en los usuarios, decidimos lanzar las correcciones en dos fases. Primero, una tercera versión nocturna abordó estos problemas adicionales, incluyendo ajustes finales en las librerías y actualizaciones de las instrucciones del controlador. Después preparamos y probamos exhaustivamente el parche v7.22.1, que se lanzó ese mismo día.

Detalles técnicos

El error

El error en AdGuard para Windows v7.22 causaba congelamientos ocasionales e impredecibles al cargar ciertas páginas en Firefox. No afectó tanto a los usuarios de Chrome. El problema comenzó después de que CoreLibs v1.19 introdujera protección contra bucles de enrutamiento, un mecanismo diseñado para evitar que el tráfico se redirija hacia sí mismo.

El error tenía dos causas principales. Primero, un fallo de programación excluyó un puerto de la verificación del bucle, lo que hacía que algunas conexiones legítimas —como solicitudes del navegador— fueran bloqueadas. Esto se activaba por solicitudes internas del propio AdGuard, como las OCSP. Después de tales solicitudes, la siguiente conexión del navegador se interrumpía.

Segundo, la verificación se aplicaba en el lugar equivocado, a conexiones ya establecidas, lo que provocaba bloqueos innecesarios.

¿Por qué necesitamos protección contra bucles de enrutamiento?

Un bucle de enrutamiento ocurre cuando el tráfico regresa a la misma aplicación que lo generó. Esto puede causar lentitud y alto uso de CPU. Aunque normalmente no ocurren, pueden aparecer debido a interacciones con otros programas. Para prevenirlos, AdGuard rastrea conexiones salientes por su dirección de origen y termina cualquier conexión que regrese a esa misma dirección.

¿Por qué afectó tan poco a Chrome?

Porque solo se interrumpía la conexión inmediatamente posterior a una solicitud interna, y Chrome vuelve a intentar automáticamente la conexión tras un fallo. Firefox, en cambio, no reintenta solicitudes tras errores de red, lo que hacía el problema mucho más evidente.

¿Y en Linux y Android?

El problema no se detectó en la etapa de CLI con la versión 1.19. En Linux solo ocurría en modo automático y principalmente en Firefox, así que muy pocos usuarios cumplieron esas condiciones. Tampoco apareció en AdGuard para Android v4.12, aun usando CoreLibs 1.19, porque las direcciones de entrada y salida eran distintas, evitando la condición que desencadenaba el error.

El diagnóstico

El diagnóstico fue particularmente difícil. AdGuard abre pocas conexiones de servicio y los intentos repetidos de reproducir el fallo reutilizaban solicitudes OCSP cacheadas, lo que impedía que el error apareciera. Además, el problema afectaba solo una conexión descendente a la vez. Chrome reintenta automáticamente, mientras que Firefox no.

Un error adicional de Firefox descubierto en el proceso

Durante la investigación encontramos que una parte de los reportes tenía otros síntomas, presentes incluso en versiones anteriores de AdGuard. Así descubrimos un error en Firefox para Windows relacionado con conexiones HTTP/3.

En resumen: Firefox intenta conexiones HTTP/3 inmediatamente cuando un sitio anuncia soporte, incluso si aún no están disponibles. AdGuard actualmente no filtra HTTP/3 de forma predeterminada, por lo que HTTP/3 queda bloqueado cuando el filtrado HTTPS está habilitado. Esto provoca pausas de 20–30 segundos antes de que Firefox reasigne las solicitudes a HTTP/2.

AdGuard ahora modifica los registros DNS de tipo HTTPS para ocultar el parámetro h3 cuando el filtrado HTTP/3 está deshabilitado, evitando retrasos innecesarios.

La corrección

La solución se aplicó en dos fases.

Primero, corregimos la lógica de coincidencia de conexiones para incluir correctamente el puerto. Esto resolvió la mayor parte del problema, aunque persistían falsos positivos por la reutilización de puertos en Windows. Una versión nocturna del 5 de noviembre ayudó a la mayoría de los usuarios.

Sin embargo, aún había rastros del problema. Windows puede reutilizar un puerto menos de un segundo después de liberar un socket, lo que provocaba falsos positivos adicionales cuando conexiones no relacionadas compartían dirección y puerto.

Aunque nadie reportaba problemas nuevos, muchos usuarios aún podían verse afectados. Esto llevó a la segunda fase, que abordó estos casos y resultó en el hotfix final v7.22.1, que resolvió el problema por completo.

Medidas de prevención

Este problema no se detectó antes principalmente debido a la dificultad de reproducirlo en condiciones normales de prueba, combinada con una atención insuficiente a los comentarios de los usuarios.

Actualmente estamos actualizando nuestros procesos de QA y desarrollo, con un enfoque particular en combinar una supervisión más estricta, mayor automatización y pruebas y comunicación más rigurosas dentro de los equipos. Con esto, buscamos evitar incidentes similares en el futuro y garantizar la confiabilidad de AdGuard para todos los usuarios.

Cambios en el flujo de trabajo del equipo de QA

El equipo de QA comenzará a prestar más atención a la cantidad de comentarios y votos positivos en los Issues de GitHub. Para minimizar el factor humano, este monitoreo no dependerá únicamente de la revisión manual: se introducirán mecanismos de automatización para rastrear la actividad y el número de votos en los issues públicos. Si este enfoque resulta efectivo, podrá ampliarse y aplicarse a todos los equipos de QA en todos los proyectos de AdGuard.

Se llevará a cabo una sesión informativa adicional basada en nuestras Triage Guidelines, y se introducirá una práctica obligatoria para la evaluación interna de issues en Jira. Este proceso requerirá una justificación basada en nuestras Triage Guidelines estructuradas, lo que ayudará a garantizar consistencia y transparencia en las decisiones de priorización.

El equipo también preparará una lista de preguntas de diagnóstico para los usuarios, lo que facilitará identificar y analizar problemas relacionados con el filtrado basados en la retroalimentación de los usuarios.

Finalmente, se implementarán varias pruebas automatizadas nuevas para evitar que problemas similares vuelvan a ocurrir. Se está desarrollando un script de pruebas de rendimiento para evaluar la velocidad de filtrado de páginas en distintos navegadores. Una vez que se defina una referencia de rendimiento, todas las versiones posteriores se medirán en relación con ella. Actualmente, las pruebas automatizadas solo se utilizan en Google Chrome, pero planeamos extenderlas también a Firefox. Además, se crearán pruebas para medir la velocidad de carga de un conjunto definido de páginas “problemáticas” en estos navegadores. Esta lista se basará en sitios conocidos por generar problemas y continuará ampliándose, comenzando con aquellos identificados durante la investigación de este incidente —por ejemplo, discord.com.

Cambios en el flujo de trabajo del equipo de desarrollo

Los equipos de desarrollo dedicarán más atención a agregar nuevas pruebas —incluyendo pruebas de integración— para las nuevas funcionalidades cuando sea posible, con el fin de reducir la probabilidad de que aparezcan errores en lanzamientos futuros. También se pondrá mayor énfasis en proporcionar documentación técnica detallada para las nuevas funciones y en asegurar que todos los equipos involucrados estén debidamente informados sobre la necesidad de probar la nueva funcionalidad en busca de posibles problemas y casos límite.

Al integrar nuevas versiones de CoreLibs en los productos, los equipos ahora esperarán la aprobación explícita del equipo de CoreLibs antes de continuar. En este momento, este proceso de integración se lleva a cabo de forma algo “aislada”, lo que aumenta el riesgo de que se pasen por alto problemas.

Conclusión

Queremos disculparnos nuevamente con todos los usuarios afectados por este incidente y agradecer sinceramente a quienes proporcionaron retroalimentación y nos ayudaron a navegar esta situación tan complicada. En adelante, también seremos más rápidos y transparentes al comunicarnos con nuestros usuarios sobre cualquier problema crítico que pueda tener un impacto significativo.

¿Te gustó esta publicación?
21.447 21447 reseñas
¡Excelente!

AdGuard para Windows

AdGuard para Windows es más que un bloqueador de anuncios. Es una herramienta multipropósito que bloquea anuncios, controla el acceso a sitios peligrosos, acelera la carga de páginas y protege a los niños del contenido inapropiado.
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
AdGuard para Windows v7.22, período de prueba de 14 días
21.447 21447 reseñas
¡Excelente!

AdGuard para Mac

AdGuard para Mac es un bloqueador de anuncios único diseñado teniendo en cuenta las especificaciones de macOS. No solo proporciona protección contra los anuncios en aplicaciones y navegadores, sino que también te protege contra rastreadores, phishing y fraude.
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
AdGuard para Mac v2.17, período de prueba de 14 días
21.447 21447 reseñas
¡Excelente!

AdGuard para Android

AdGuard para Android es una solución perfecta para los dispositivos Android. A diferencia de la mayoría de los bloqueadores de anuncios, AdGuard no requiere acceso root y ofrece una amplia gama de opciones de gestión de aplicaciones.
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
Escanear para descargar
Utiliza cualquier lector de códigos QR disponible en tu dispositivo
AdGuard para Android v4.12, período de prueba de 14 días
21.447 21447 reseñas
¡Excelente!

AdGuard para iOS

El mejor bloqueador de anuncios de iOS para iPhone y iPad. AdGuard elimina todo tipo de anuncios en Safari, protege tu privacidad y acelera la carga de las páginas. La tecnología de bloqueo de anuncios de AdGuard para iOS garantiza la máxima calidad de filtrado y te permite usar varios filtros a la vez
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
Escanear para descargar
Utiliza cualquier lector de códigos QR disponible en tu dispositivo
AdGuard para iOS v4.5
21.447 21447 reseñas
¡Excelente!

Bloqueador de contenido AdGuard

AdGuard Content Blocker elimina todo tipo de anuncios en los navegadores móviles compatibles con la tecnología de bloqueo de contenidos, es decir, Samsung Internet y Yandex Browser. Sus características son limitadas en comparación con AdGuard para Android, pero es gratis, fácil de instalar y eficiente
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
Bloqueador de contenido AdGuard v2.8
21.447 21447 reseñas
¡Excelente!

Extensión de navegador AdGuard

¡AdGuard es la extensión para bloqueo de anuncios más rápida y ligera que bloquea eficazmente todo tipo de anuncios en todos sitios web! Elige AdGuard para tu navegador y disfruta de una navegación rápida, segura y sin anuncios.
Extensión de navegador AdGuard v5.2
21.447 21447 reseñas
¡Excelente!

Asistente de AdGuard

Una extensión de navegador complementaria para las aplicaciones de escritorio AdGuard. Ofrece acceso en el navegador a las características como el bloqueo de elementos personalizado, lista de permitido de un sitio web o el envío de un informe.
Asistente de AdGuard v1.4
21.447 21447 reseñas
¡Excelente!

AdGuard Home

AdGuard Home es una solución basada en red para bloquear anuncios y rastreadores. Instálalo una vez en tu router para cubrir todos los dispositivos en tu red doméstica, no se requiere software cliente adicional. Esto es especialmente importante para varios dispositivos inteligentes (IoT) que a menudo representan una amenaza para tu privacidad
AdGuard Home v0.107
21.447 21447 reseñas
¡Excelente!

AdGuard Pro para iOS

AdGuard Pro para iOS incluye todas las características avanzadas de protección contra el bloqueo de anuncios habilitadas. Ofrece las mismas herramientas que la versión de pago de AdGuard para iOS. Destaca bloqueando anuncios en Safari y te permite personalizar la configuración de DNS para confeccionar tu protección. Bloquea anuncios en navegadores y aplicaciones, protege a tus hijos de contenido inapropiado y mantiene tus datos personales seguros
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
AdGuard Pro para iOS v4.5
21.447 21447 reseñas
¡Excelente!

AdGuard para Safari

Nuestro bloqueador de anuncios para Safari ha superado con éxito el desafío de Apple que obliga a todos a usar su nuevo SDK. Esta extensión de AdGuard tiene como objetivo devolver el bloqueo de anuncios de alta calidad a Safari
AdGuard para Safari v1.11
21.447 21447 reseñas
¡Excelente!

AdGuard para Android TV

AdGuard para Android TV es la única aplicación que bloquea publicidad, protege tu privacidad y actúa como firewall para proteger el tráfico en tu Smart TV. Recibe advertencias acerca de amenazas web, utilización de DNS seguro y beneficios de tráfico cifrado y protegido. Disfruta tus películas y series favoritas con alta protección y sin publicidad molesta!
AdGuard para Android TV v4.12, período de prueba de 14 días
21.447 21447 reseñas
¡Excelente!

AdGuard para Linux

AdGuard para Linux es el primer bloqueador de anuncios para Linux a nivel de sistema en el mundo. Bloquea anuncios y rastreadores en el dispositivo, selecciona de los filtros preinstalados o añade los tuyos propios, todo a través de la interfaz de línea de comandos
AdGuard para Linux v1.1
21.447 21447 reseñas
¡Excelente!

AdGuard Temp Mail

Un generador gratuito de direcciones de correo electrónico temporales que te mantiene en el anonimato y protege tu privacidad. ¡Sin spam en tu bandeja de entrada principal!
21.447 21447 reseñas
¡Excelente!

AdGuard VPN

83 ubicaciones en todo el mundo

Acceso a cualquier contenido

Cifrado fuerte

Política de cero registros

Conexión más rápida

Asistencia 24/7

Prueba gratis
Al descargar el programa, aceptas los términos del acuerdo de licencia
Más información
21.447 21447 reseñas
¡Excelente!

AdGuard DNS

AdGuard DNS es una solución alternativa para bloqueo de anuncios, protección de privacidad y control parental. Es fácil para configurar y gratis para usar, ofrece el mínimo necesario de la mejor protección contra los anuncios, rastreadores, phishing, sin importar que plataforma o dispositivo uses.
21.447 21447 reseñas
¡Excelente!

AdGuard Mail

Protege tu identidad, evita el spam y mantén tu bandeja de entrada segura con nuestros alias y direcciones de correo electrónico temporales. Disfruta de nuestro servicio gratuito de reenvío de correo electrónico y apps para todos los sistemas operativos
21.447 21447 reseñas
¡Excelente!

AdGuard Wallet

Una cartera de criptomonedas segura y privada que te da control total sobre tus activos. Administra varias carteras y descubre miles de criptomonedas para almacenar, enviar e intercambiar
Descargando AdGuard Para instalar AdGuard, haz clic en el archivo indicado por la flecha Selecciona "Abrir", haz clic en "Aceptar" y después espera a que se descargue el archivo. En la ventana que se abra, arrastra el icono AdGuard a la carpeta de "Aplicaciones". ¡Gracias por elegir AdGuard! Selecciona "Abrir", haz clic en "Aceptar" y después espera a que se descargue el archivo. En la ventana que se abra, haz clic en "Instalar". ¡Gracias por elegir AdGuard!
Instala AdGuard en tu dispositivo móvil