1 puntos por GN⁺ 2023-07-28 | 1 comentarios | Compartir por WhatsApp
  • En un issue de GitHub, una discusión sobre configurar un registro en 0 fue interpretada como una mención al usuario @reset, lo que provocó que se enviaran notificaciones por email repetidas a la persona equivocada
  • La causa es que GitHub interpreta automáticamente cadenas como @reset como menciones, haciendo que una palabra en un contexto técnico termine invocando a un usuario real
  • Handles cortos que coinciden con términos técnicos o placeholders, como @boxed, @stack, @else, @font y @acme, sufren problemas similares de notificaciones
  • Se sugirió usar backticks o evitar @[any_text], pero como las notificaciones también pueden generarse en mensajes de commit y comentarios de PR/issues, es difícil evitarlas por completo
  • Se sabe que el usuario @reset comentó en Hacker News que se lo toma con humor y lo disfruta, pero los handles cortos y comunes chocan fácilmente con la función de menciones automáticas de las herramientas de desarrollo

El incidente de la mención a @reset

  • Adrian Sampson se disculpó por una situación en la que, al hablar en GitHub sobre configurar registros en 0, terminó enviándole una notificación por email al usuario @reset
  • El comentario enlazado corresponde a un comentario de issue del repositorio cucapra/calyx, y el problema central fue que @reset se interpretó como un nombre de usuario de GitHub
  • En el contexto técnico de “setting registers to zero”, la palabra reset aparecía de forma natural, y al agregársele @ se convirtió en una mención a un usuario real

Notificaciones equivocadas que reciben los handles cortos

  • Los handles que coinciden con términos técnicos o identificadores comunes son propensos a recibir notificaciones no intencionales en varios servicios
    • El usuario @boxed usa el mismo nick en GitHub y Mastodon, y dice que recibe muchas notificaciones de GitHub porque la gente escribe @boxed en mensajes de commit
    • El usuario @stack dice que, en cierto lenguaje, cuando una variable relacionada con pilas lleva @, recibe mensajes automáticamente
    • Un usuario que usaba @else terminó abandonando ese handle por la cantidad de PRs y comentarios que le llegaban como notificaciones
    • El usuario @acme recibe muchas notificaciones porque coincide con placeholders de varios frameworks
    • En conversaciones sobre CSS, aparece el caso de que el usuario @font sigue sufriendo molestias cuando se habla de @font-face

La dificultad de evitar las menciones automáticas de GitHub

  • Como refleja la reacción de que “el carácter @ no se puede escapar”, el procesamiento de menciones automáticas de GitHub se señala como la causa principal
  • Surgió el consejo de no escribir directamente @[any_text] en issues o PRs de GitHub
  • También se propuso que envolver el texto en backticks podría ayudar
  • En espacios de texto que los desarrolladores usan con frecuencia, como código, comentarios, mensajes de commit y comentarios de issues, las formas @palabra pueden chocar con nombres de usuario

Casos relacionados que se volvieron chiste

  • La situación se interpretó como un efecto secundario de elegir identificadores cortos y comunes
  • Hubo reacciones que la compararon con la historia de un investigador de seguridad que compró la placa NULL y empezó a recibir multas de tránsito no asignadas
  • Algunas personas recordaron el caso de Steve Wozniak, que obtuvo el número telefónico 888-8888 y luego recibía llamadas de niños que presionaban repetidamente los botones
  • Un usuario que usaba el nombre pokes en IRC contaba que recibía muchos mensajes privados porque la gente escribía mal /me pokes [name] como /msg
  • En Mastodon también se mencionó que una carita como @_@ puede enviar notificaciones al usuario @_ de cierta instancia

La reacción del usuario @reset

  • Se sabe que el usuario @reset dejó un comentario en Hacker News diciendo, en esencia, que responde cada vez que recibe una notificación, se ríe y de hecho lo disfruta
  • Las respuestas posteriores transmitían alivio por saber eso
  • Aun así, el conjunto de casos muestra que, cuando handles cortos y comunes se combinan con funciones de mención automática en plataformas de desarrollo, pueden enviarse notificaciones repetidas a personas no previstas

1 comentarios

 
GN⁺ 2023-07-28
Opiniones de Hacker News
  • @reset por aquí. Siempre respondo cuando me mencionan con @. Es gracioso y, además, la verdad es que me divierte mucho ver después qué está construyendo la gente.
    Ojalá sigan haciéndolo; es una parte bastante entretenida de mi día.

    • Me encantó la respuesta que dejó en el PR enlazado. Algo así puede ser muy molesto o muy divertido, y da gusto ver que se lo tomó con sentido del humor.
    • Mi cuenta era @username, pero un día GitHub la cambió de golpe a usernamex.
    • Por la misma razón conseguí la cuenta sshole.
  • Antes trabajé en Realm, una empresa de bases de datos móviles. Teníamos una integración que reenviaba a Slack las menciones a @realm en Twitter para ver qué estaba pasando.
    Una mañana, el canal #twitter estaba lleno de contenido casi pornográfico. Hombres jóvenes con ropa reveladora presumían sus abdominales y sonreían a la cámara.
    Resultó que alguien había conectado un bot que republicaba posts de Instagram en Twitter, pero Instagram permite puntos en los nombres de usuario y Twitter no. La cuenta de IG probablemente era @realm.of.beauty, y Twitter la interpretó directamente como @realm.

    • A mí también me pasaba bastante con menciones de Instagram en Twitter por ser @cmg, y la gente me confundía con CheckMate Gaming, Canadian Media Guild, Cocaine Muzik Group, Chipotle Mexican Grill y de todo un poco.
    • Me pasó algo parecido. El nombre de un foro público era una sigla, y esa misma sigla también se usaba en un fetiche gay de nalgadas con paleta.
      Al revisar nuestro hashtag o menciones, de vez en cuando veíamos a un actor joven recibiendo de forma provocativa golpes en las nalgas desnudas con algo como un bate de críquet.
    • Uso @CommonFirstNameCommonLastName en Twitter, y a veces me mencionan o me mandan DM personas que me confunden con alguien totalmente distinto. No pasa tan seguido, así que no me molesta demasiado.
  • En un trabajo anterior decidimos crear un canal de Slack con el nombre de una directiva del preprocesador de C. Creo que era #define o #endif. Algunos lo encontraron y entendieron el chiste.
    Pero unos meses después, un administrador me contactó para preguntarme si podía borrar ese canal. En organizaciones grandes, Slack sabe qué canales no deberían ser visibles para otras partes de la organización, y por eso estaba censurando menciones a directivas del preprocesador de C para personas fuera de mi grupo ^^;

    • Entonces aprenderán a ponerlas dentro de bloques de código.
    • Es gracioso que Slack, al intentar bloquear la mención, terminara revelando la existencia de un canal privado.
  • Una vez pegué por accidente un backtrace en un issue de GitHub sin usar un bloque de código. La pila era profunda y cada línea empezaba con “#0”, “#1”, “#2”, etc., y GitHub convirtió todo eso en enlaces a los issues con esos números.
    Incluso envió notificaciones de referencia inversa a cada issue, y no parecía haber forma de revertir ese comportamiento.

    • Donde tuve un problema más grande con las referencias a issues fue en los mensajes de commit. Un repositorio que usábamos como plantilla tenía en los mensajes de commit “Fixes #123” para cerrar tickets de ese repositorio plantilla.
      El problema era que, al fusionar la plantilla actualizada en repositorios derivados, también se cerraban los issues de cada repositorio derivado.
    • En el rastreador de issues de GitLab de QEMU, intencionalmente empezaron los números de issues desde una cifra más alta. Creo que alrededor de 100.
      Se toparon con este problema muy al inicio de la migración desde Launchpad, así que solo tuvieron que renumerar dos o tres issues que ya se habían creado con números bajos, y no fue gran cosa.
    • En esos casos debería existir obligatoriamente un botón de deshacer que aparezca de inmediato.
  • A veces la gente que sufre bugs me etiqueta con @ solo porque contribuí recientemente al repositorio. En esos casos, simplemente respondo “LGTM Approved” y la gente se enoja.
    No me importa qué hagan check-in en ese proyecto. No es mi proyecto.

  • Una vez cambié mi número de celular para que los últimos 8 dígitos fueran 69696969. Me pareció súper gracioso.
    Luego descubrí que la gente había escrito ese número al azar en todos los cubículos de baños, con frases como “si quieres pasarla bien llama a XYZ69696969”, y recibía llamadas todas las noches sin parar.

    • Steve Wozniak usó 888-8888 por un tiempo. Es un número genial, pero recibía cientos de llamadas con solo ruidos aleatorios de fondo.
      Después se supo que eran bebés presionando botones en los celulares de sus padres, y parece que un número compuesto solo por 8 era fácil de marcar para los bebés.
      https://www.wired.com/1998/09/woz/
    • Tengo varios números 867-5309 de distintas regiones. Hoy en día los dejé sin hacer nada, pero durante un tiempo los conecté a una PBX y llegaban hasta 2,500 llamadas por día en cada línea. Había muchos tipos borrachos intentando llamar a Jenny.
    • Me sorprende que la gente de verdad llame a esos números.
    • El famoso futbolista alemán Franz Beckenbauer pidió 66666666 durante una promoción de un proveedor de telefonía móvil, y de forma parecida recibió llamadas de noche.
      https://www.spiegel.de/panorama/falsche-nummer-beckenbauers-...
  • GitHub tiene algunas funciones bastante peligrosas con etiquetas y menciones. Por ejemplo, al agregar a alguien a una organización, el nombre de usuario se autocompleta.
    Había una persona con un nombre común, y una vez agregamos por error a la organización a otra persona con un nombre parecido. Por suerte la eliminamos antes de que aceptara la invitación y agregamos a la persona correcta.

    • Totalmente. Esto es muy molesto. Te hacen pasar por todo tipo de procedimientos para demostrar el origen del código y usar varias capas de cifrado, pero hicieron demasiado fácil darle permisos de escritura sobre todo el código de la empresa a una persona que no tiene nada que ver.
    • A mí también me pasó. Acepté la invitación, vi lo que tenían ahí y luego abrí un issue/PR pidiendo que me eliminaran. Ellos entraron en pánico y a mí me dio un poco de risa.
  • En GitHub a veces me etiquetan como una zona horaria.

    • Me pregunto cómo consiguió ese nombre de usuario. Los nombres cortos desaparecen rapidísimo; quizá estuvo entre los primeros 1,000 usuarios.
  • Se me ocurrió una vía de spam interesante. Basta con crear un PR que publicite algo y luego arrobar a un montón de gente scrapeada.
    La vía de ataque también es interesante: conseguir un nombre @ fácil de confundir y esperar a ver si te conviertes en reviewer de algún PR. Luego agregas código malicioso a ese PR y lo mergeas.
    Además, cuando configuras permisos de acceso de seguridad de una organización en el trabajo, también es una estupidez que en la búsqueda combinada puedas agregar a cualquier persona del mundo. Ni siquiera hay una opción para filtrar solo dentro de la organización.
    Y la mayoría usa handles raros en GitHub, ya sea laboral o personal. Así que, para usar la UI, una persona tiene que convertirse en un excelente comparador de cadenas, o averiguar el handle de cada quien y copiarlo y pegarlo uno por uno.
    Un tercer ataque sería crear un montón de cuentas con nombres parecidos a los empleados de la empresa objetivo y esperar a que, por error, las agreguen al repositorio de la organización.

  • Me llevé una sorpresa bastante incómoda al enterarme de que, si enlazas un issue de GitHub de otro repositorio, se crea un backlink en el issue enlazado. Aunque borres el enlace, no se revierte; tienes que eliminar el issue por completo.
    Ojalá se pudiera desactivar esta función.

    • Justo hoy descubrí esto. Me sorprendió bastante ver un enlace a un PR de nuestro repositorio privado debajo de un issue en un repositorio público.
      Por suerte desaparecía en modo incógnito, y tampoco se veía al iniciar sesión con otra cuenta. No es que lo vea todo el mundo, pero durante un momento fue una sorpresa bastante desagradable.
    • https://github.com./a/b” o “https://www.github.com/a/b” también funcionan como workaround.
      Pero que no desaparezca aunque lo edites para quitarlo, o incluso aunque borres el comentario que contenía ese enlace, es increíblemente tonto y molesto.
    • Está bien. No le manda notificaciones a nadie. Si no estás haciendo algo vergonzoso o spam, probablemente a nadie le importe.
      Poder ver qué efecto tiene un issue en otros proyectos es bueno y puede ser información bastante útil.
    • Si de verdad quieres evitarlo, creo que podrías ocultarlo usando un acortador de enlaces como bit.ly detrás del Markdown. No lo he probado.
      Eso sí, ojalá solo lo hagas en repositorios personales donde solo tú contribuyes. Si no, para quien haga clic se ve extremadamente sospechoso.