Los desarrolladores ya publicaron la corrección, pero el parche de seguridad aún no ha llegado a todos los dispositivos.

Los nuevos widgets de Telegram se convirtieron en un problema tanto para smartphones como para ordenadores. En Telegram Desktop 7.4.2, publicado el 11 de noviembre, se corrigieron varios errores del motor QuickJS, pero se omitió un parche para un defecto que podría llevar a la ejecución de código ajeno. Para Android la versión corregida ya está disponible, mientras que en ordenadores el estado del problema sigue abierto.
El soporte para widgets apareció el 9 de noviembre junto con Bot API 10.4. Los bots obtuvieron la capacidad de enviar tarjetas HTML interactivas directamente en la conversación. En ellas funcionan encuestas, juegos y otros miniservicios con JavaScript. El tamaño del documento HTML está limitado a 32 KB antes de la compresión y a 4 KB después de ella. Telegram ejecuta los scripts en QuickJS, que debería aislar el código externo del sistema.
La vulnerabilidad residía en el intérprete de JavaScript. Al procesar la construcción "await using" dentro de ciertos bucles, QuickJS podía conservar una referencia a la memoria de una función ya finalizada. Este tipo de error se conoce como use-after-return. El acceso a la memoria de una llamada finalizada puede comprometer el funcionamiento del programa y, si se explota con éxito, puede conducir a la ejecución de código nativo.
Los desarrolladores de Telegram el 10 de noviembre corrigieron el defecto en su fork de QuickJS con el commit ca3594d. El parche prohíbe la construcción incorrecta en funciones ordinarias y bloquea la ruta peligrosa en el intérprete. La corrección se incluyó en widget-sandbox 0.6.4 junto con otros cinco arreglos de errores de memoria que el código JavaScript del widget podría provocar.
Sin embargo, Telegram Desktop 7.4.2 se compiló con una revisión anterior de widget-sandbox, a74626d. En el commit ef3f6fd los desarrolladores incorporaron cinco correcciones, pero no incluyeron ca3594d. Por lo tanto, el código publicado de la aplicación de escritorio aún contiene el mecanismo vulnerable. Aún no hay una demostración confirmada de ejecución de código ajeno en Windows, macOS o Linux.
La compañía V12 mostró en Android cómo un widget inicia una aplicación externa. Tras abrir el chat con el bot y pulsar Iniciar bot apareció una cuenta atrás y luego se lanzó la calculadora del sistema. Telegram comunicó la corrección del error en Android 13.2.2 y la distribución de la actualización. Además, los widgets en Android se movieron a un proceso aislado separado.
El código compartido de los widgets está pensado para Android, iOS, Windows, macOS, Linux y el cliente web, pero las versiones del motor y las condiciones de ejecución difieren. En el navegador se utiliza WebAssembly, por lo que las consecuencias del error no se pueden equiparar automáticamente con la toma de control de un ordenador. En la red principal de Telegram los widgets por ahora solo están disponibles en los chats privados con bots. Otros métodos de distribución están limitados al servidor de pruebas.