mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-26 22:23:08 +00:00
pam_exec: fix segfault when authtok is null
According to pam_exec(8), the `expose_authtok` option should be ignored when the service function is `pam_sm_setcred`. Currently `pam_exec` only prevent prompt for anth token when `expose_authtok` is set on `pam_sm_setcred`. This subsequently led to segfault when there isn't an existing auth token available. Bug reported on this: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263893 After reading https://reviews.freebsd.org/rS349556 I am not sure if the default behaviour supposed to be simply not prompt for authentication token, or is it to ignore the option entirely as stated in the man page. This patch is therefore only adding an additional NULL check on the item `pam_get_item` provide, and exit with `PAM_SYSTEM_ERR` when such item is NULL. Approved by: so Security: FreeBSD-EN-22:19.pam_exec MFC after: 1 week Reviewed by: des, khng Differential Revision: https://reviews.freebsd.org/D35169 (cherry picked from commitb75e0eed34
) (cherry picked from commitea80848e1c
)
This commit is contained in:
parent
c864c8cf08
commit
277c0c4d25
@ -261,6 +261,13 @@ _pam_exec(pam_handle_t *pamh,
|
||||
/* don't prompt, only expose existing token */
|
||||
rc = pam_get_item(pamh, PAM_AUTHTOK, &item);
|
||||
authtok = item;
|
||||
if (authtok == NULL && rc == PAM_SUCCESS) {
|
||||
openpam_log(PAM_LOG_ERROR,
|
||||
"%s: pam_get_authtok(): %s",
|
||||
func, "authentication token not available");
|
||||
OUT(PAM_SYSTEM_ERR);
|
||||
}
|
||||
|
||||
} else {
|
||||
rc = pam_get_authtok(pamh, PAM_AUTHTOK, &authtok, NULL);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user