mirror of
https://github.com/clearml/dropbear
synced 2025-02-07 13:21:15 +00:00
Fix empty password immediate login
This commit is contained in:
parent
2713445e91
commit
6b4105ffe6
@ -179,8 +179,7 @@ much traffic. */
|
|||||||
|
|
||||||
/* Define this to allow logging in to accounts that have no password specified.
|
/* Define this to allow logging in to accounts that have no password specified.
|
||||||
* Public key logins are allowed for blank-password accounts regardless of this
|
* Public key logins are allowed for blank-password accounts regardless of this
|
||||||
* setting. PAM is not affected by this setting, it uses the normal pam.d
|
* setting. */
|
||||||
* settings ('nullok' option) */
|
|
||||||
/* #define ALLOW_BLANK_PASSWORD */
|
/* #define ALLOW_BLANK_PASSWORD */
|
||||||
|
|
||||||
#define ENABLE_CLI_PASSWORD_AUTH
|
#define ENABLE_CLI_PASSWORD_AUTH
|
||||||
|
@ -155,9 +155,10 @@ void recv_msg_userauth_request() {
|
|||||||
AUTH_METHOD_NONE_LEN) == 0) {
|
AUTH_METHOD_NONE_LEN) == 0) {
|
||||||
TRACE(("recv_msg_userauth_request: 'none' request"))
|
TRACE(("recv_msg_userauth_request: 'none' request"))
|
||||||
#ifdef ALLOW_BLANK_PASSWORD
|
#ifdef ALLOW_BLANK_PASSWORD
|
||||||
|
TRACE(("pw_passwd '%s'", ses.authstate.pw_passwd))
|
||||||
if (!svr_opts.noauthpass
|
if (!svr_opts.noauthpass
|
||||||
&& !(svr_opts.norootpass && ses.authstate.pw_uid == 0)
|
&& !(svr_opts.norootpass && ses.authstate.pw_uid == 0)
|
||||||
&& ses.authstate.pw_passwd == '\0')
|
&& ses.authstate.pw_passwd[0] == '\0')
|
||||||
{
|
{
|
||||||
dropbear_log(LOG_NOTICE,
|
dropbear_log(LOG_NOTICE,
|
||||||
"Auth succeeded with blank password for '%s' from %s",
|
"Auth succeeded with blank password for '%s' from %s",
|
||||||
|
@ -39,7 +39,6 @@ void svr_auth_password() {
|
|||||||
char * passwdcrypt = NULL; /* the crypt from /etc/passwd or /etc/shadow */
|
char * passwdcrypt = NULL; /* the crypt from /etc/passwd or /etc/shadow */
|
||||||
char * testcrypt = NULL; /* crypt generated from the user's password sent */
|
char * testcrypt = NULL; /* crypt generated from the user's password sent */
|
||||||
unsigned char * password;
|
unsigned char * password;
|
||||||
int success_blank = 0;
|
|
||||||
unsigned int passwordlen;
|
unsigned int passwordlen;
|
||||||
|
|
||||||
unsigned int changepw;
|
unsigned int changepw;
|
||||||
@ -68,19 +67,13 @@ void svr_auth_password() {
|
|||||||
|
|
||||||
/* check for empty password */
|
/* check for empty password */
|
||||||
if (passwdcrypt[0] == '\0') {
|
if (passwdcrypt[0] == '\0') {
|
||||||
#ifdef ALLOW_BLANK_PASSWORD
|
|
||||||
if (passwordlen == 0) {
|
|
||||||
success_blank = 1;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
dropbear_log(LOG_WARNING, "User '%s' has blank password, rejected",
|
dropbear_log(LOG_WARNING, "User '%s' has blank password, rejected",
|
||||||
ses.authstate.pw_name);
|
ses.authstate.pw_name);
|
||||||
send_msg_userauth_failure(0, 1);
|
send_msg_userauth_failure(0, 1);
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (success_blank || strcmp(testcrypt, passwdcrypt) == 0) {
|
if (strcmp(testcrypt, passwdcrypt) == 0) {
|
||||||
/* successful authentication */
|
/* successful authentication */
|
||||||
dropbear_log(LOG_NOTICE,
|
dropbear_log(LOG_NOTICE,
|
||||||
"Password auth succeeded for '%s' from %s",
|
"Password auth succeeded for '%s' from %s",
|
||||||
|
Loading…
Reference in New Issue
Block a user