Hi,

I read https://www.openwall.com/lists/oss-security/2019/12/04/5 and wondered
how the authentication bypass was possible, since the manpage says:
     If this style of authentication does not support challenge response, but
     does support the response service (described below) it should issue
     reject silent and then exit with a 0 status.

So I checked and indeed:
#  /usr/libexec/auth/login_passwd -schallenge foo 3>&1                          
               
authorize

The (untested) patch below makes login_passwd behave as described in the 
manpage.

Kind regards,

Thomas

diff --git libexec/login_passwd/login.c libexec/login_passwd/login.c
index 09e683a7366..486d8bfcb8a 100644
--- libexec/login_passwd/login.c
+++ libexec/login_passwd/login.c
@@ -137,7 +137,7 @@ main(int argc, char **argv)
                password = readpassphrase("Password:", pbuf, sizeof(pbuf), 
RPP_ECHO_OFF);
                break;
        case MODE_CHALLENGE:
-               fprintf(back, BI_AUTH "\n");
+               fprintf(back, BI_SILENT "\n");
                exit(0);
                break;
        default:

Reply via email to