Root Cause: In the ssh library of guacd, function ssh_client_thread(), when guac_ssh_get_user() fails to load private key for ssh authentication, it will return NULL. In this case, the subsequent call to guac_common_ssh_create_session() with parameter 'user=0x0' will cause guacd crash in function guac_common_ssh_authenticate() by accessing 'user->username'. Solution: - Update the comment of function guac_ssh_get_user() to document that NULL will be returned if fails to import key for the user. - In function ssh_client_thread(), verify the return of guac_ssh_get_user(). If ssh_client->user is NULL, return NULL. Test: - Configured a ssh app with an encrypted private key and a wrong passphrase. - Ran the ssh app from web portal and observed guacd crash. - Applied the fix and reran the ssh app. Observed no crash. |
||
|---|---|---|
| .. | ||
| common | ||
| common-ssh | ||
| guacd | ||
| guacd-docker | ||
| guacenc | ||
| libguac | ||
| protocols | ||
| pulse | ||
| terminal | ||