UNCLASSIFIED - NO CUI

ssh backends are unusable

Summary

SSH connections cannot be established

Steps to reproduce

Attempt to establish an SSH session.

What is the current bug behavior?

SSH session fails to be established

What is the expected correct behavior?

SSH connects

Relevant logs and/or screenshots

[root@f2cc507e9227 lib]# ldd -r /usr/local/guacamole/lib/libguac-client-ssh.so
        linux-vdso.so.1 (0x00007ffc73f45000)
        libssh2.so.1 => /lib64/libssh2.so.1 (0x00007febd33a2000)
        libm.so.6 => /lib64/libm.so.6 (0x00007febd3020000)
        libpangocairo-1.0.so.0 => not found
        libpango-1.0.so.0 => not found
        libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007febd2dcd000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007febd2ab4000)
        libguac.so.19 => /usr/local/guacamole/lib/libguac.so.19 (0x00007febd2894000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x00007febd2573000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007febd236f000)
        libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007febd2106000)
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007febd1ed1000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007febd1cb1000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007febd1a1d000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007febd1537000)
        libossp-uuid.so.16 => /lib64/libossp-uuid.so.16 (0x00007febd132a000)
        libogg.so.0 => /lib64/libogg.so.0 (0x00007febd1123000)
        libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007febd0ef6000)
        libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007febd0c4d000)
        libwebp.so.7 => /lib64/libwebp.so.7 (0x00007febd09df000)
        libc.so.6 => /lib64/libc.so.6 (0x00007febd061a000)
        libz.so.1 => /lib64/libz.so.1 (0x00007febd0403000)
        /lib64/ld-linux-x86-64.so.2 (0x00007febd3810000)
        libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007febd0012000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007febcfda1000)
        libffi.so.6 => /lib64/libffi.so.6 (0x00007febcfb98000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007febcf8f0000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007febcf6ab000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007febcf3ef000)
        libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007febcf1eb000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007febcefc2000)
        libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007febcedb4000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00007febceba9000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007febce866000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007febce653000)
        librt.so.1 => /lib64/librt.so.1 (0x00007febce44b000)
        libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007febce121000)
        libidn2.so.0 => /lib64/libidn2.so.0 (0x00007febcdf03000)
        libunistring.so.2 => /lib64/libunistring.so.2 (0x00007febcdb82000)
        libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007febcd96f000)
        libnettle.so.6 => /lib64/libnettle.so.6 (0x00007febcd735000)
        libhogweed.so.4 => /lib64/libhogweed.so.4 (0x00007febcd504000)
        libgmp.so.10 => /lib64/libgmp.so.10 (0x00007febcd26c000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007febcd031000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007febcce29000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007febccc18000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007febcca14000)
undefined symbol: pango_font_get_metrics        (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_cairo_create_layout     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_set_text (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_metrics_get_ascent (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_metrics_get_descent        (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_set_alignment    (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_cairo_font_map_get_default      (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_copy   (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_set_size       (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_metrics_get_approximate_digit_width        (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_free   (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_get_family     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_cairo_update_layout     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_new    (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_map_create_context (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_get_size (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_set_family     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_set_height       (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_map_load_font      (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_cairo_show_layout       (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_font_description_set_weight     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_set_font_description     (/usr/local/guacamole/lib/libguac-client-ssh.so)
undefined symbol: pango_layout_set_width        (/usr/local/guacamole/lib/libguac-client-ssh.so)
[root@f2cc507e9227 lib]# dnf install pango
Last metadata expiration check: 0:01:00 ago on Tue Aug 17 19:08:38 2021.
Dependencies resolved.
===============================================================================================================================================================================
 Package                                 Architecture                         Version                                      Repository                                     Size
===============================================================================================================================================================================
Installing:
 pango                                   x86_64                               1.42.4-6.el8                                 ubi-8-appstream                               298 k
Installing dependencies:
 fribidi                                 x86_64                               1.0.4-8.el8                                  ubi-8-appstream                                89 k
 graphite2                               x86_64                               1.3.10-10.el8                                ubi-8-appstream                               122 k
 harfbuzz                                x86_64                               1.7.5-3.el8                                  ubi-8-appstream                               294 k
 libXft                                  x86_64                               2.3.3-1.el8                                  ubi-8-appstream                                67 k
 libdatrie                               x86_64                               0.2.9-7.el8                                  ubi-8-appstream                                33 k
 libthai                                 x86_64                               0.1.27-2.el8                                 ubi-8-appstream                               203 k

Transaction Summary
===============================================================================================================================================================================
Install  7 Packages

Total download size: 1.1 M
Installed size: 3.1 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): libdatrie-0.2.9-7.el8.x86_64.rpm                                                                                                         82 kB/s |  33 kB     00:00    
(2/7): libXft-2.3.3-1.el8.x86_64.rpm                                                                                                           146 kB/s |  67 kB     00:00    
(3/7): harfbuzz-1.7.5-3.el8.x86_64.rpm                                                                                                         514 kB/s | 294 kB     00:00    
(4/7): graphite2-1.3.10-10.el8.x86_64.rpm                                                                                                      1.5 MB/s | 122 kB     00:00    
(5/7): libthai-0.1.27-2.el8.x86_64.rpm                                                                                                         980 kB/s | 203 kB     00:00    
(6/7): pango-1.42.4-6.el8.x86_64.rpm                                                                                                           1.1 MB/s | 298 kB     00:00    
(7/7): fribidi-1.0.4-8.el8.x86_64.rpm                                                                                                          1.0 MB/s |  89 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                          1.4 MB/s | 1.1 MB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                       1/1 
  Installing       : fribidi-1.0.4-8.el8.x86_64                                                                                                                            1/7 
  Installing       : graphite2-1.3.10-10.el8.x86_64                                                                                                                        2/7 
  Installing       : harfbuzz-1.7.5-3.el8.x86_64                                                                                                                           3/7 
  Running scriptlet: harfbuzz-1.7.5-3.el8.x86_64                                                                                                                           3/7 
  Installing       : libdatrie-0.2.9-7.el8.x86_64                                                                                                                          4/7 
  Running scriptlet: libdatrie-0.2.9-7.el8.x86_64                                                                                                                          4/7 
  Installing       : libthai-0.1.27-2.el8.x86_64                                                                                                                           5/7 
  Running scriptlet: libthai-0.1.27-2.el8.x86_64                                                                                                                           5/7 
  Installing       : libXft-2.3.3-1.el8.x86_64                                                                                                                             6/7 
  Installing       : pango-1.42.4-6.el8.x86_64                                                                                                                             7/7 
  Running scriptlet: pango-1.42.4-6.el8.x86_64                                                                                                                             7/7 
  Verifying        : harfbuzz-1.7.5-3.el8.x86_64                                                                                                                           1/7 
  Verifying        : libXft-2.3.3-1.el8.x86_64                                                                                                                             2/7 
  Verifying        : libdatrie-0.2.9-7.el8.x86_64                                                                                                                          3/7 
  Verifying        : pango-1.42.4-6.el8.x86_64                                                                                                                             4/7 
  Verifying        : libthai-0.1.27-2.el8.x86_64                                                                                                                           5/7 
  Verifying        : graphite2-1.3.10-10.el8.x86_64                                                                                                                        6/7 
  Verifying        : fribidi-1.0.4-8.el8.x86_64                                                                                                                            7/7 
Installed products updated.

Installed:
  fribidi-1.0.4-8.el8.x86_64 graphite2-1.3.10-10.el8.x86_64 harfbuzz-1.7.5-3.el8.x86_64 libXft-2.3.3-1.el8.x86_64 libdatrie-0.2.9-7.el8.x86_64 libthai-0.1.27-2.el8.x86_64
  pango-1.42.4-6.el8.x86_64 

Complete!
[root@f2cc507e9227 lib]# ldd -r /usr/local/guacamole/lib/libguac-client-ssh.so
        linux-vdso.so.1 (0x00007ffd039fd000)
        libssh2.so.1 => /lib64/libssh2.so.1 (0x00007f6fca756000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6fca3d4000)
        libpangocairo-1.0.so.0 => /lib64/libpangocairo-1.0.so.0 (0x00007f6fca1c5000)
        libpango-1.0.so.0 => /lib64/libpango-1.0.so.0 (0x00007f6fc9f7e000)
        libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x00007f6fc9d2b000)
        libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007f6fc9a12000)
        libguac.so.19 => /usr/local/guacamole/lib/libguac.so.19 (0x00007f6fc97f2000)
        libcairo.so.2 => /lib64/libcairo.so.2 (0x00007f6fc94d1000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f6fc92cd000)
        libjpeg.so.62 => /lib64/libjpeg.so.62 (0x00007f6fc9064000)
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007f6fc8e2f000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6fc8c0f000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f6fc897b000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f6fc8495000)
        libossp-uuid.so.16 => /lib64/libossp-uuid.so.16 (0x00007f6fc8288000)
        libogg.so.0 => /lib64/libogg.so.0 (0x00007f6fc8081000)
        libvorbis.so.0 => /lib64/libvorbis.so.0 (0x00007f6fc7e54000)
        libvorbisenc.so.2 => /lib64/libvorbisenc.so.2 (0x00007f6fc7bab000)
        libwebp.so.7 => /lib64/libwebp.so.7 (0x00007f6fc793d000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f6fc7578000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f6fc7361000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f6fcabc4000)
        libpangoft2-1.0.so.0 => /lib64/libpangoft2-1.0.so.0 (0x00007f6fc714a000)
        libfontconfig.so.1 => /lib64/libfontconfig.so.1 (0x00007f6fc6f05000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f6fc6c49000)
        libthai.so.0 => /lib64/libthai.so.0 (0x00007f6fc6a3f000)
        libfribidi.so.0 => /lib64/libfribidi.so.0 (0x00007f6fc6823000)
        libgnutls.so.30 => /lib64/libgnutls.so.30 (0x00007f6fc6432000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f6fc61c1000)
        libffi.so.6 => /lib64/libffi.so.6 (0x00007f6fc5fb8000)
        libpixman-1.so.0 => /lib64/libpixman-1.so.0 (0x00007f6fc5d10000)
        libxcb-shm.so.0 => /lib64/libxcb-shm.so.0 (0x00007f6fc5b0c000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f6fc58e3000)
        libxcb-render.so.0 => /lib64/libxcb-render.so.0 (0x00007f6fc56d5000)
        libXrender.so.1 => /lib64/libXrender.so.1 (0x00007f6fc54ca000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007f6fc5187000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007f6fc4f74000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f6fc4d6c000)
        libharfbuzz.so.0 => /lib64/libharfbuzz.so.0 (0x00007f6fc4ac6000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6fc488b000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f6fc4683000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f6fc4472000)
        libdatrie.so.1 => /lib64/libdatrie.so.1 (0x00007f6fc426a000)
        libp11-kit.so.0 => /lib64/libp11-kit.so.0 (0x00007f6fc3f40000)
        libidn2.so.0 => /lib64/libidn2.so.0 (0x00007f6fc3d22000)
        libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f6fc39a1000)
        libtasn1.so.6 => /lib64/libtasn1.so.6 (0x00007f6fc378e000)
        libnettle.so.6 => /lib64/libnettle.so.6 (0x00007f6fc3554000)
        libhogweed.so.4 => /lib64/libhogweed.so.4 (0x00007f6fc3323000)
        libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f6fc308b000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007f6fc2e87000)
        libgraphite2.so.3 => /lib64/libgraphite2.so.3 (0x00007f6fc2c5b000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6fc2a43000)

Possible fixes

Install pango: https://repo1.dso.mil/dsop/opensource/apache/guacamole/guacamole-server/-/blob/development/Dockerfile#L51

diff --git a/Dockerfile b/Dockerfile
index 14e0937f..7abcec8b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -48,7 +48,7 @@ COPY freerdp-libs.rpm lame-libs.rpm libev.rpm libssh2.rpm libvncserver.rpm libwe

 RUN dnf update -y && \
     rpm --import /opt/signatures/* && \
-    dnf install -y --nodocs nmap dejavu-sans-fonts libwebp cairo uuid && \
+    dnf install -y --nodocs nmap dejavu-sans-fonts libwebp cairo uuid pango && \
     dnf localinstall -y /opt/pkgs/*.rpm && \
     rm -rf /opt/pkgs && \
     rm -rf /opt/signatures && \

Defintion of Done

  • Bug has been identified and corrected within the container
Edited by Jacob Rohlman