PDA

Ver la Versión Completa : Posible bug en PureFTP resulta en error "Could not read from transfer socket ECONNRESET"


Apolo
14-nov-2010, 00:35
Cosas que pasan con estos software FTP. Cuando no es un grave problema de seguridad en ProFTPd (http://www.comunidadhosting.com/paneles-y-software/13191-proftpd-remote-code-execution-vulnerability-exploit.html), es algún posible bug en PureFTPd, la opción al parecer más usada por los usuarios de cPanel.

De un momento para otro, los clientes FTP dejaron de funcionar correctamente. En algunos casos generando un mensaje de error y omitiendo el listado de los contenidos de los directorios y en otros casos listando los contenidos, pero de manera parcial.

Después de varios correos de ida y vuelta con el soporte de cPanel, a esto hemos llegado:

El servidor FTP lista todos los ficheros en el directorio y los pone en un buffer. Si el tamaño de ese buffer es superior a los 1500 bytes de la MTU, el servidor intenta enviarlo en trozos, pero a la señal de envío (write call) le sigue casi inmediatamente otra señal para terminarlo (close call). Por tanto, el servidor no espera a que el sistema termine de vaciar el buffer antes de enviar la señal para cerrar o terminar la llamada. Y esto causa que el sistema operativo aborte la transferencia TCP y todos los bytes que quedaron en el buffer son eliminados.

En algunos clientes FTP, como por ejemplo FileZilla, esto resulta en un error similar a:

Error: Could not read from transfer socket: ECONNRESET - Connection reset by peer
Error: Failed to retrieve directory listing

Y entonces no se listan los contenidos del directorio.

En otros clientes FTP, como por ejemplo WinSCP, esto resulta en un listado parcial de los contenidos del directorio... supongo que lo que cabe en el primer trozo enviado de acuerdo con el límite de la MTU. Sin embargo, en algunas pruebas parece ser que WinSCP lo lleva mucho mejor, pues en algunas ocasiones logra listar los contenidos completos del directorio.

Debo reconocer que el soporte de cPanel se ha portado a la altura, tomando muy en serio el asunto desde el primer reporte que les he enviado. He reportado ya el posible bug a los desarrolladores de PureFTPd, así que será cuestión de esperar por su respuesta.

Saludos.