Después de la salida de la actualización de la herramienta de sincronización de archivos rsync 3.4.3 con la corrección de 6 vulnerabilidades, se han observado regresiones que afectan la funcionalidad de configuraciones previamente utilizadas. Además, la inclusión de aproximadamente 50 cambios en el repositorio de rsync en las últimas dos semanas, preparados con el uso del modelo de IA Claude, ha generado confusión y descontento. Algunos usuarios han vinculado la aparición de regresiones con la generación de correcciones de vulnerabilidades de baja calidad mediante IA.
Algunas de las regresiones en rsync 3.4.3:
- Comenzaron a fallar los comandos para la creación incremental de copias de seguridad donde se especificaron múltiples opciones «—compare-dest»;
- Se volvió
imposible compilar rsync en sistemas con núcleos de Linux anteriores a la versión 5.6 debido a la utilización de la llamada del sistema openat2 (commit 1, commit 2); - Dejó de funcionar el formato «host::módulo/ruta» (commit).
- Dejaron de ser reconocidos los comandos que usan la opción
«—delete-missing-args» junto con «—files-from» (commit). - Al sincronizar, comenzaron a aparecer errores sobre el valor modtime_nsec fuera del rango permitido.
- La compilación falló en versiones antiguas de macOS.
- Se modificó el comportamiento de la opción «—link-dest» (commit).
- Se produjeron fallos al iniciar en el multiplexor de terminales tmux.
Andrew Tridgell, fundador de los proyectos samba y rsync, que regresó a dar soporte a rsync hace dos años y añadió commits problemáticos, publicó una nota explicando la situación. Según Andrew, el proyecto rsync se ha enfrentado a una avalancha de informes sobre vulnerabilidades, muchos de los cuales fueron generados a través de IA. En la versión rsync 3.4.3, la aparición de regresiones ha sido el precio a pagar por la eliminación de vulnerabilidades. Andrew prefirió conscientemente corregir las vulnerabilidades, a pesar de que las soluciones pudieran romper ciertos escenarios de uso raros pero correctos de rsync. Tales escenarios no fueron cubiertos por el antiguo conjunto de pruebas y las verificaciones manuales, por lo que las regresiones pasaron desapercibidas y se corregirán en la siguiente versión 3.4.4.
La situación actual llevó a Andrew a actualizar su conjunto de pruebas, introducir una verificación de la cobertura del código e implementar pruebas en un sistema de integración continua en diferentes plataformas, así como a realizar un análisis de vulnerabilidades potenciales. Dado que Andrew ya tiene casi 60 años y preferiría viajar en yate en lugar de dedicar su tiempo a solucionar vulnerabilidades en rsync, decidió involucrar asistentes de IA para manejar tareas rutinarias en medio de una avalancha de mensajes sobre vulnerabilidades. Andrew diseñó la arquitectura, el plan de verificación y la estructura del nuevo conjunto de pruebas, luego generó este último en Python con la ayuda de la IA y reemplazó el script de shell previamente utilizado. Se empleó el modelo Claude con una verificación manual del resultado y revisión cruzada en Codex y Gemini.
Fuente: opennet.ru
