Lógica de negocio
Errores en las reglas de la aplicación, no en el código de bajo nivel: aplicar un descuento dos veces, saltarse un paso de un proceso, usar cantidades negativas o aprovechar una condición de carrera. No hay herramienta que los detecte sola; hay que entender qué debería pasar y probar qué pasa de verdad.
Guía: Lógica de negocio, qué es y cómo se busca →Gutenberg (WordPress): el bloque experimental de formulario permitía enviar correos a cualquier destinatario sin autenticación
El bloque Form experimental de Gutenberg 22.2.0 aceptaba envíos anónimos por admin-ajax.php y mandaba el correo a la dirección que el cliente pusiera en formAction, convirtiendo la web en un relay para spam y phishing.
5 min
WordCamp.org: la pasarela Instamojo de CampTix daba entradas por pagadas sin comprobar de qué pedido era el pago
El complemento Instamojo de CampTix no ligaba cada pago a su pedido: una firma de webhook inválida dejaba la entrada como pendiente y un pago barato real podía completar otro pedido más caro.
6 min
Lovable: crear proyectos con visibilidad de pago sin suscripción editando el cuerpo de la petición
La API de Lovable aceptaba el valor de visibilidad enviado al crear un proyecto sin comprobar el plan: cambiarlo a Personal o Workspace bastaba para usar una función reservada a suscripciones superiores.
2 min
Un cupón de envío gratis filtrado en un reporte público se podía reutilizar sin límite en la tienda de merchandising de AWS
Un código de envío gratuito que había quedado sin tachar en un reporte divulgado seguía activo y la tienda de merchandising de AWS lo aceptaba en cualquier pedido, tantas veces como se quisiera.
3 min
Starknet Snap de MetaMask: cualquier web podía firmar mensajes sin confirmación del usuario con enableAuthorize=false
El Starknet Snap aceptaba de la propia web el parámetro enableAuthorize. Con el valor false se saltaba el diálogo de confirmación y la página obtenía firmas de mensajes o transacciones sin que el usuario las aprobara.
3 min
Lovable: invitar con rol de solo lectura sin plan Pro cambiando un parámetro de la petición
La API de Lovable no comprobaba el plan al crear enlaces de invitación: con una cuenta gratuita bastaba cambiar access_level de write a read para conceder "View access", una opción reservada al plan Pro.
3 min
HackerOne: el formulario de canje de recompensas entregaba licencias de Burp Suite Pro sin comprobar la cuenta
El canje de la licencia de Burp Suite Pro del programa de puntos de HackerOne era un formulario de Google sin ligar a la cuenta: bastaba con cambiar de email para recibir licencias válidas una y otra vez.
3 min
Nextcloud Deck acepta cualquier texto como color de etiqueta y deja inutilizable la gestión de etiquetas del tablero
La API de etiquetas de Nextcloud Deck no validaba el parámetro color. Cualquier miembro de un tablero podía guardar un valor arbitrario y dejar las etiquetas sin mostrarse ni gestionarse para todos los usuarios.
3 min
HEY enviaba con su propia firma DKIM correos suplantando cualquier dirección @hey.com, incluida la de soporte
Un usuario normal de HEY podía añadir cualquier dirección @hey.com como remitente externo y, borrando esa cuenta justo tras encolar el envío, conseguir que HEY entregase el correo firmado y validado con SPF, DKIM y DMARC.
5 min
Escalada a administrador en SAP CDC (Gigya) de Essity: campos críticos marcados como editables por el cliente
El esquema de SAP CDC que daba servicio a los sitios de Essity marcaba el campo del rol y otros datos de facturación como "clientModify", de modo que cualquier usuario registrado podía ascenderse a Admin desde el navegador.
6 min
Mozilla Pontoon: cualquier usuario con sesión podía retirar la aprobación de traducciones ajenas por un fallo lógico
Un error en la condición de permisos de /translations/unapprove/ en Pontoon, la plataforma de traducción de Mozilla, dejaba que cualquier usuario con sesión iniciada retirase la aprobación de cualquier traducción ya aprobada.
4 min
Mozilla Add-ons: un homoglifo Unicode permite usar "Mozilla" como nombre visible pese a estar prohibido
El filtro de nombres reservados de addons.allizom.org bloqueaba "Mozilla", pero aceptaba la misma palabra con la "M" sustituida por una letra cheroqui idéntica a la vista, lo que permitía hacerse pasar por la cuenta oficial.
2 min