Reports
MEDIA[OTROS]#3168691

HackerOne: perfiles que seguían enlazando a ficheros .zip maliciosos tras corregir la validación de redes sociales

HackerOne corrigió la validación de los enlaces a redes sociales de los perfiles, pero no limpió los ya guardados: algunos perfiles seguían descargando ficheros .zip al pulsar el botón de GitHub.

Resumen
Resumen en castellano de un reporte público, no una traducción literal. El código y los comandos se mantienen como en el original.

Resumen

En la página de edición del perfil de HackerOne (profile/edit) cada usuario puede añadir sus cuentas de redes sociales indicando su nombre de usuario en cada plataforma. Antes de este reporte se habían comunicado al menos dos fallos (#2619438 y #2483422) que mostraban que ese campo no se validaba ni se limpiaba bien: con un nombre de usuario manipulado se podía construir una URL a medida en la red social. Solo los enlaces de Twitter estaban saneados, lo que dejaba un control de seguridad incoherente entre plataformas.

El truco permitía, por ejemplo, que el botón de GitHub de un perfil apuntara no a la página del usuario en GitHub, sino a un fichero .zip alojado en un repositorio, de modo que quien lo pulsaba se descargaba el archivo directamente.

HackerOne corrigió esos fallos, pero el investigador joejoe5 comprobó que la corrección no había limpiado los datos ya guardados: algunos perfiles seguían conservando los enlaces manipulados creados antes del arreglo. Es decir, el fallo de validación de entrada (CWE-20, Improper Input Validation) estaba atendido, pero los payloads antiguos seguían activos, a la espera de que alguien pulsara el botón.

  • Programa: HackerOne (security)
  • Severidad: media
  • Recompensa: sí, importe no público
  • Enviado: 30 de mayo de 2025
  • Divulgado: 16 de abril de 2026

Pasos de reproducción

  1. Abrir el perfil público https://hackerone.com/tedix y fijarse en el destino de su botón de GitHub, que no lleva a un perfil sino a un fichero comprimido:
https://github.com/Tedixx/i/raw/i/i.zip
  1. Abrir el perfil https://hackerone.com/joejoe5 (el del propio investigador) y comprobar su botón de GitHub, que también apunta a un .zip:
https://github.com/p091/1/raw/main/1。zip
  1. Pulsar cualquiera de los dos botones: el archivo se descarga sin ningún aviso.

Impacto

Según el reporte, un atacante puede construir sus propios payloads siempre que tengan menos de 25 caracteres. Con ellos se puede:

  • Entregar ficheros maliciosos a quien visite el perfil y pulse el botón de una red social, con la apariencia de un enlace legítimo dentro de HackerOne.
  • Provocar redirecciones.
  • Intentar XSS o aprovechar otros fallos o gadgets de las propias plataformas sociales a las que se enlaza.

Como los valores manipulados ya estaban almacenados, la corrección previa no protegía a quien visitara esos perfiles: el ataque seguía funcionando igual que antes del arreglo.

Remediación

El reporte consta como resuelto, pero no detalla qué cambió HackerOne. El investigador proponía:

  • Revisar todos los perfiles de usuario, con scripts propios o herramientas de análisis, para localizar y eliminar los enlaces sociales manipulados que quedaran.
  • No limitarse a validar cuando el usuario envía el formulario: volver a analizar periódicamente los perfiles existentes (por ejemplo, revisar cada semana los enlaces a redes sociales de todos los usuarios).