Un desarrollador parece haber corrompido a propósito un par de bibliotecas de código abierto en GitHub y el registro de software npm, “faker.js” y “colors.js“, de las que dependen miles de usuarios, lo que hace que cualquier proyecto que contenga estas bibliotecas sea inútil, como ha informado Bleeping Computer. Si bien parece que colors.js se ha actualizado a una versión funcional, faker.js aún parece estar afectado, pero el problema se puede solucionar cambiando a una versión anterior (5.5.3).
Las versiones saboteadas causan aplicaciones que reproducen letras y símbolos extraños aleatoriamente en un ciclo infinito
Tweet
Bleeping Computer descubrió que el desarrollador de estas dos bibliotecas, Marak Squires, introdujo una confirmación maliciosa (una revisión de archivo en GitHub) en colors.js que agrega “un nuevo módulo de bandera estadounidense“, así como también lanzó la versión 6.6.6 de faker.js, desencadenando el mismo giro destructivo de los acontecimientos. Las versiones saboteadas hacen que las aplicaciones emitan infinitamente letras y símbolos extraños, comenzando con tres líneas de texto que dicen “LIBERTAD LIBERTAD LIBERTAD“.
Aún más curioso, el archivo Leeme de faker.js también se ha cambiado a “¿Qué pasó realmente con Aaron Swartz?” Swartz fue un destacado desarrollador que ayudó a establecer Creative Commons, RSS y Reddit. En 2011, Swartz fue acusado de robar documentos de la base de datos académica JSTOR con el fin de hacerlos de libre acceso, y luego se suicidó en 2013. La mención de Squires de Swartz podría referirse a teorías de conspiración en torno a su muerte.
Como señaló Bleeping Computer, varios usuarios, incluidos algunos que trabajan con el kit de desarrollo en la nube de Amazon, recurrieron al sistema de seguimiento de errores de GitHub para expresar sus preocupaciones sobre el problema. Y dado que faker.js ve casi 2,5 millones de descargas semanales en npm, y colors.js obtiene alrededor de 22,4 millones de descargas por semana, es probable que los efectos de la corrupción sean de gran alcance. Para el contexto, faker.js genera datos falsos para demostraciones, colors.js agrega colores a las consolas de JavaScript.
En respuesta al problema, Squires publicó una actualización en GitHub para abordar el “problema de zalgo“, que se refiere al texto defectuoso que producen los archivos corruptos. “Nos ha llamado la atención que hay un error de zalgo en la versión v1.4.44-liberty-2 de colors”, escribe Squires de una manera presumiblemente sarcástica. “Sepan que estamos trabajando en este momento para solucionar la situación y pronto tendremos una resolución”.
Dos días después de enviar la actualización corrupta a faker.js, Squires luego envió un tweet en el que señalaba que había sido suspendido de GitHub, a pesar de almacenar cientos de proyectos en el sitio. Sin embargo, a juzgar por el registro de cambios tanto en faker.js como en colors.js, parece que su suspensión ya se ha levantado. Squires presentó el compromiso faker.js el 4 de enero, fue prohibido el 6 de enero y no presentó la versión “libertad” de colors.js hasta el 7 de enero. No está claro si la cuenta de Squires ha sido prohibida nuevamente.
Sin embargo, la historia no termina ahí. Bleeping Computer desenterró una de las publicaciones de Squires en GitHub de noviembre de 2020, en la que declara que ya no quiere trabajar gratis. “Respetuosamente, ya no voy a apoyar a Fortune 500 (y otras empresas de menor tamaño) con mi trabajo gratuito”, dice. “Aproveche esto como una oportunidad para enviarme un contrato anual de seis cifras o bifurcar el proyecto y hacer que alguien más trabaje en él”.
El movimiento audaz de Squires llama la atención sobre el dilema moral y financiero del desarrollo de código abierto, que probablemente era el objetivo de sus acciones. Una gran cantidad de sitios web, software y aplicaciones dependen de desarrolladores de código abierto para crear herramientas y componentes esenciales, todo de forma gratuita. Es el mismo problema que hace que los desarrolladores no remunerados trabajen incansablemente para solucionar los problemas de seguridad en su software de código abierto, como el susto de Heartbleed en 2014 que afectó a OpenSSL y la vulnerabilidad más reciente de Log4Shell encontrada en log4j que dejó a los voluntarios luchando por solucionarlo.
