nessus crash on x86_64

Alexander Tsvyashchenko <[email protected]> Sun, 06 May 2007 19:14:45 +0300
Newsgroups gmane.comp.security.nessus.devel
Message-ID <[email protected]>
Hello Jose,

I have exactly the same issue you've described (found your post while =20
googling for my problem).

Your report was really helpful, as using it, I was able quickly to =20
localize the problem: basically, it seems that va_start should be =20
called not once, but before each invocation of vsnprintf, to reset =20
''param'' to the appropriate value - I do not know why this was not =20
noticed before, probably, default buffer size is enough in all but =20
very extreme cases. In my configuration it happened only once per =20
nessus run that the loop was repeated - when formatting string with =20
plugins numbers, it seems (about 85,000 bytes length) - but it was =20
enough for crash.

I do not have time to dig into it too much, but the following patch =20
has solved my crash and allowed me to execute nessus successfully on =20
my system. If you have not fixed the problem yourselves yet, you can =20
try it - I hope, it will work for you also!

diff -urN nessus-core/nessus/auth.c nessus-core.patched/nessus/auth.c
--- nessus-core/nessus/auth.c   2006-09-26 20:32:12.000000000 +0300
+++ nessus-core.patched/nessus/auth.c   2007-05-06 02:05:30.000000000 +0300
@@ -92,11 +92,11 @@
    char * buffer =3D emalloc(s);
    int len, n =3D 0;
    signal(SIGPIPE, sighand_pipe);
-  va_start(param, data);


    for(;;)
    {
+   va_start(param, data);
     r =3D vsnprintf(buffer, s - 1, data, param);
     if(r >=3D 0 && r < s)break;
     s =3D r > s ? r + 2 : s * 2;


Good luck!                                     Alexander





----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


_______________________________________________
Nessus-devel mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus-devel