Ir al contenido

Why I continue to maintain ctop as a fork

The original was shut down in 2022. I use the tool daily and took it over instead of letting it go.
9 de agosto de 2026 por
Why I continue to maintain ctop as a fork
IT-Guy
ctop Código abierto Fork Mantenimiento Seguridad

Por qué continúo manteniendo ctop como Fork

El proyecto original fue abandonado en 2022. Utilizo esta herramienta diariamente y la he asumido en lugar de abandonarla.

?
2026-08-07

Cuatro años sin lanzamiento

El último lanzamiento de bcicen/ctop lleva la versión 0.7.7 y data del 22 de marzo de 2022. El último commit en el repositorio es del 1 de agosto de 2022. Desde entonces: nada.

Esto no es una acusación. Quien lleva un proyecto de código abierto durante años por su cuenta puede decidir dejarlo. Sin embargo, eso no cambia el hecho de que el software sigue funcionando en mis servidores y entornos de desarrollo, todos los días.

He utilizado ctop durante años sin revisar nunca el código. En algún momento,govulncheckdetectó la primera vulnerabilidad en una dependencia, y quedó claro que nadie la corregiría.

Lo que encontré al asumir el proyecto

El código estaba bien escrito, pero correspondía al año 2022.io/ioutil en lugar de os, un paquete de registro que no se ha mantenido durante años, una biblioteca UUID de una cuenta eliminada.

Tres hallazgos de la primera ronda fueron graves.container.Exec() permitía introducir datos de usuario a través de sh -c , lo que permitía una inyección de shell. El archivo de configuración se creó con permisos de lectura para todos. Y el servidor de depuración se vinculó a 0.0.0.0, por lo que era accesible en toda la red en cuanto alguien CTOP_DEBUG=1 lo establecía.

Más tarde, en el conector runC, se añadió un cuarto: un canal que nunca se inicializó. Los envíos y recibos en él bloquean en Go para siempre. El código funcionaba solo porque en la práctica este camino rara vez se alcanzaba.

Por lo que respondo

No prometo nuevas funciones cada mes. Lo que prometo es más estrecho y, por tanto, más robusto.

Las dependencias se mantienen actualizadas. Dependabot revisa semanalmente los módulos Go, GitHub Actions y la imagen base de Docker, y govulncheck se ejecuta en la pipeline de compilación y se detiene si una vulnerabilidad conocida se filtra.

Los problemas de seguridad se parchean, no se documentan y se dejan pendientes. Cuando runc informó de tres escapes de contenedor en otoño de 2025, hubo una versión de lanzamiento al respecto, y en noviembre, tras revisar, otra versión más.

Las compilaciones están disponibles para cinco plataformas. Cada versión de lanzamiento incluye binarios para Linux, macOS y Windows junto con sus sumas SHA256, una imagen multiarquitectura en GHCR y una fórmula de Homebrew actualizada. Esto se activa mediante una etiqueta Git; el resto lo gestionan GitHub Actions.

Lo que el fork no será

Sin Rewrite. Sin carrera de características con lazydocker o k9s. ctop sigue siendo una herramienta que hace una cosa.

Aún así, se avecina un cambio mayor. Las dos bibliotecas en las que se basa la interfaz de terminal, gizak/termui y nsf/termbox-go, ya no se mantienen. El plan para la migración al Charm-Stack está disponible como un documento de seis fases en el repositorio. Todavía no he comenzado.

Lo que puede hacer la herramienta hoy y cómo instalarla se encuentra en la descripción del proyecto. Si utiliza ctop y algo falta o falla: hay Issues abiertos y Pull Requests también.

Why I continue to maintain ctop as a fork
IT-Guy 9 de agosto de 2026
Archivo
ctop 0.8.8: Debug dumps no longer reveal passwords
Two releases, one theme. What changed in ctop regarding credentials, runc, and the build chain.