Según informes de medios , un atacante puede
- sube una biblioteca a un recurso compartido de Samba y luego
- abra una canalización con nombre cuyo nombre sea igual a la ruta local a la biblioteca cargada
para ejecutar de forma remota el código contenido en la biblioteca.
¿Cómo funciona? ¿Es este un "clásico" desbordamiento de búfer? ¿O es Samba engañado para ejecutar algún código de carga de biblioteca legítimo? Si es así, ¿cómo? ¿Hay algo que nosotros, como desarrolladores, podamos aprender de esto? He comprobado los recursos en línea habituales, pero principalmente contienen información sobre cómo protegerse si usted es un usuario de Samba.
Tratando de encontrar la respuesta, he mirado el parche :
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -475,6 +475,11 @@ bool is_known_pipename(const char *pipename, struct ndr_syntax_id *syntax)
{
NTSTATUS status;
+ if (strchr(pipename, '/')) {
+ DEBUG(1, ("Refusing open on pipe %s\n", pipename));
+ return false;
+ }
+
if (lp_disable_spoolss() && strequal(pipename, "spoolss")) {
DEBUG(10, ("refusing spoolss access\n"));
return false;
--
Pero, aparentemente, el parche solo agrega validación adicional y no muestra la "parte jugosa" donde se carga la biblioteca maliciosa.