El desarrollador de dos populares bibliotecas de JavaScript las saboteó, aparentemente en protesta por no recibir compensación financiera de las empresas por su trabajo. GitHub ha suspendido temporalmente su cuenta en lo que muchos considerarían una intervención injustificada.
Los dos proyectos de código abierto que preocuparon a las empresas y a las personas que confían en ellos a principios de esta semana son «faker.js» y «colors.js», ambos desarrollados y mantenidos originalmente por Marak Squires. El primero recibe 2,8 millones de descargas semanales y admite 2500 proyectos, mientras que el segundo se descarga 20 millones de veces a la semana y admite 19 000 proyectos.
Colores.js es una pequeña utilidad que le permite agregar texto en color a la salida de la consola. Según Paul Ducklin, blogueando sobre Naked Security:
el fundador del proyecto [Marak Squires], después de no publicar ninguna actualización desde 2019, de repente agregó un nuevo código para traer el número de versión de 1.4.0 al identificador de versión bastante inusual de 1.4.4-liberty-2.
El módulo llamado «bandera estadounidense» repetía la palabra «Libertad» y una bandera ASCII e introducía otras dos características no deseadas: un bucle sin fin que imprime la prueba prueba prueba… prueba una y otra vez:
La actualización también introdujo una función llamada zalgo que realiza la zalgoificación, una forma de hacer que los caracteres normales se vean extraños al agregar diacríticos falsos como acentos, cedglie y diéresis. El texto Zalgoed no solo no tiene sentido, sino que también supone una gran carga para el software de representación de texto subyacente que tiene que mostrarlo.
Faker.js genera datos ficticios con fines de prueba y, en lugar de corromper su código, Squires lo eliminó. Squires había informado previamente su insatisfacción con su repositorio con un mensaje de hace más de un año:
Aunque este mensaje sugiere una razón pecuniaria, al eliminar el código que se ejecutó usando el mensaje de confirmación del final del juego, Squires reemplazó el texto Léame con la pregunta «¿Qué pasó realmente con Aaron Swartz?». Esto, por supuesto, es una referencia al activista de Internet que, como se informó en ese momento en 2013, presuntamente se suicidó mientras enfrentaba un juicio por robar 4,8 millones de artículos del archivo de la revista JSTOR que, en su opinión, no deberían estar detrás de un muro de pago a través de Internet. red del MIT, con el objetivo de que estén disponibles gratuitamente en línea. Se sabe que Squires suscribe la teoría de que Swartz pudo haber sido asesinado en prisión.
Además de restaurar ambos repositorios al registro npm, Github también suspendió el acceso de Squire, aunque temporalmente, al decirle a The Independent:
«GitHub se compromete a garantizar la integridad y la seguridad del registro de npm. Eliminamos los paquetes maliciosos y suspendimos la cuenta de usuario de acuerdo con la política de uso aceptable de malware de npm, tal como se establece en nuestros Términos de código abierto».
Cualquier suspensión parece irrazonable considerando que el código en los repositorios pertenece a su creador/mantenedor. Sí, es de código abierto, ya que puede bifurcarlo y contribuir, pero ¿eso significa que GitHub está justificado al negarle el derecho a modificar o incluso destruir su código? ¿Dónde está el «debido proceso» en estas decisiones? ¿Dónde está el derecho de apelación? GitHub actúa como jurado y verdugo del juez en estos asuntos y, si bien puede estar de acuerdo con su acción actual, ¿qué sucede cuando se equivoca?
La otra pregunta planteada por estos eventos es cómo recompensar adecuadamente a las personas por el trabajo que han dedicado al software de código abierto que sustenta otro software más grande que permite a las mega corporaciones obtener enormes ganancias. En este caso, estas bibliotecas de JavaScript son utilizadas por Amazon Cloud Development Kit, parte de AWS. Si bien colors.js y faker.js se benefician del patrocinio que tiene como objetivo garantizar que las comunidades de código abierto reciban un pago por el trabajo que realizan, existe una gran discrepancia en lo que los desarrolladores que han concebido e implementado paquetes populares como colors .js y faker. js reciben y su valor para las empresas que reutilizan su trabajo de forma gratuita.