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

Libvirt doesn't support X25519MLKEM768 key exchange

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: Generate New Ti...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not a Bug
    • Icon: Undefined Undefined
    • None
    • rhel-10.1
    • libvirt
    • No
    • Important
    • rhel-virt-core-libvirt-1
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • All
    • None

      What were you trying to do that didn't work?

      Use post-quantum TLS 1.3 X25519MLKEM768 signature exchange with Libvirt
       

      What is the impact of this issue to you?

      Less secure signature exchange

      Please provide the package NVR for which the bug is seen:

      libvirt-11.4.0-1.el10.s390x

      crypto-policies-20250602-1.gita6d4d0c.el10.noarch
      openssl-3.5.0-8.el10.s390x
      gnutls-3.8.9-16.el10.s390

      How reproducible is this bug?:

      100%

      Steps to reproduce

      1.  Confirm the default crypto policy is active
        server# update-crypto-policies --show
        DEFAULT
      2.  (optional) Confirm ML-KEM signature and TLS 1.3 are supported
        server# cat 
         /etc/share/crypto-policies/policies/DEFAULT.pol
        ...
        group = X25519-MLKEM768 P256-MLKEM768 P384-MLKEM1024 MLKEM768-X25519
        ...
        protocol@TLS = TLS1.3 TLS1.2 DTLS1.2
        
      3. Set up TLS as usual on server side and client side and confirm you can connect the client (virsh) to the server successfully, note the port that's used, e.g. 16514
      4. Use openssl to establish a client connection
        openssl s_client -connect <server_ip>:16514 -CAfile /etc/pki/CA/cacert.pem </dev/null

      Expected results

      Negotiated TLS1.3 group: X25519MLKEM768

      is in the output

      Actual results

      No such message is in the output, we can see the following lines that apparently confirm that the key exchange is not used

      ...
      Peer signing digest: SHA256
      Peer signature type: RSA-PSS
      Server Temp Key: X25519, 253 bits
      ...
      

      Additional info

      Libvirt uses GnuTLS

        1. cli.log
          37 kB
          Sebastian Mitterle
        2. virtproxyd.log
          201 kB
          Sebastian Mitterle

              virt-maint virt-maint
              smitterl@redhat.com Sebastian Mitterle
              virt-maint virt-maint
              virt-bugs virt-bugs
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated:
                Resolved: