Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-2482

insight-clients tries to create /root/.gnupg

    • None
    • None
    • 1
    • rhel-sst-csi-client-tools
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • CSI [19/Sep- 09/Oct]
    • Pass
    • None
    • If docs needed, set a value
    • None

      Cloning to RHEL 8 as it happens there too.

      +++ This bug was initially created as a clone of Bug #2077777 +++

      Description of problem:
      insights-client validates the GPG signatures of files by running `gpg`; this causes some SELinux denials:

      audit: type=1400 audit(1650615650.790:4): avc: denied

      { read } for pid=22197 comm="gpg" name="pubring.kbx" dev="vda4" ino=16798216 scontext=system_u:system_r:insights_client_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
      audit: type=1400 audit(1650615650.810:5): avc: denied { read }

      for pid=22197 comm="gpg" name="pubring.kbx" dev="vda4" ino=16798216 scontext=system_u:system_r:insights_client_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
      audit: type=1400 audit(1650615650.843:6): avc: denied

      { getattr }

      for pid=22197 comm="gpg" path="/root/.gnupg/trustdb.gpg" dev="vda4" ino=16799856 scontext=system_u:system_r:insights_client_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
      audit: type=1400 audit(1650615650.843:7): avc: denied

      { write }

      for pid=22197 comm="gpg" name=".gnupg" dev="vda4" ino=16798004 scontext=system_u:system_r:insights_client_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=dir permissive=0

      `gpg` tries to create its own homedir (~/.gnupg by default): this of course fails in case insights-client is invoked not manually, but e.g. by cockpit (from the subscription-manager plugin) or as systemd service.

      Possible solutions to avoid this:

      • create a temporary directory for `gpg`, and pass it with `--homedir` to all the `gpg` invocations
      • use a Python library for validating signatures – python3-gpg, i.e. the Python binding of GPGME [1], seems a potential good candidate, as it is already shipped in BaseOS (even in RHEL 8)

      [1] https://gnupg.org/software/gpgme/index.html

              mhorky@redhat.com Matyas Horky
              ptoscano@redhat.com Pino Toscano
              Štěpán Tomsa
              Zdenek Petracek Zdenek Petracek
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

                Created:
                Updated: