Lógica de negocio
Monero: las pruebas de reservas aceptaban la misma salida repetida y multiplicaban el saldo declarado
El verificador check_reserve_proof de la cartera de Monero no rechazaba entradas duplicadas, así que una sola salida repetida N veces hacía que una prueba de reservas válida declarase N veces el saldo real.
6 min
Monero GUI: un deeplink monero:// con tx_amount=(all) activa el modo «enviar todo el saldo»
La interfaz gráfica de Monero procesaba los enlaces monero:// externos sin validar el importe, de modo que el valor interno "(all)" colaba una transferencia de todo el saldo desbloqueado hacia la dirección del atacante.
3 min
Monero: un solo firmante malicioso de un multisig puede provocar un doble pago con la excusa de «datos obsoletos»
En los monederos multifirma de Monero, el último firmante podía guardarse una transacción ya firmada, alegar el error de «stale data» y conseguir que el grupo firmase otra al mismo destino. Al emitir ambas, el pago salía dos veces.
3 min
Monero GUI: la firma offline en carteras de solo lectura se salta el bloqueo de IDs de pago largos
En monero-gui, el botón «Create» de la firma offline de transacciones no comprobaba el aviso de ID de pago largo que sí bloquea «Send», lo que permitía preparar transacciones con metadatos sin cifrar que pueden vincular pagos.
4 min
Monero GUI rellenaba el destinatario con direcciones OpenAlias aunque fallase la validación DNSSEC
Al resolver un alias OpenAlias con DNSSEC inválido, Monero GUI mostraba un aviso de posible suplantación pero escribía igualmente la dirección en el campo de destinatario, abriendo la puerta a desviar pagos.
5 min
Nextcloud Approval: quitar el parámetro etag permite aprobar un fichero modificado después de revisarlo
La app Approval solo comprobaba que el fichero no había cambiado desde la revisión si la petición incluía el etag. Omitiéndolo, se podía aprobar o rechazar una versión distinta a la revisada.
3 min
Nextcloud files_lock: un colaborador con permiso de escritura podía bloquear para siempre un fichero ajeno
Un bloqueo de tipo TYPE_TOKEN colocado por quien tenía el fichero compartido no caducaba, el dueño no podía quitarlo y sobrevivía a la revocación del recurso compartido y al borrado de la cuenta. Solo se arreglaba tocando la base de datos.
4 min
Nextcloud Collectives: un "emoji" de página con texto largo y saltos de línea bloqueaba la barra lateral
El endpoint que cambia el emoji de una página de Collectives aceptaba cualquier cadena. Un texto largo con saltos de línea deformaba la barra lateral y tapaba el acceso a las demás páginas.
2 min
Robo del "cambio" en la firma en frío de Monero mediante un unsigned_txset falsificado
Un monedero caliente malicioso con la clave de vista podía reescribir la dirección de cambio de una transacción sin firmar en Monero, logrando que el firmante en frío firmara un output de cambio gastable por el atacante.
7 min
Saltarse la privacidad de Twitter para relacionar teléfonos y correos con cuentas
El flujo de login del cliente Android devolvía el ID de una cuenta a partir de su teléfono o email aunque el usuario hubiera desactivado esa opción; es el fallo detrás de la filtración de millones de cuentas.
2 min