ConceptoBloque 4 · Pull requests y forks
El caso XZ Utils, marzo de 2024
Qué pasó
En marzo de 2024, Andres Freund, ingeniero de Microsoft, notó que los inicios de sesión por SSH en su Debian de pruebas tardaban unos 500 ms en lugar de unos 100 ms, y que el proceso gastaba más CPU de lo normal. Medio segundo parece nada, pero son cinco veces más de lo que tardaba antes.
Al investigar encontró una puerta trasera escondida en XZ Utils, una librería de compresión que usa casi todo Linux, en sus versiones 5.6.0 y 5.6.1.
- Esas versiones solo habían llegado a distribuciones de pruebas e inestables, y se retiraron antes de llegar a las estables.
- Quien metió el código llevaba años ganándose la confianza del proyecto, y otras cuentas presionaban para que las distribuciones adoptaran pronto la versión nueva.
La lección
- Una revisión sirve solo si quien revisa mira de verdad.
- Una regla que obliga a pasar por un PR evita que una sola persona, aunque sea de confianza, cambie
mainsin que nadie más lo vea.
Matiz: no fue un pull request al kernel de Linux, sino código en una librería que usa Linux, y lo detectó una persona que midió tiempos, no una revisión de código. Se usa como ejemplo de por qué el proceso importa.