From: Darren Tucker Date: Thu, 9 Mar 2023 07:24:54 +0000 (+1100) Subject: Limit the number of PAM environment variables. X-Git-Tag: V_9_3_P1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfd1ad01d974a316b60622759ad17537fa2d92b4;p=thirdparty%2Fopenssh-portable.git Limit the number of PAM environment variables. xcalloc has its own limits, but these are specific to PAM. From Coverity CID 405198, ok djm@ --- diff --git a/monitor.c b/monitor.c index f856c8738..fda4a3660 100644 --- a/monitor.c +++ b/monitor.c @@ -1097,6 +1097,10 @@ mm_answer_pam_respond(struct ssh *ssh, int sock, struct sshbuf *m) sshpam_authok = NULL; if ((r = sshbuf_get_u32(m, &num)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); + if (num > PAM_MAX_NUM_MSG) { + fatal_f("Too many PAM messages, got %u, expected <= %u", + num, (unsigned)PAM_MAX_NUM_MSG); + } if (num > 0) { resp = xcalloc(num, sizeof(char *)); for (i = 0; i < num; ++i) {