¿Entregaste tus carteras cripto a robots? Revisa el saldo antes de que acabe en manos ajenas

¿Entregaste tus carteras cripto a robots? Revisa el saldo antes de que acabe en manos ajenas

La máquina cumplía las instrucciones a rajatabla, pero las condiciones las imponía otra parte.

image

Una solicitud habitual a una API de pago podría haber acabado con el agotamiento de todo el saldo de un monedero de criptomonedas si el pago lo gestionaba un agente de IA sin límites. La empresa V12 detectó 25 vulnerabilidades en las herramientas del protocolo x402 para pagos automáticos. Tres errores fueron catalogados como críticos, otros 13 como de alta gravedad y nueve como de gravedad media o baja.

El protocolo x402 permite pagar durante una solicitud al servidor. En lugar de la respuesta habitual, el servicio devuelve un código HTTP 402 con el precio, la dirección del destinatario y la opción de pago. El cliente firma el pago y repite la solicitud. El mecanismo resulta útil para agentes autónomos, pero exige reglas estrictas de gasto. Un riesgo similar se había detectado antes en protocolos de pago para IA.

La principal amenaza para los monederos residía en la configuración predeterminada del cliente. El programa escogía la primera condición de pago ofrecida por el servidor sin límite de cantidad. Un atacante con control del API podía solicitar todo el saldo del token correspondiente. Si el agente firmaba los pagos automáticamente y la aplicación no establecía límites propios, la transferencia podía realizarse sin confirmación adicional.

Otra vulnerabilidad afectaba a pagos en la red Solana. Un componente en TypeScript aceptaba una autorización para debitar tokens por una transferencia real, aunque los fondos en realidad no se movían. En una verificación local, V12 obtuvo la confirmación de un pago exitoso sin la transferencia de fondos. El vendedor podía entregar un recurso de pago de forma gratuita, y el servicio de verificación incluso habría cubierto la comisión de la red.

El tercer error afectaba al inicio de sesión en sitios mediante monedero criptográfico. El cliente Sign-In-With-X firmaba el mensaje del servidor sin comparar el dominio indicado con la dirección del sitio visitado. Un servicio controlado por el atacante podía obtener la firma para otro recurso e intentar secuestrar la sesión del usuario. La verificación confirmó la creación de dicha firma, pero no el secuestro de una cuenta real.

V12 informó sobre tres errores críticos y 13 peligrosos a los desarrolladores de x402 el 12 de agosto. Para el 20 de agosto se corrigieron los problemas críticos, y el 9 de septiembre la empresa envió otras nueve incidencias. Los especialistas de Orbis AppSec revisaron los cambios en el código fuente y relacionaron las correcciones con las versiones del 18 de agosto. Por ahora no hay ataques confirmados contra monederos reales.

En las versiones TypeScript 2.23.0, Python 2.20.0 y Go v2.23.0 se introdujo un límite de un dólar por pago y se permitieron únicamente monedas estables en dólares reconocidas. El presupuesto total de gastos lo establece el desarrollador por separado. Las correcciones no se marcaron como eliminación de vulnerabilidades ni se publicaron advertencias. Para las tres fallas críticas no se han publicado las puntuaciones CVSS ni la versión de la escala.

V12 también ofrece un sistema autónomo de auditoría de código. El servicio se conecta a los repositorios, comprueba los cambios, muestra el fragmento peligroso, la prueba para reproducir el error y una opción de corrección. Las comprobaciones se pueden ejecutar en cada actualización del proyecto. Otras empresas desarrollan una auditoría automática similar, pero las correcciones propuestas aún requieren la revisión de los desarrolladores.