Un fallo en la extensión de Chrome de Trust Wallet desencadena un plan de compensación para usuarios afectados. La brecha de seguridad, explotada a través de un ataque sofisticado, ha puesto el foco en los riesgos de las herramientas de custodia de terceros.
El incidente y la respuesta
Trust Wallet activó su proceso de compensación tras confirmar la explotación de una vulnerabilidad en su extensión para el navegador Chrome. El mecanismo del ataque permitió a actores maliciosos eludir ciertas capas de seguridad, comprometiendo fondos de usuarios. La empresa no ha hecho públicos los montos totales afectados, pero la velocidad de la respuesta busca mitigar el daño reputacional.
Un recordatorio costoso para la autogestión
El episodio sirve como un recordatorio contundente: en cripto, tu seguridad es finalmente tu responsabilidad. Confiar ciegamente en cualquier interfaz, aunque lleve un nombre conocido, introduce un punto único de fallo. Mientras algunos en finanzas tradicionales se ríen de la "bancarización descentralizada", incidentes como este muestran que los riesgos simplemente se trasladan, no desaparecen—a veces, de un banco con seguro a una extensión de navegador sin él.
El camino a seguir
Trust Wallet enfrenta ahora la tdual de restaurar la confianza y reforzar su infraestructura. Para los usuarios, la lección es clara: diversificar los métodos de custodia y aplicar parches de inmediato no son sugerencias, son requisitos de supervivencia en el ecosistema digital. La próxima vez que el mercado alcance un nuevo ATH, recuerda que tu cartera es sólo tan fuerte como su eslabón más débil.
Trust Wallet contacta a las víctimas
En una declaración publicada en X el 26 de diciembre, Trust Wallet reconoció la interrupción causada por la violación y dijo que su equipo de soporte ya había comenzado a.
Update on Trust Wallet Browser Extension v2.68 Security Incident: Compensation Process
To start the compensation process, affected users should please complete this form: https://t.co/xlBLrL6kMj to help us process your case.
Our support team is prioritizing all the victims from… https://t.co/yaqFNLxuyx
— Trust Wallet (@TrustWallet) December 26, 2025
La compañía agregó que cada caso requiere una verificación cuidadosa para garantizar la precisión y la seguridad y prometió proporcionar actualizaciones continuas a medida que avanza el proceso.
Al mismo tiempo, Trust Wallet advirtió a los usuarios que permanezcan atentos ante las estafas con criptomonedas, señalando un aumento en los formularios de compensación falsos, cuentas de soporte suplantadas y mensajes directos no solicitados que circulany otras plataformas.
El anuncio de la compensación siguió a la confirmación de la violación el 25 de diciembre, cuando Trust Wallet reveló que solo la versión 2.68 de su extensión del navegador Chrome estaba afectada.
El investigador de blockchain ZachXBT llamó la atención por primera vez sobre el incidente después de que varios usuarios informaran sobrepoco después de instalar la actualización.
Posteriormente, Trust Wallet instó a los usuarios que ejecutaban la versión comprometida a desactivarla inmediatamente y actualizarla a la versión 2.69.
Según ZachXBT, el número de víctimas aumentó a cientos en cuestión de horas, con más dea varias cadenas de bloques, incluidas Bitcoin, Solana y redes compatibles con EVM.
Varios usuarios dijeron que sus billeteras se vaciaron en cuestión de minutos, y una cuenta en X afirmó haber tenido pérdidas que excedieron los 300.000 dólares, aunque ZachXBT luego marcó esa cuenta específica como sospechosa.
¿Cómo una actualización de Chrome se convirtió en un robo de billetera?
Los investigadores y usuarios informaron que la extensión maliciosa parecía legítima cuando se instaló a través del proceso de actualización normal de Chrome.
Sin embargo, el código incrustado permitió a los atacantesde los usuarios, permitiendo el acceso inmediato a sus fondos.
Un usuario advirtió que simplemente importar una frase semilla a la extensión provocaba el vaciado instantáneo de la billetera.
Lasgeneralmente funcionan con permisos elevados, lo que les da acceso a páginas web, almacenamiento y datos de navegación, lo que las convierte en un objetivo poderoso para los atacantes cuando se abusa de ellas.
Trust Wallet afirmó que los usuarios de la aplicación móvil y de otras versiones de su extensión para navegador no se vieron afectados. La extensión de Chrome cuenta con aproximadamente un millón de usuarios, según su ficha en la Web Store.
En una publicación aparte,, fundador de Binance, que adquirió Trust Wallet en 2018, confirmó que todas las pérdidas verificadas serían cubiertas. El monto total afectado será de 7 millones de dólares y afirmó que se reembolsaran los fondos de los usuarios.
So far, $7m affected by this hack. @TrustWallet will cover. User funds are SAFU. Appreciate your understanding for any inconveniences caused.
The team is still investigating how hackers were able to submit a new version. https://t.co/xdPGwwDU8b
— CZ

BNB (@cz_binance) December 26, 2025
El incidente se produce en medio de un aumento más amplio de exploits relacionados con billeteras en toda la industria de las mejores criptomonedas para invertir.
Leer más:
El precio de LINK se dispara un 3% mientras Grayscale apunta a la tokenización de RWA
La IA de DeepSeek predice el precio de SOL y SUI para inicios de 2026
¿Podría el precio de BTC superar los 90.000 a principios de 2026?
Table of Contents
En este artículo
Trust Wallet contacta a las víctimas
¿Cómo una actualización de Chrome se convirtió en un robo de billetera?
Leer más:
En este artículo
Trust Wallet contacta a las víctimas
¿Cómo una actualización de Chrome se convirtió en un robo de billetera?
Leer más:
window.addEventListener("DOMContentLoaded", () => {
const header = document.querySelector(".header_wrapper");
const pageLegend = document.querySelector('#multiCollapse1');
const pageLegendList = document.querySelector('#multiCollapse2');
const pageLegendCollapse = new bootstrap.Collapse(pageLegend, {toggle: document.querySelector(".toc-sticky").classList.contains('sticky')});
/**
* Changing current title
*/
(function (pageLegend) {
const titleNodes = pageLegend.querySelectorAll('.StepProgress-item__link');
if (!titleNodes.length) return;
const titles = [...titleNodes].map((itm, i) => ({
id: itm.getAttribute('data-id'),
text: itm.textContent,
level: itm.getAttribute('data-level'),
linkNode: itm,
titleNode: document.getElementById(itm.getAttribute('data-id')),
index: i,
}));
/**
* Source: https://www.sitepoint.com/throttle-scroll-events/
* @param {Function} fn
* @param {number} wait
* @returns {(function(): void)|*}
*/
const throttle = (fn, wait) => {
let time = Date.now();
return function () {
if ((time + wait - Date.now()) {
const documentScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
let current = 0;
// Title
titles.forEach((itm, i) => {
//console.log(itm)
const itmOffsetTop = itm.titleNode ? itm.titleNode.offsetTop - 100 : 0;
if (documentScrollTop >= itmOffsetTop) {
document.getElementById('toc-current-title').innerHTML = itm.text;
document.getElementById('toc-current-title').setAttribute('data-current-id', itm.id);
document.getElementById('toc-current-title').setAttribute('data-current-level', itm.level);
current = i;
}
})
// close all list and open sub list if needed
if (document.querySelector(".toc-sticky").classList.contains('sticky')) {
document.querySelectorAll('.subList-in-progress').forEach((el) => {
el.children[1].classList.remove('show');
el.getElementsByClassName('icon-chevron-down')[0].classList.remove('up');
});
const currentEl = titles[current];
currentEl.linkNode.classList.add('show');
}
titles.forEach((itm, i) => {
itm.linkNode.parentNode.parentNode.classList.remove('current', 'is-done');
if (current > i) {
itm.linkNode.parentNode.parentNode.classList.add('is-done')
};
if (current === i) {
itm.linkNode.parentNode.parentNode.classList.add('current');
};
})
}
changeCurrentTitle();
document.addEventListener('scroll', throttle(changeCurrentTitle, 50));
})(pageLegend);
/**
* Collapse
*/
(function (pageLegend, header) {
const icon = pageLegend.parentNode.querySelector(".collapse-action-btn i");
const collapseToggle = (status) => (e) => {
if (!e.target.isEqualNode(pageLegend)) return;
icon.classList.toggle("up");
const containerHeight = pageLegend.getBoundingClientRect().height;
const showSubtitleContent = () => {
const currentId = document.getElementById('toc-current-title').getAttribute('data-current-id');
const currentLevel = document.getElementById('toc-current-title').getAttribute('data-current-level');
const currentSubTitle = currentLevel == 3 ? document.querySelector(`a[data-id="${currentId}"]`).parentNode.parentNode.parentNode : false;
if (!currentSubTitle) return;
new bootstrap.Collapse(currentSubTitle, {toggle: false}).show();
}
showSubtitleContent();
console.log(status + 'fdsfsd' + containerHeight);
if (status === 'shown' && document.querySelector(".toc-sticky").classList.contains('sticky')) {
document.querySelector('html').classList.remove('overflow-hidden');
pageLegend.classList.add('overflow-auto');
pageLegend.style.height = `calc(100vh - ${header.getBoundingClientRect().height + document.querySelector('.toc-sticky__open').getBoundingClientRect().height + 16}px)`;
} else if (status === 'hide') {
document.querySelector('html').removeClass('overflow-hidden');
pageLegend.classList.remove('overflow-auto');
pageLegend.style.height = 'auto';
}
}
pageLegend.addEventListener('shown.bs.collapse', collapseToggle('shown'));
pageLegend.addEventListener('hide.bs.collapse', collapseToggle('hide'));
})(pageLegend, header);
/**
* Collapse sub-titles
*/
(function (pageLegend) {
const collapseEls = pageLegend.querySelectorAll('.collapse');
collapseEls.forEach(function (el) {
const toggleArrowDirection = function (e) {
if (!e.target.isEqualNode(el)) return;
const id = this.getAttribute('id');
document.querySelector(`.collapse-action-btn[data-bs-target="#${id}"] .icon-chevron-down`).classList.toggle('up');
}
el.addEventListener('shown.bs.collapse', toggleArrowDirection);
el.addEventListener('hide.bs.collapse', toggleArrowDirection);
})
})(pageLegend);
/**
* Collapse main title
*/
(function (pageLegendList) {
const icon = pageLegendList.parentNode.querySelector(".collapse-action-btn i");
const collapseToggle = () => (e) => {
if (!e.target.isEqualNode(pageLegendList)) return;
icon.classList.toggle("up");
}
pageLegendList.addEventListener('shown.bs.collapse', collapseToggle());
pageLegendList.addEventListener('hide.bs.collapse', collapseToggle());
})(pageLegendList);
(function (pageLegendList) {
const collapseEls = pageLegendList.querySelectorAll('.collapse');
collapseEls.forEach(function (el) {
const toggleArrowDirection = function (e) {
if (!e.target.isEqualNode(el)) return;
const id = this.getAttribute('id');
document.querySelector(`.toc-sticky-list .collapse-action-btn[data-bs-target="#${id}"] .icon-chevron-down`).classList.toggle('up');
}
el.addEventListener('shown.bs.collapse', toggleArrowDirection);
el.addEventListener('hide.bs.collapse', toggleArrowDirection);
})
})(pageLegendList);
/**
* Sticky functionality
* Source: https://stackoverflow.com/questions/17893771/javascript-sticky-div-after-scroll
*/
(function (header, pageLegendCollapse) {
// set everything outside the onscroll event (less work per scroll)
const target = document.querySelector(".toc-sticky");
const targetListStatic = document.querySelector(".toc-sticky-list");
if (!target || !header) return;
const headerHeight = header.getBoundingClientRect().height;
const targetHeight = targetListStatic.getBoundingClientRect().height;
// -headerHeight so it won't be jumpy
const stop = targetListStatic.offsetTop + headerHeight + targetHeight;
const docBody =
document.documentElement || document.body.parentNode || document.body;
const hasOffset = window.pageYOffset !== undefined;
const applySticky = function () {
// cross-browser compatible scrollTop.
const scrollTop = hasOffset ? window.pageYOffset : docBody.scrollTop;
// if user scrolls to headerHeight from the top of the target div
if (scrollTop >= stop) {
pageLegendCollapse.hide();
// stick the div
target.classList.add("sticky");
//target.style.marginTop = `${headerHeight}px`;
} else {
pageLegendCollapse.show();
// release the div
target.classList.remove("sticky");
target.style.marginTop = "";
}
}
applySticky();
window.addEventListener('scroll', applySticky);
})(header, pageLegendCollapse);
jQuery('span.show_moretoc').click(function () {
jQuery('span.show_moretoc').hide();
jQuery('.ms_hidetoc').show();
});
});