Chapter 3. New features


This part describes new features and major enhancements introduced in Red Hat Enterprise Linux 9.6.

3.1. Installer and image creation

Added Kickstart support for CA certificates to enable encrypted DNS configuration during installation

Support for the %certificate section in the Kickstart file is added to enable the installation of CA certificates into the installation program environment and the installed system. This simplifies the setup process and ensures that the encrypted DNS is operational after installation, reducing manual configuration and security gaps. The certificates are inlined in the Base64 ASCII format and imported through the --dir and --filename options. This enhancement facilitates encrypted DNS configuration as part of Zero Trust Architecture requirements. The encrypted DNS set up during installation ensures secure DNS resolution from the start, improving security and compliance in automated deployments.

Jira:RHEL-61430[1]

RHEL image builder supports creating disk images with advanced partitioning

With this enhancement, RHEL image builderl gained more options for customizing partitioning and creating disk images with advanced partitioning layout. You can create disk images with custom mountpoints, including custom mount options, LVM-based partitions and LVM-based SWAP to, for example, change the size of the / and the /boot directories by using a blueprint file.

Jira:RHELDOCS-19584[1]

bootc-image-builder now supports creating image mode disk images with advanced partitioning

With this enhancement, the bootc-image-builder tool gained more options for customizing partitioning and creating disk images with advanced partitioning layout. You can use the bootc-image-builder tool to create disk images of image-mode RHEL with custom mountpoints, including custom mount options, LVM-based partitions and LVM-based SWAP to, for example, change the size of the / and the /boot directories by using the config.toml.

Jira:RHELDOCS-19291[1]

The bootc image builder tool is generally available in RHEL

The bootc image builder tool, now is generally available in RHEL, works as a container to easily create and deploy compatible disk images from the bootc container inputs. After running your container image with bootc image builder, you can generate images for the architecture that you need. Then, you can deploy the resulting image on VMs, clouds, or servers. You can easily update the images with the bootc, instead of having to regenerate the content with bootc image builder every time a new update is required.

Jira:RHELDOCS-17468[1]

3.2. Security

pcsd now provides the --disable-polkit option

With this update, you can turn off loading the PolicyKit authorization framework by starting the pcsd service with the --disable-polkit option. Running pcsd without polkit enables accessing PKCS #11 devices in limited environments such as the initial RAM disk. As a result, the Clevis decryption client can use a PKCS #11 device for automated unlocking LUKS-encrypted volumes at boot time.

Jira:RHEL-34856

ssh now provides a link with additional details about SSH login error messages

In case of an early error, the ssh command-line tool provides a link to the Red Hat Customer Portal page that contains additional details about common error messages and steps for resolving them. This helps troubleshoot SSH login problems when you use interactive mode.

Jira:RHEL-33809[1]

pkcs-tool now shows object URI

With this update, the pkcs11-tool -L and pkcs11-tool -O commands contain the uri: field in their outputs. You can use the URI information when configuring the pkcs11 Clevis pin for automated unlocking LUKS-encrypted drives with PKCS #11 devices.

Jira:RHEL-53115

CBC ciphers can now be blocked in crypto-policies

With this update, crypto-policies uses the openssl -CBC CipherString directive. As a result, CBC cipher suites are disabled in OpenSSL if none of them are enabled in crypto-policies.

Jira:RHEL-76524[1]

nettle rebased to 3.10.1

The nettle library package has been rebased to upstream version 3.10.1. This version provides various bug fixes, optimizations and enhancements, most notably:

  • Performance has been improved on 64-bit PowerPC architectures (SHA-256, AES decryption, and AES-GCM).
  • DRBG-CTR-AES256, a new deterministic random bit generator, has been added.
  • RSA-OAEP, an RSA encryption/decryption that uses a new OAEP padding scheme, has been added.
  • SHAKE-128, an arbitrary length hash function of the SHA-3 family, has been added.
  • Streaming API for SHAKE-128 and SHAKE-256 has been added.
  • The MD5 assembly has been removed. This might incur a slight performance impact.

Jira:RHEL-52740[1]

Rsyslog rebased to 8.2412.0

The rsyslog packages have been rebased to upstream version 8.2412.0 in RHEL 9.6. Among other fixes and enhancements, you can bind a ruleset to the imjournal module. With this optimization, log messages can be filtered and processed at the input stage, which reduces the load on the main message queue. This minimizes resource utilization and ensures smoother handling of high-volume logs.

Jira:RHEL-65177

OpenSCAP rebased to 1.3.12

The OpenSCAP packages have been rebased to upstream version 1.3.12. This version provides bug fixes and various enhancements. For additional information, see the OpenSCAP release notes.

Jira:RHEL-88413

Clevis rebased to version 21 with support for PKCS #11

The clevis packages have been upgraded to version 21. This version contains many enhancements and bug fixes, notably:

  • Added the clevis-pin-pkcs11 subpackage which provides the pkcs11 pin for unlocking LUKS-encrypted volumes using a PKCS #11 device (smart card).
  • Added two checks to the clevis-udisks2 subpackage.
  • Added a fix that prevents "Address in use" errors.

Jira:RHEL-60257

New Keylime policy management tool

The new keylime-policy tool integrates all management tasks of Keylime runtime policies and measured boot policies and improves the performance of generating policies.

Jira:RHEL-75797

SELinux assigns a particular type to /dev/hfi1_0

With this update, the hfi1_device_t type is assigned to the /dev/hfi1_0 device in the SELinux policy. As a result, SELinux can properly control access to the device.

Jira:RHEL-54996[1]

Additional services confined in the SELinux policy

This update adds additional rules to the SELinux policy that confine the following systemd services:

  • iio-sensor-proxy
  • power-profiles-daemon
  • switcheroo-control
  • samba-bgqd

As a result, these services no longer run with the unconfined_service_t SELinux label, which violated the CIS Server Level 2 benchmark "Ensure No Daemons are Unconfined by SELinux" rule, and run successfully in SELinux enforcing mode.

Jira:RHEL-17346, Jira:RHEL-53124, Jira:RHEL-61117, Jira:RHEL-24268

SCAP Security Guide rebased to 0.1.76

For additional information, see the SCAP Security Guide release notes.

Jira:RHEL-74240

Keylime requires HTTPS for revocation notifications

The Keylime components require the use of the more secure HTTPS protocol for revocation notification webhooks instead of HTTP. As a consequence, the Keylime verifier now requires the revocation notification webhook server CA certificate. You can add it to the trusted_server_ca configuration option or add it to the system truststore.

Jira:RHEL-78313

3.3. RHEL for Edge

Support for deploying image mode for RHEL systems by using FDO

With this enhancement, now you can deploy an image mode for RHEL systems by using the FIDO Device Onboarding (FDO) process, available as a Technology Preview, to deliver the configuration to this system. Include a Kickstart file in an ISO build to configure any part of the installation process except the base image deployment. If you use an ISO with a bootc container base image, bootc-image-builder automatically installs ostreecontainer, the command to install the container image. You can still configure anything, except the ostreecontainer command.

Jira:RHELDOCS-19610[1]

RHEL provides the greenboot package in version 0.15.8

The greenboot packages have been updated to version 0.15.8, which provides bug fixes and enhancements. Notable changes include:

  • Fixed the bootc compatibility with rpm-ostree when bootc is available alongside rpm-ostree.
  • General bug fix: If bootc is not available, rollback using rpm-ostree.

Jira:RHEL-80003

3.4. Software management

Image mode for RHEL users can now use dnf --transient to perform package transactions that reset on reboot

Previously, Image mode for RHEL users could transiently install, remove, and upgrade packages by running the bootc usr-overlay command to unlock the system and then make changes by running DNF commands. If you use bootc usr-overlay, when the system reboots, the /usr directory overlay disappears and all changes made to it will reset. Changes to other directories, including configuration in /etc and program state in /var, persist across reboots.

With this update, a new --transient flag and a new persistence configuration option have been added to DNF to improve the user experience on bootc systems. You can now skip the bootc usr-overlay step by using either of the following options:

  • Use the dnf --transient command.
  • Set the persistence option to transient in the dnf.conf file.
Note

Unlike when using bootc usr-overlay, --transient and persistence=transient ensure that the /usr directory remains read-only to other processes before, during, and after the transaction.

For example, to transiently install the make package, enter:

# dnf install --transient make
Copy to Clipboard Toggle word wrap

Jira:RHEL-70917

Improved error message when using DNF on a locked OSTree or bootc system

OSTree and bootc systems cannot be managed by DNF by default. Previously, a DNF error message did not say that this was an expected behavior and how you could change it. With this update, DNF detects whether it runs on a read-only OSTree or bootc system and informs you where to find more details about how to manage such systems with DNF.

Jira:RHEL-49670

DNF Automatic can now notify users about a failed update

With this update, a new send_error_messages boolean option has been added to the [emitters] section of the /etc/dnf/automatic.conf configuration file. As a result, if you set send_error_messages to yes, the DNF Automatic tool notifies you about failed automatic updates by using an emitter configured in the emit_via option.

Note

This feature is disabled by default.

Jira:RHEL-61882

3.5. Shells and command-line tools

ignoreduplicates option is now available

With this enhancement, the ignoreduplicates option is added in the logrotate configuration. The option ignores any duplicate file paths in the logrotate configuration, and is not enabled by default.

Jira:RHEL-5711[1]

maven-openjdk21 package is now available

RHEL supports running Maven with multiple Java versions, allowing users to select their preferred JDK. With this enhancement, a new maven-openjdk21 package has been added to enable seamless execution of Maven with OpenJDK 21. The notable changes include the following:

  • Expanded set of supported Java runtimes for Maven workflows.
  • Improved flexibility for development and build environments.

Jira:RHEL-62175

openCryptoki rebased to version 3.24.0

The openCryptoki packages are rebased to version 3.24.0. Support has been added for the following:

  • CCA token on non-IBM Z platforms (x86_64, ppc64)
  • IBM Dilithium
  • RSA-OAEP with SHA224, SHA384, and SHA512 on encrypt or decrypt.
  • PKCS#11 v3.0 SHA3 mechanisms
  • SHA-2 mechanisms
  • SHA based key derivation mechanisms
  • Protecting tokens with a token specific user group
  • New libica AES-GCM API using the KMA instruction on z14 and later

Jira:RHEL-50064[1]

libva rebased to 2.22.0

The libva package is rebased to 2.22.0. Notable enhancement includes the following:

  • Added VVC decode LibVA interface
  • Support added for linux-dmabuf

Jira:RHEL-59629[1]

A new module stream maven 3.9 is available

A new update to the maven 3.9 package is now available. In version 3.9, maven is not compatible with maven 2. The notable enhancement include the following:

  • The maven-openjdk21 package is now available. It enables seamless execution of Maven with the OpenJDK 21 package. The OpenJDK 21 package provides an expanded set of supported Java run times for Maven workflows, improving flexibility for development and build environments.

Jira:RHEL-73128

Multipath partner device is now supported

The drmgr is a utility for managing logical and physical hot plug capable resources. With this enhancement, drmgr supports hot plug addition and removal of a multipath drive.

Jira:RHEL-30880[1]

3.6. Infrastructure services

Weak ciphers can be now disabled in CUPS configuration

Previously, when you disabled the weak cipher in the CUPS configurations, the configuration changes did not take effect. With this enhancement, if a user wants to disable a certain cryptographic algorithm via system policy, CUPS honors the system settings, if SSLOptions NoSystem is not in CUPS configuration files, and CUPS does not offer the system-wide disabled algorithm anymore.

As a result, to prevent possible breakage of existing configurations, the directive SSLOptions NoSystem is set in the /etc/cups/cupsd.conf and /etc/cups/client.conf files. If a user wants cupsd daemon or applications using libcups to follow system crypto policy, they can remove the mentioned SSLOptions directive from the respective configuration files:

  • /etc/cups/cupsd.conf: if the cupsd daemon is expected to follow system crypto policy.
  • /etc/cups/client.conf: if applications using libcups are expected to follow system crypto policy.

Jira:RHEL-68414[1]

3.7. Networking

Added support for E825C interface

Added support for Ethernet functionality of the E825C network interface for Intel Granite Rapids-D platform to the ice driver.

Jira:RHEL-57827[1]

The i40e driver supports automatic reset behavior on MDD events

The Intel® Network Adapter Driver for PCIe* 40 Gigabit Ethernet can now reset problematic Single Root I/O Virtualization (SR-IOV) virtual functions (VFs) when it detects a malicious driver detection (MDD) event. You can activate this automatic reset behavior through the new mdd-auto-reset-vf option as in the following example command:

ethtool --set-priv-flags _ethX_ *mdd-auto-reset-vf* on
Copy to Clipboard Toggle word wrap

When the VF sends malformed packets classified as malicious, it can cause the Tx queue to freeze, which makes it unusable for several minutes. However, with mdd-auto-reset-vf enabled, a graceful VF reset automatically restores operational state when an MDD event occurs.

Jira:RHEL-54223[1]

NetworkManager now supports configuration of FEC encoding on NIC

With this enhancement, NetworkManager supports forward error correction (FEC) encoding support on the network interface controller (NIC). By disabling FEC encoding on NIC, you will have reduced overhead of redundant data transmission and lower latency of network traffic. Configure FEC settings on NIC by using the following steps:

  1. Configure the FEC settings by using the nmcli utility:

    # nmcli con mod __<example_connection_name>__ ethtool.fec off
    Copy to Clipboard Toggle word wrap
  2. Bring the interface down to apply the ethtool FEC encoding setting:

    # nmcli con down __<example_connection_name>__
    Copy to Clipboard Toggle word wrap
  3. Bring the interface up to apply the ethtool FEC encoding setting:

    # nmcli con up __<example_connection_name>__
    Copy to Clipboard Toggle word wrap
  4. Use the ethtool utility to:

    # ethtool --show-fec __<example_device_name>__
    Copy to Clipboard Toggle word wrap

Jira:RHEL-24055

NetworkManager can automatically add routes to DNS servers

With the ipv4.routed-dns parameter, you can configure NetworkManager so that name servers are reachable only through the correct network interface. Apart from systemd-resolved and dnsmasq backend DNS services in NetworkManager, other backend services do not support binding name servers to the correct network interface. As a result, you can use NetworkManager to add an explicit route to the name server through the related network interface.

Jira:RHEL-45878

NetworkManager can set ipv4.dhcp-send-hostname`to `false by default

With this feature, you can set the ipv4.dhcp-send-hostname option in NetworkManager to false for all IPv4 connections. To disable this option by default, add the configuration snippet to the /etc/NetworkManager/conf.d/99-no-hostname.conf file as follows:

[connection]
match-device=type:ethernet
ipv4.dhcp-send-hostname=0
Copy to Clipboard Toggle word wrap

You can also set this option for IPv6.

Jira:RHEL-32685[1]

NetworkManager supports ip-ping-addresses and ip-ping-timeout properties for the connection setting

With this enhancement, you can add an IP address to the ip-ping-addresses and set a timeout with ip-ping-timeout settings. As a result, you can ensure that remote services, such as network file system (NFS), are mounted only after the target network is reachable.

Jira:RHEL-21160

nmstate supports the require-id-on-certificate setting on Libreswan configuration

With this enhancement, libreswan, an implementation of Internet Protocol Security (IPsec) specification, now supports the require-id-on-certificate setting for VPN configurations by using NetworkManager. With this feature, you can configure Subject Alternative Name (SAN) validation by using the require-id-on-certificate option. As a result, this implementation correctly enforces SAN validation based on the specified setting:

  • No SAN validation is performed when set to no
  • SAN are validated when set to yes

Jira:RHEL-58040[1]

NetworkManager DHCP Client supports IPv6-only preferred option for DHCPv4

With this enhancement, the IPv6-only preferred option for DHCPv4 is available for NetworkManager clients for the supported DHCP server. You can use this option in two ways: globally and locally. If enabled globally, this option allows and prioritizes only IPv6 addresses in dual networks that support both IPv4 and IPv6. If enabled locally by setting the ipv6.method disabled option, IPv4 addresses assigned manually are prioritized over DHCP addresses.

Jira:RHEL-14370

xdp-tools rebased to version 1.5.1

The xdp-tools package has been upgraded to version 1.5.1, which provides multiple enhancements and bug fixes. Notable changes include:

  • Added the xdp-forward utility that enables XDP-accelerated packet forwarding between supported network devices.
  • Updated the xdp-trafficgen utility to support specifying User Datagram Protocol (UDP) packet sizes.
  • Added a new option-based API for creating XDP sockets (XSK) and user memory (UMEM) objects.

Jira:RHEL-73054

wpa_supplicant was rebased to version 2.11

The wpa_supplicant utility has been upgraded to version 2.11, which provides multiple bug fixes and enhancements. Notable changes include:

  • Removed incorrect Extensible Authentication Protocol (EAP) Session-Id length constraint.
  • Added support for OpenSSL 3.0 API changes.
  • The CONFIG_IEEE80211BE configuration option enabled for Extremely High Throughput (EHT) operation.
  • Support for explicit Service Set Identifier (SSID) protection in 4-way handshake is disabled by default. You can enable it using the ssid_protection=1 configuration option.

For more details, see the upstream changelog.

Jira:RHEL-58725

iproute2 rebased to version 6.11.0

The iproute2 package has been upgraded to version 6.11.0, which provides multiple bug fixes and enhancements. Notable changes include:

  • Added support for the mst_enabled parameter
  • Added support for setting a Multiple Spanning Tree Instance (MSTI) for VLANs
  • Added support for Multiple Spanning Tree (MST) states
  • Fixed libbpf version check for ENABLE_BPF_SKSTORAGE_SUPPORT configuration option
  • Added support for Berkeley Packet Filter (BPF) socket-local storage
  • Removed support for unused and obsolete queueing disciplines (qdiscs) and classifiers
  • Several NULL derefence fixes and code optimizations

For full extent, see the upstream article.

Jira:RHEL-62931

Bonding device supports IPsec HW offload with ESN

Previously, a bonding device did not support the IPSec Hardware HW offload feature with Extended Sequence Numbers (ESN). Consequently, setting up IPsec with HW offload and ESN failed on the bonding device. With this fix, you can setup IPsec HW offload with ESN on the bonding device, considering the bond ports already support this feature. As a result, the bonding device offloads IPsec traffic correctly.

Jira:RHEL-50630[1]

New "drop reasons" in the VXLAN implementation

In this update of the RHEL kernel, visibility patches were introduced which add new "drop reasons" in the Virtual eXtensible Local Area Networking (VXLAN) implementation. Visibility patches are important for troubleshooting problems, and thanks to these additions most of the dropped packets in VXLAN now have a reason attached to provide extra context.

Jira:RHEL-68063[1]

Network drivers for modems in RHEL are now fully supported

In the US, device manufacturers support Federal Communications Commission (FCC) locking as the default setting. FCC provides a lock to bind WWAN drivers to a specific system where WWAN drivers provide a channel to communicate with modems.

Based on the modem PCI ID, manufacturers may offer tools to unlock ModemManager, but they are not integrated in RHEL because they contain closed-source and private binaries.

A modem remains unusable if not unlocked previously, even if the WWAN driver is compatible and functional.

Red Hat Enterprise Linux provides the drivers for the following modems with full support:

  • Intel IPC over Shared Memory (IOSM) - Intel XMM 7360 LTE Advanced
  • Mediatek t7xx (WWAN) - Fibocom FM350GL
  • Intel IPC over Shared Memory (IOSM) - Fibocom L860GL modem
  • Qualcomm devices supported in upstream

Jira:RHELDOCS-16760[1]

nmstate now supports configuring IPvLAN

The nmstate API now supports configuring IPvLAN, a virtual network interface, that enhances network management and container networking.

IPvLAN supports the following modes:

  • l2: IPvLAN receives and responds to ARP requests, which improves performance but has less control on the network traffic.
  • l3: IPvLAN processes only layer 3 traffic and above. IPvLAN does not respond to ARP requests and you must manually configure the ARP table entries for the IPvLAN IP addresses on the relevant devices.
  • l3s: IPvLAN processes the same way as in l3 mode, except that both egress and ingress traffic of a relevant device passes through the netfilter chain in the default namespace.
  • Private: The private setting controls the isolation between the IPvLAN interface and other devices on the network.
  • Vepa: When enabled, IPvLAN forwards traffic through a central switch, which improves the network management by reducing broadcast traffic.

In the following example, you can setup IPvLAN for l3 mode:

---
interfaces:
  - name: ipvlan0
    type: ipvlan
    state: up
    ipvlan:
      base-iface: eth0
      mode: l3
      private: false
      vepa: false
Copy to Clipboard Toggle word wrap

Jira:RHEL-43438

3.8. Kernel

Kernel version in RHEL 9.6

Red Hat Enterprise Linux 9.6 is distributed with the kernel version 5.14.0-570.12.1.

The eBPF facility has been rebased to Linux kernel version 6.12

Notable changes and enhancements include the following:

  • BPF token, which supports delegating a subset of BPF functionality from privileged system-wide daemons to a trusted and unprivileged application.
  • BPF arena, a sparse shared memory region between the BPF program and user space that makes pointers within the arena work seamlessly.
  • may_goto instruction, which is a contract between the verifier and the program. The verifier allows the program to execute loops (provided that they run well) in most situations, but reserves the right to stop it.
  • BPF verifier support for static sub-program calls in spin lock critical sections.
  • Support for attaching kprobe BPF programs in a session mode where the program is attached to both the function entry and return. The entry program can decide if the return program gets executed, and the programs can share a u64 cookie value.
  • The ability to specify and retrieve the BPF cookie for raw tracepoint programs to ease migration from classic to raw tracepoints.
  • A new bpf_wq API has been introduced to provide a mechanism for deferring events.
  • Several new kfuncs (kernel functions callable from BPF programs) are added for calling crypto APIs, enabling/disabling preemption, generic bits iterators, and various VFS operations.
  • Support declaring arrays of kptr, bpf_rb_root, and bpf_list_head from BPF programs.
  • Support for detection of kfuncs for the running kernel and dumping compilable kfunc prototypes.
  • Support for 64-bit BPF v4 CPU instructions for PowerPC.
  • Support for resilient split BTF, which cuts down on duplication and makes BTF as compact as possible WRT BTF from modules.

Jira:RHEL-63880[1]

View the number of instances of each cgroup from cgroup.stat

For cgroup v2, the cgroup.stat control file is enhanced to show the number of instances of each cgroup subsystem in the unified hierarchy, including any dying ones.

The /proc/cgroups file used to show the number of cgroups for each cgroup subsystem is designed for cgroup v1. With cgroup v2, the information provided in /proc/cgroups is no longer applicable. This file is deprecated for cgroup v2.

Use the cgroup.stat file of the root cgroup to get the correct number of cgroup subsystems. This is the replacement of /proc/cgroups for cgroup v2.

Jira:RHEL-36267[1]

New option to disable idle states locally on CPUs during rtla-timerlat testing: deepest-idle-state

  • The arguments for the deepest-idle-state are the number of the deepest allowed idle state. If -1 is the value in the argument, and disables idle states on all CPUs.
  • In the rtla-timerlat instead of using /dev/cpu_dma_latency to disable the CPUs in the idle state globally, the deepest-idle-state option is added to set the deepest allowed idle state for CPUs where measurements are running.

As a result, you can save power and reflect the real-time workload during rtls-timerlat testing and use the deepest-idle-state instead of using the /dev/cpu_dma_latency to disable them globally.

Jira:RHEL-69522[1]

kpatch-dnf plugin is updated with improved kernel management

With the updated kpatch-dnf plugin, kernel upgrades are closely aligned with kpatch support. Administrators gain the flexibility to focus kernel updates on those supported by kpatch, leading to more reliable system upgrades and overall stability.

Jira:RHEL-77113[1]

Containerization of the rteval utility

With this update, you can run the rteval utility with all its runtime dependencies from a container image publicly available through the Quay.io container registry. This feature also enables you to, for example:

  • Use the deployment flexibility, where older RHEL versions can get newer versions of rteval.
  • Run multiple rteval instances on the same or multiple hosts.
  • Allocate specific system resources to rteval, which ensures fine-grained control over resource usage.

Alternatively, you can use the dockerfile template to build your own container image with rteval. You can find this dockerfile and the README file with more information in the upstream repository.

Jira:RHEL-9909[1]

TPM_TIS rebased to upstream 6.7 for Lenovo hardware

This release introduces an updated version of the Trusted Platform Module (TPM) Integration Services (TPM_TIS) firmware to upstream version 6.7. This update addresses stability and security enhancements for RHEL 9.6.

Jira:RHEL-52747[1]

kdump is rebased to 6.10

This update incorporates the latest improvements, bug fixes, and features from the 6.10 kernel related to crash dumping.

Jira:RHEL-58641

Landlock, a new Linux Security Module (LSM) is released

RHEL 9.6 introduces Landlock, a new security feature that makes your containers safer. Landlock sets strict rules for processes such as Podman to limit access to the file system through the kernel API, defining rules for themselves regardless of privilege level and allowing users to create hard limits over the accessible scope of the processes.

With Landlock, you can build programs that mitigate potential risks associated with misconfigured or maliciously targeted processes. This makes containers and the whole system more secure.

Jira:RHEL-8810

New integration testing to validate kdump procedures to prevent system failure

With this enhancement, you can check the log file for kdump procedures after any software or hardware updates to prevent system failure. After the analysis of the output log files, the configuration entries, such as memory issues or blacklist of some drivers, are corrected to validate the kdump procedures and generate the vmcore. This ensures that the kdump procedures are validated and corrected before a system crash after any software or hardware update.

Jira:RHEL-32060[1]

New timerlat-interval INTV_US and cyclictest-interval INTV_US options

With this enhancement, you can use the following new options of the rteval command to modify the base or periodic interval option in running timerlat or cyclictest threads:

  • timerlat-interval INTV_US
  • cyclictest-interval INTV_US

Note that if you do not use either of these options with rteval, the default value of 100 microseconds is applied.

Jira:RHEL-67423[1]

New option to disable idle states locally on latency testing with cyclictest

  • The cyclictest tool sets /dev/cpu_dma_latency to 0 by default to avoid increased latency when waking up from idle, which disables idle states on all CPUs.
  • The new deepest-idle-state option only disables idle states on CPUs which are selected for the testing. The argument specifies the deepest allowed idle state, setting it to -1 disables all idle states on the measured CPUs.
  • Tuning with the cyclictest is supposed to reflect the real-time workload testing, and thus using the deepest-idle-state instead of using the /dev/cpu_dma_latency to disable the CPU idle states reflects a use case where the real-time workload only disables idle states on the CPU where it is running.
  • As a result, the cyclictest coverage of addressing all use cases is increased, and power consumption decreases.

Jira:RHEL-65487[1]

NVMf-FC kdump is now supported on the IBM Power

NVMf-FC kdump now supports the IBM Power system for running kexec-tools. This allows the capture of system memory dumps over a fiber channel network by using the NVMe storage devices for high-speed and low-latency access to storage for crash dump data.

Jira:RHEL-11471[1]

3.9. Boot loader

GRUB Boot loader has been hardened in RHEL 9.6

This enhancement includes fixes for various security flaws discovered as part of a pro-active hardening effort in the GRUB2 code. This ongoing proactive fuzzing effort of the GRUB boot loader yielded several flaws and vulnerabilities, some of which were severe enough to be CVEs, such as the following:

  • CVE-2024-45774 grub2: reader/jpeg: Heap out-of-bounds (OOB) Write during JPEG parsing
  • CVE-2024-45775 grub2: commands/extcmd: Missing check for failed allocation
  • CVE-2024-45776 grub2: grub-core/gettext: Integer overflow leads to Heap OOB Write and Read.
  • CVE-2024-45781 grub2: fs/ufs: OOB write in the heap
  • CVE-2024-45783 grub2: fs/hfs+: refcount can be decremented twice
  • CVE-2025-0622 grub2: command/gpg: Use-after-free due to hooks not being removed on module unload
  • CVE-2025-0624: net: OOB write in grub_net_search_config_file()
  • CVE-2025-0677 grub2: UFS: Integer overflow might lead to heap based out-of-bounds write when handling symlinks
  • CVE-2025-0690 grub2: read: Integer overflow might lead to out-of-bounds write

Many of these flaws are buffer or integer overflows where GRUB did not check the integrity or length of variables resulting in the possibility for heap out-of-bounds writes. These were found for several filesystems in different contexts. The most severe one, CVE-2025-0624 with a CVSS v3 score of 7.6, is also a potential buffer overflow involving a user-controlled environment variable during network boot. These flaws could lead to overwriting sensitive data up to malicious code execution, and thus bypassing Secure Boot.

All of these flaws and vulnerabilities have been fixed in RHEL 9.6.

Jira:RHELDOCS-20163[1]

3.10. File systems and storage

EROFS file system is now supported

EROFS is a lightweight generic read-only file system suitable for various read-only use cases, such as embedded devices or containers. It provides deduplication and transparent compression as options for scenarios that require them.

For more information, see the erofs documentation.

Jira:RHELDOCS-18451[1]

snapm is now available in RHEL

Snapshot Manager (snapm) is a new component designed to assist in managing system state snapshots. You can use it to roll back updates or changes, and boot into previous system snapshots. Managing snapshots across multiple volumes and configuring boot entries for snapshot boot and snapshot rollback can often be complex and prone to errors. Snapshot Manager automates these common tasks and integrates seamlessly with Boom Boot Manager, simplifying the process. With this update, you can easily take snapshots of the system state, apply updates, and revert to the previous system state if necessary.

Jira:RHEL-59005[1]

NFS with TLS is fully supported

Network File System (NFS) with Transport Layer Security (TLS), introduced in RHEL 9.4 as a Technology Preview, is now fully supported. This feature enhances NFS security by enabling TLS for Remote Procedure Call (RPC) traffic, ensuring encrypted communication between clients and servers. For details, see Configuring an NFS server with TLS support.

Note that NFS with TLS relies on support from kernel TLS (kTLS). The kTLS feature for general use is provided as a Technology Preview. For details see the release notes in the Technology previews chapter.

Jira:RHEL-59704[1]

VFS mnt_idmap compile-time checking changes backported

This enhancement minimizes conflicts that might occur during the backporting of subsequent fixes or features. As a result, the risk of regressions with subsequent backports is reduced.

Jira:RHEL-33888[1]

CIFS client provides the ability to create special files under SMB shares

Common Internet File System (CIFS) client has the ability to create native Server Message Block (SMB), Network File System (NFS) or Windows Subsystem for Linux (WSL) symlinks. Use the new symlink=default|none|native|unix|mfsymlinks|sfu|nfs|wsl mount option to either completely disallow creating symlinks or to select what kind of symlinks will be created by the client. You can also create special files, such as character devices, block devices, pipes, and sockets, through NFS or WSL reparse points by using the reparse=default|none|nfs|wsl mount option. To create native Windows sockets that are supported by Windows applications on NT File System (NTFS) volumes, use the nativesocket mount option.

Jira:RHEL-76046[1]

3.11. High availability and clusters

Deleting multiple resources with a single pcs command

Before this update, the pcs resource delete, the pcs resource remove, the pcs stonith delete and the pcs stonith remove commands supported the removal of only one resource at a time. With this update, you can now delete multiple resources at once with a single command.

Jira:RHEL-61901

New pcs tag command option for displaying cluster resource tags in text, JSON, and command formats

The pcs tag [config] command now supports the --output-format option for the following use cases:

  • Displaying the configured text in plain text format by specifying --output-format=text. This is the default value for this option.
  • Displaying the commands created from the current cluster tags configuration by specifying --output-format=cmd. You can use these commands to re-create configured tags on a different system.
  • Displaying the configured tags in JSON format by specifying --output-format=json, which is suitable for machine parsing.

Jira:RHEL-46284[1]

Support for exporting fencing level configuration in JSON format and as pcs commands

The pcs stonith config and the pcs stonith level config commands now support the --output-format= option to display the fencing level configuration in JSON format and as pcs commands.

  • Specifying --output-format=cmd displays the pcs commands created from the current cluster configuration that configure fencing levels. You can use these commands to re-create configured fencing levels on a different system.
  • Specifying --output-format=json displays the fencing level configuration in JSON format, which is suitable for machine parsing.

Jira:RHEL-16232

Removing Booth cluster tickets from the CIB after removal from the Booth configuration

After you remove a Booth cluster ticket by using the pcs booth ticket remove command, the state of the Booth ticket remains loaded in the Cluster Information Base (CIB). This is also the case after you remove a ticket from the Booth configuration on one site and pull the Booth configuration to another site by using the pcs booth pull command. This might cause problems when you configure a ticket constraint, because a ticket constraint can be granted even after a ticket has been removed. As a consequence, the cluster might freeze or fence a node. As of RHEL 9.6, you can prevent this by removing a Booth ticket from the CIB with the pcs booth ticket cleanup command.

For information about removing a Booth ticket from the CIB, see Removing a Booth ticket.

Jira:RHEL-69040

A new module stream: mysql:8.4

MySQL 8.4 is now available as a new module stream, mysql:8.4. Notable enhancements over the previously available version 8.0 include:

  • Enhancements to password management: Administrators can now enforce password expiration, lengths, strength, reuse policy, and other password-related settings.
  • Authentication: The caching_sha2_password plugin is now the default and replaces the mysql_native_password plugin to increase the security.
  • Backup Compatibility: The mysqldump utility now provides an --output-as-version option which enables logical backups to be compatible with older MySQL versions.
  • EXPLAIN: This statement can now display results in JSON format.
  • Deprecation and removal: The following features, which were previously deprecated have been removed:

    • The mysqlpump utility
    • The mysql_native_password authentication plugin
    • The mysql_upgrade utility

For more information about changes in MySQL 8.4, see Notable differences between MySQL 8.0 and MySQL 8.4.

For more information about MariaDB, see Using MariaDB.

To install the mysql:8.4 stream, enter:

# dnf module install mysql:8.4
Copy to Clipboard Toggle word wrap

If you want to upgrade from MySQL 8.0, see Upgrading from MySQL 8.0 to MySQL 8.4.

For information about the length of support for the mysql module streams, see Red Hat Enterprise Linux Application Streams Life Cycle.

Jira:RHEL-68305[1]

ARGON2 password hashing is supported in PHP 8.3

PHP 8.3 is now available as the php:8.3 module stream. With this enhancement, support for the ARGON2I and ARGON2ID password hashing algorithms, provided by the openssl extension, is now available.

Jira:RHEL-73907

nginx 1.26 module stream is now available

The nginx 1.26 module stream includes various bug fixes and enhancements. Notable changes include:

  • HTTP/2 support is now available on a per-server basis.
  • Virtual servers can now be used with the stream module.
  • Stream connections are now passed to listen sockets.
  • Startup performance improvements are made for some complex configurations
  • An instantiated service support is now available. The nginx@.service unit is an instantiated template service. An instance of this unit uses the /etc/nginx/<INSTANCE>.conf configuration file, where INSTANCE is replaced with the instance name. To allow multiple instances of the nginx server to run simultaneously, you must change the following configuration:

    • pid
    • access_log
    • error_log to pick non-conflicting paths, and listen to choose different ports.

You can check the example configuration file /usr/share/doc/nginx/instance.conf to understand how to make such changes.

Jira:RHEL-73508[1]

New php:8.3 module stream is now available

The RHEL 9.6 adds PHP 8.3 as a new php:8.3 module stream. Notable enhancements include:

  • Typed class constants
  • Dynamic class constant fetch
  • New #[\Override] attribute
  • Deep-cloning of readonly properties

To install the php:8.3 module stream, use the following command:

# dnf module install php:8.3
Copy to Clipboard Toggle word wrap

For more information, see the following resources:

If you want to upgrade from the php:8.2 stream, see Switching to a later stream.

Jira:RHEL-21448[1]

3.13. Compilers and development tools

LLVM Toolset updated to 19.1.7

LLVM Toolset has been updated to version 19.1.7.

Notable changes of the LLVM compiler:

  • LLVM now uses debug records, a more efficient representation for debug information.

Notable updates of the Clang:

  • C++14 sized deallocation is now enabled by default.
  • C++17 support has been completed.
  • Improvements to C++20 support, especially around modules, concepts, and Class Template Argument Deduction (CTAD) have been added.
  • Improvements to C++23, C++2c, C23, and C2y support have been added.

For more information, see the LLVM release notes and Clang release notes.

LLVM Toolset is a rolling Application Stream, and only the latest version is supported. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.

Jira:RHEL-57460

The llvm-doc package now contains only a reference to the upstream documentation.

In previous versions, the llvm-doc package contained the LLVM documentation in HTML format. With this update, the package provides only the /usr/share/doc/llvm/html/index.html file which contains a reference to the upstream documentation.

Jira:RHEL-68696

Clang and LLVM now support zstd for debug section compression

By default, Clang and LLVM tools use Zlib as the algorithm for debug section compression. With this enhancement, users can alternatively use the Zstandard (zstd) algorithm which can reach a higher compression rate than Zlib.

For example, if you want to use zstd compression when you compile a program with Clang, use the following command:

$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
Copy to Clipboard Toggle word wrap

Jira:RHEL-70328

Rust Toolset rebased to version 1.84.1

Rust Toolset has been updated to version 1.84.1. Notable enhancements since the previously available version 1.79.0 include:

  • The new LazyCell and LazyLock types delay the initialization until the first use. These extend the earlier OnceCell and OnceLock types with the initialization function included in each instance.
  • The new sort implementations in the standard library improve the runtime performance and compile times. They also try to detect cases where a comparator is not producing a total order, making that panic instead of returning unsorted data.
  • Precise capturing for opaque return types have been added. The new use<..> syntax specifies the generic parameters and lifetimes used in an impl Trait return type.
  • Many new features for const code have been added, for example:

    • Floating point support
    • const immediates for inline assembly
    • References to statics
    • Mutable reference and pointers
  • Many new features for unsafe code have been added, for example:

    • Strict provenance APIs
    • &raw pointer syntax
    • Safely addressing statics
    • Declaring safe items in unsafe extern blocks
  • The Cargo dependency resolver is now version aware. If a dependency crate specifies its minimum supported Rust version, Cargo uses this information when it resolves the dependency graph instead of using the latest semver-compatible crate version.

Compatibility notes:

  • The WebAssembly System Interface (WASI) target is changed from rust-std-static-wasm32-wasi to rust-std-static-wasm32-wasip1. You can select the WASI target also by using the --target wasm32-wasip1 parameter on the command line. For more information, see the Changes to Rust’s WASI targets upstream blog post.
  • The split panic hook and panic handler arguments core::panic::PanicInfo and std::panic::PanicInfo are now different types.
  • extern "C" functions abort the process on uncaught panics. Use extern "C-unwind" instead to allow unwinding across ABI boundaries.

Rust Toolset is a rolling Application Stream, and Red Hat only supports the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.

Jira:RHEL-61964

PCP rebased to version 6.3.2

Performance Co-Pilot (PCP) has been updated to version 6.3.2. Notable changes over the previously available version 6.2.2 include:

  • pmdaopenmetrics: Virtual Large Language Model (vLLM) metrics are now added by default.
  • pmdalinux: Support for Hyper-V balloon metrics was added.
  • pmdalinux: The networking and hugepages kernel metrics were updated.
  • pmdaamdgpu: This new agent collects metrics from libdrm and libdrm-amdgpu libraries.
  • pmdabpftrace: The start of this agent with many or slow bpftrace scripts was fixed.
  • pmdaproc: This agent now collects new metrics from AMD GPUs from the Linux fdinfo interface.
  • pmdahacluster: Metrics were updated to support new Pacemaker versions.
  • pmdastatsd: A bug was fixed to avoid crashes under load.
  • pcp-htop: AMD GPU metrics support was added.
  • pcp-htop: Platform settings were fixed to enable screen tabs.
  • pcp-xsos: This utility was added. For details see pcp-xsos provides a rapid summary of a system.
  • pmrep: Numerous configuration file metric sets were updated.
  • pmlogconf: Numerous configuration file auto records were updated.
  • libpcp and pmcd: Several security-hardening improvements were added.
  • libpcp and pmlogger: Support for the optional zstd compression of archives was added.

Jira:RHEL-58953

The glibc library contains improved IBM POWER10 optimizations

With this enhancement, hardware support for the IBM POWER10 platform has been improved in the glibc library. As a result, the performance of the strcmp() and memchr() APIs has been significantly improved on this platform.

Jira:RHEL-24740[1]

valgrind rebased to version 3.24.0

The valgrind suite has been updated to version 3.24.0. Notable enhancements include:

  • The --track-fds=yes option now shows suppressible errors when using bad file descriptors, and the errors are written to the XML output. The warnings shown, if you do not use the option, are deprecated and will be removed in a future version.
  • Error messages now support Ada name demangling.
  • The deflate-conversion facility (z15/arch13) now supports the deflate compression call (DFLTCC) instruction on the IBM Z platform.
  • On the IBM Z platform, valgrind now supports the instructions provided by the message security assist (MSA) facility and its 1-9 extensions.
  • Valgrind now supports the following new Linux system calls:

    • open_tree
    • move_mount
    • fsopen
    • fsconfig
    • fsmount
    • fspick
    • landlock_create_ruleset
    • landlock_add_rule
    • landlock_restrict_self

Jira:RHEL-64070

libabigail rebased to version 2.6

The libabigail library has been updated to version 2.6. Notable changes include:

  • Better support for Linux kernel module analysis by using the BPF Type Format (BTF) and Common Trace Format (CTF).
  • Improved internal type comparison algorithms in the middle end.
  • Improved logging in abipkgdiff, abidw, and abilint utilities
  • Numerous bug fixes.

For further changes, see the upstream release notes.

Jira:RHEL-64069

SystemTap rebased to version 5.2

The SystemTap tracing and probing tool has been updated to version 5.2.

A notable enhancement is the full activation of debuginfod-metadata based probes, based on elfutils 0.192. With this feature, you can write a systemtap script to target a full range of versions of a given binary or library by searching a debuginfod server for all matching names.

Jira:RHEL-64066

elfutils rebased to version 0.192

The elfutils package has been updated to version 0.192. Notable improvements include:

  • The debuginfod service can now perform a per-file signature verification to check the integrity by using the RPM Integrity Measurement Architecture (IMA) scheme from RHEL.
  • A new debuginfod API was added to query server metadata, such as querying the build ID from a file name.
  • Debuginfod server-side extraction of files from kernel debuginfo packages is now significantly faster
  • The dwfl_set_sysroot, dwfl_frame_unwound_source, and dwfl_unwound_source_str functions were added to the libdw library.
  • The eu-stacktrace utility is available as a Technology Preview. For details, see eu-stacktrace available as a Technology Preview.

Jira:RHEL-64067

The ld linker now detects if an application uses read, write, and execute permissions for a memory region

A memory region with read, write, and execute permissions at the same time is a potential point of attack because a buffer overflow can allow executable code to be injected into the memory and then executed.

With this enhancement, the ld linker detects whether an application uses a memory region with these 3 permissions and reports the following error for applications:

ld: error: <file_name> has a LOAD segment with RWX permissions
Copy to Clipboard Toggle word wrap

You can suppress the error by using ld with the -no-error-rwx-segments option. However, to prevent a potential risk in your application if the linker does report this error, modify your source code and change how you build your application so that the problem is eliminated.

Jira:RHEL-59802[1]

The ld linker now detects if an application uses an executable stack

A stack that is held in an executable region of memory is a potential point of attacks if, due to a buffer overrun, executable code is placed there.

With this enhancement, the ld linker detects whether an application is created with an executable stack and reports errors, such as the following:

error: creating an executable stack because of -z execstack command line option
error: <file>: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)
error: <file>: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
Copy to Clipboard Toggle word wrap

You can suppress the error by using ld with the -no-error-execstack option. However, to prevent a potential risk in your application if ld reports the error, it is better to modify your source code and change the build machinery so that it does not use an executable stack.

Jira:RHEL-59801[1]

binutils now supports the arch15 extension of the IBM Z instruction set

With this enhancement, binutils supports the arch15 extensions of CPUs on the IBM Z platform. Developers can now use the new features provided by the arch15 extension in assembler source files or, when an updated compiler is available, also in compiled programs. This can result in smaller and faster programs.

Jira:RHEL-50068[1]

The boost-devel package provides BoostConfig.cmake and other official CMake scripts

This enhancement adds BoostConfig.cmake and other official CMake scripts to the boost-devel package. CMake uses these scripts in some cases to test if boost features exists. As a result, CMake projects that test for boost features work now more robustly.

Jira:RHEL-67177

Go Toolset rebased to version 1.23

Go Toolset has been updated to version 1.23. Notable enhancements include:

  • The for-range loop accepts iterator functions of the following types:

    • func(func() bool)
    • func(func(K) bool)
    • func(func(K, V) bool)

      Calls of the iterator argument function create the iteration values for the for-range loop. For reference links, see the upstream release notes.

  • The Go Toolchain can collect usage and breakage statistics to help the Go team to understand how the Go Toolchain is used and working. By default, Go Telemetry does not upload telemetry data and stores it only locally. For further information, see the upstream Go Telemetry documentation.
  • The go vet subcommand includes the stdversion analyzer which flags references to symbols that are too new for the version of Go you use in the referring file.
  • The cmd and cgo features support the -ldflags option to pass flags to the C linker. The go command uses this flag automatically to avoid argument list too long errors when you use a very large CGO_LDFLAGS environment variable.
  • The trace utility tolerates partially broken traces and attempts to recover the trace data. This is especially useful in case of crashes, because you can get the trace leading up to the crash.
  • The traceback printed by the runtime after an unhandled panic or other fatal error carries indentation to distinguish the stack trace of the goroutine from the first goroutine.
  • The compiler build time overhead of using profile-guided optimization was reduced to single-digit percentage.
  • The new -bindnow linker flag enables immediate function binding when building a dynamically-linked ELF binary.
  • The //go:linkname linker directive no longer refer to internal symbols in the standard library and the runtime that are not marked with //go:linkname on their definition.
  • If a program no longer refers to a Timer or Ticker, garbage collection cleans them up immediately even if their Stop method has not been called. The timer channel associated with a Timer or Ticker is now unbuffered with capacity 0. This ensures that, every time a Reset or Stop method is called, no stale values are not sent or received after the call.
  • The new unique package provides facilities for canonicalizing values, such as interning or hash-consing.
  • The new iter package provides the basic definitions to work with user-defined iterators.
  • The slices and maps packages introduce several new functions that work with iterators.
  • The new structs package provides types for struct fields that modify properties of the containing struct type, such as memory layout.
  • Minor changes are made in the following packages:

    • archive/tar
    • crypto/tls
    • crypto/x509
    • database/sql
    • debug/elf
    • encoding/binary
    • go/ast
    • go/types
    • math/rand/v2
    • net
    • net/http
    • net/http/httptest
    • net/netips
    • path/filepath
    • reflect
    • runtime/debug
    • runtime/pprof
    • runtime/trace
    • slices
    • sync
    • sync/atomic
    • syscall
    • testing/fstest
    • text/template
    • time
    • unicode/utf16

For more information, see the upstream release notes.

Go Toolset is a rolling Application Stream, and Red Hat supports only the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.

Jira:RHEL-62392[1]

glibc now supports the GB18030-2022 encoding standard

This enhancement updates the support of the GB18030 encoding standard in glibc from version 2005 to 2022. With version 2022, you can use 31 new transcoding relationships and the additional characters and code points introduced by this standard.

Jira:RHEL-56032[1]

Go Toolset rebased to version 1.24.4

Go Toolset has been updated to version 1.24.4 with the release of the RHSA-2025:10676 advisory.

Notable enhancements and changes include:

  • Language:

    • Generic type aliases are now fully supported, allowing type aliases to be parameterized for increased flexibility with generics.
  • Tools:

    • The Go module system supports tool directives in go.mod files, enabling direct management of executable dependencies.
    • The go build, go install, and go test commands now support the -json flag for structured output.
    • The new GOAUTH environment variable provides enhanced authentication for private modules.
  • Runtime and Performance:

    • Runtime improvements reduce CPU overhead by 2–3% on average.
    • Notable changes include a new map implementation based on Swiss Tables and more efficient memory allocation.
  • Standard Library:

    • The new os.Root type enables directory-limited filesystem access.
    • The testing.B.Loop method improves benchmarking.
    • The runtime.AddCleanup function provides a more flexible finalization mechanism.
    • The new weak package introduces weak pointers.
  • Cryptography:

    • New packages for ML-KEM post-quantum key exchange (crypto/mlkem), HKDF, PBKDF2, and SHA-3 are now available.
    • The Go Cryptographic Module is now under review for FIPS 140-3 certification.
  • Additional updates:

    • The vet tool includes a new analyzer for detecting common mistakes in tests and examples.
    • The objdump tool now supports more architectures.
    • Cgo introduces annotations for improved performance and correctness.

For more information, see the upstream release notes.

Go Toolset is a rolling Application Stream, and Red Hat supports only the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.

Jira:RHEL-101074[1]

3.14. Identity Management

New tool to manage IdM ID range inconsistencies

With this update, Identity Management (IdM) provides the ipa-idrange-fix tool. You can use ipa-idrange-fix tool to analyze existing IdM ID ranges, identify users and groups outside these ranges, and propose to create new ipa-local ranges to include them.

The ipa-idrange-fix tool performs the following:

  • Read and analyze existing ranges from LDAP.
  • Search for users and groups outside of ipa-local ranges.
  • Propose new ipa-local ranges to cover the identified users and groups.
  • Prompt the user to apply the proposed changes.

By default, the tool excludes IDs below 1000 to prevent conflicts with system accounts. Red Hat strongly recommends creating a full system backup before applying any suggested changes.

For more information, see the ipa-idrange-fix(1) man page.

Jira:RHEL-45330

Kerberos now supports the Elliptic Curve Diffie-Hellman key agreement algorithm

The Elliptic Curve Diffie-Hellman (ECDH) key agreement algorithm for PKINIT, as defined by RFC5349, is now supported. With this update, the pkinit_dh_min_bits setting in krb5.conf`file can now be configured with `P-256, P-384, or P-521 to use ECDH by default.

Jira:RHEL-4902

ansible-freeipa rebased to 1.14.5

The ansible-freeipa package has been rebased from version 1.13.2 to version 1.14.5. Notable enhancements and bug fixes include:

  • You can use module_defaults to define variables for multiple ansible-freeipa tasks

    The freeipa.ansible_freeipa collection now provides the module_defaults action group that simplifies the use of ansible-freeipa modules. By using module_defaults, you can set default values to be applied to all modules of the collection used in a playbook. To do so, use the action_group named freeipa.ansible_freeipa.modules. For example:

    - name: Test
       hosts: localhost
       module_defaults:
         group/freeipa.ansible_freeipa.modules:
           ipaadmin_password: Secret123
       tasks:
    …
    Copy to Clipboard Toggle word wrap

    As a result, the playbook is more concise.

  • Multiple IdM sudo rules can now be managed in a single Ansible task

    This enhancement adds the sudorules option to ansible-freeipa. By using sudorules, you can add, modify, and delete multiple Identity Management (IdM) sudo rules by using a single Ansible task. To do this, use the sudorules option of the ipasudorule module. As a result, you can define your sudo rules more easily, and execute them more efficiently.

    Using the sudorules option, you can specify multiple sudo rule parameters that apply to a particular sudo rule. This sudo rule is defined by the name variable, which is the only mandatory variable for the sudorules option. 

  • Removing external members by using the ipagroup module now works correctly

    Previously, attempting to ensure the absence of an external member from an IdM group by using the ansible-freeipa ipagroup module with the externalmember parameter did not remove the members from the group, even though Ansible presented the result of the task as changed. With this fix, using the ipagroup module with externalmember correctly ensures the absence of an external member from an IdM group. The fix also allows the use of either DOM\name or name@domain to identify AD users.

Jira:RHEL-67566

389-ds-base has been rebased to version 2.6.1

The 389-ds-base package has been rebased to version 2.6.1. Notable bug fixes and enhancements over version 2.5.2 include:

  • Log buffering for the error log
  • An option to write the audit log in JSON format
  • An option to defer updating group members when the group is updated
  • An option to configure the number of PBKDF2 iterations
  • The logconv.py log analyzer tool

Jira:RHEL-67195

openldap has been rebased to version 2.6.8

The openldap package has been updated to version 2.6.8. The update includes various enhancements and bug fixes, including:

  • Handling of TLS connections has been improved.
  • Kerberos SASL works with STARTTLS even when the Active Directory certificate is an Elliptic Curve Cryptography (ECC) certificate and SASL_CBINDING is set to tls-endpoint.

Jira:RHEL-71053

The new memberOfDeferredUpdate: on/off configuration attribute is now available in Directory Server

With this update, Directory Server introduces the new memberOfDeferredUpdate configuration attribute for the MemberOf plug-in. When set to on, the MemberOf plug-in defers the update of group members resulting in improved server responsiveness, especially if the group changes impact a large number of its members.

For details, see memberOfDeferredUpdate in the Red Hat Directory Server 12 Configuration and schema reference documentation.

Jira:RHEL-5151

Directory Server now provides buffering of the error, audit, and audit fail logs

Before this update, only the access and security logs had log buffering. With this update, Directory Server provides buffering of the error, audit, and audit fail logs. Use the following settings to configure log buffering:

  • nsslapd-errorlog-logbuffering for the error log. Disabled by default.
  • nsslapd-auditlog-logbuffering for the audit and audit fail log. Enabled by default.

For details, see nsslapd-errorlog-logbuffering and nsslapd-auditlog-logbuffering in the Red Hat Directory Server Configuration and schema reference documentation.

Jira:RHEL-78650

Directory Server now can update passwords with the CRYPT or CLEAR hashing algorithm after a successful bind

Before this update, Directory Server had a hard-coded list of hashing algorithms that were excluded from the password update during successful binds. Directory Server did not update user passwords that had the CRYPT or CLEAR hashing algorithm configured in the passwordStorageScheme attribute.

With this update, you can set the list of hashing algorithms that must be excluded from password updates by using the nsslapd-scheme-list-no-upgrade-hash configuration attribute. By default, nsslapd-scheme-list-no-upgrade-hash contains CRYPT and CLEAR for backward compatibility.

Jira:RHEL-62875

HSM is now fully supported in IdM

Hardware Security Modules (HSM) are now fully supported in Identity Management (IdM). You can store your key pairs and certificates for your IdM Cerificate Authority (CA) and Key Recovery Authority (KRA) on an HSM. This adds physical security to the private key material.

IdM relies on the networking features of the HSM to share the keys between machines to create replicas. The HSM provides additional security without visibly affecting most IdM operations. When using low-level tools the certificates and keys are handled differently but this is seamless for most users.

Note

Migration of an existing CA or KRA to an HSM-based setup is not supported. You need to reinstall the CA or KRA with keys on the HSM.

You need the following:

  • A supported HSM.
  • The HSM Public-Key Cryptography Standard (PKCS) #11 library.
  • An available slot, token, and the token password.

To install a CA or KRA with keys stored on an HSM, you must specify the token name and the path to the PKCS #11 library. For example:

ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-17465[1]

3.15. SSSD

New SSSD option: exop_force

You can use the exop_force option to force a password change even if no grace logins are left. Previously, SSSD did not attempt password changes if the LDAP server indicated that there were no grace logins remaining. Now, if you set ldap_pwmodify_mode = exop_force in the [domain/…​] section of the sssd.conf file, SSSD tries to change the password even if no grace logins are left.

Jira:RHELDOCS-19863[1]

Support for group merging added in authselect

If you are using the authselect utility, you no longer need to manually edit the nssswitch.conf file to enable group merging. With this update, It is now integrated into authselect profiles, eliminating the need for manual changes.

Jira:RHELDOCS-19936[1]

Support for dynamic DoT updates in SSSD

SSSD now supports performing all dynamic DNS (dyndns) queries using DNS-over-TLS (DoT). You can securely update DNS records when IP addresses change, such as Identity Management (IdM) and Active Directory servers. To enable this functionality, you must install the nsupdate tool from the bind9.18-utils package.

You can use the following new options in the sssd.conf file to enable DoT and configure custom certificates for secure DNS updates:

  • dyndns_dns_over_tls
  • dyndns_tls_ca_cert
  • dyndns_tls_cert
  • dyndns_tls_key

For more details about these options, see the sssd-ad(5) and sssd-ad(5) man pages on your system.

Jira:RHELDOCS-20057[1]

3.16. Red Hat Enterprise Linux System Roles

New variable in the postfix RHEL system role: postfix_default_database_type

The postfix system role can determine the default database type used by postfix and export it as a variable postfix_default_database_type. As a result, you can set configuration parameters based on the default database type.

Note

Using postfix_default_database_type in a configuration parameter value is not supported on Ansible 2.9.

Jira:RHEL-69983

New variables in the microsoft.sql.server system role: mssql_tools_versions and mssql_tls_self_sign

The new mssql-tools18 package brings functionality that is not backwards-compatible with the previous versions of the mssql-tools package. Therefore the following variables have been added to the microsoft.sql.server system role to adapt to the changes:

  • mssql_tools_versions (list, defaults to version 18): Enables you to install different versions of mssql-tools.
  • mssql_tls_self_sign (boolean): Specifies whether the certificates that you use are self-signed or not. Applicable when you also set the mssql_tls_enable: true variable.
Important

When you use mssql-tools18 with self-signed TLS certificates, you have to set mssql_tls_self_sign: true so that the role sets the -C flag in the sqlcmd command-line utility so that your certificates can be trusted.

As a result, you can use these configurations to install mssql_tools version 17; 18; or both in parallel.

For more details, see the resources in the /usr/share/ansible/roles/microsoft.sql-server/ directory.

Jira:RHEL-68374

New RHEL system role: aide

You can use the new aide RHEL system role for detecting unauthorized changes to files, directories, and system binaries. With this role, you can accomplish, for example, the following tasks:

  • Install the aide package on the managed node
  • Generate the /etc/aide.conf file and template it out to the managed node
  • Initialize the (Advanced Intrusion Detection Environment) AIDE database
  • Run AIDE integrity checks on the managed node
Important

The role does not explain how to create a suitable AIDE configuration.

As a result, you can manage AIDE at scale in an automated fashion to address your security, compliance or auditing needs.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/aide/ directory.

Jira:RHEL-67244

New variable in the sudo RHEL system role: sudo_check_if_configured

The sudo RHEL system role has the following variable:

  • sudo_check_if_configured (boolean): Provides a semantic check of an already configured sudoers file in case the Ansible setup is not needed and is skipped.

As a result, you can use this setting to ensure the sudo role idempotence if Ansible intervention is not required.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/sudo/ directory.

Jira:RHEL-61596

The microsoft.sql.server system role enables AES 128-bit and AES 256-bit encryption for AD users

Since version 1.1.83, the adutil utility supports the Kerberos protocol with AES 128-bit and AES 256-bit encryption when creating and modifying an Active Directory (AD) user. With this update, the microsoft.sql.server system role automates enabling AES 128-bit and AES 256-bit encryption provided by the Kerberos protocol when creating or modifying AD users. As a result, manual post-configuration tasks are not necessary.

Jira:RHEL-67807

The systemd RHEL system role can manage user units in addition to system units

With this update, the systemd RHEL system role can also manage user units. For each unit file or unit specified in systemd_unit_files, or systemd_unit_file_templates, or systemd_started_units and so on, you can add a user: name if you want that file or unit to be managed for the given user. The default is root which is used for system units.

To get the units on the system managed by the role, including both system and user units, a new return variable has been added:

  • systemd_units_user (dictionary): Each key is a name of a user given in one of the lists passed to the role, and root (even if root is not given). Each value is a dictionary of systemd units for that user, or system units for root.
Important

The role does not create new users and it will return an error if you specify a non-existent user.

As a result, you can manage user units with the systemd RHEL system role.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/systemd/ directory.

Jira:RHEL-27760

Support for exporting corosync configuration of an existing cluster

The ha_cluster RHEL system role supports exporting the corosync configuration of an existing cluster in a format that can be fed back to the role to recreate the same cluster. If you did not use the ha_cluster RHEL system role to create your cluster, or if you have lost the original playbook for the cluster, you can use this feature to build a new playbook for the cluster.

Jira:RHEL-70483

The podman RHEL system role can manage the quadlet units of type Pod

The podman utility of version 5 added support for Pod quadlet types. Consequently, the podman RHEL system role enables you to also manage the quadlet units of type Pod.

For more details, see the upstream article.

Jira:RHEL-36014

New property added to the network RHEL system role network_connections variable: autoconnect_retries

There is no fine-grained control over the number of automatic retries to reconnect a network connection in the network RHEL system role. This limitation could be problematic for certain use cases where extending the retry process is critical, particularly in environments with unstable networks. The autoconnect_retries property added to the to the network_connections role variable configures how many times NetworkManager attempts to reconnect a network connection after an autoconnect failure. As a result, the network RHEL system role allows configuring the number of automatic reconnection attempts after an autoconnect failure by using the autoconnect_retries property in the network_connections variable. This enhancement provides greater control over network stability and performance, especially in environments with unstable networks.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/network/ directory.

Jira:RHEL-61599

New property added to the network RHEL system role network_connections variable: wait_ip

This update provides added support for the wait_ip property of the ip option in the network_connections role variable. The property specifies if the system should consider the network connection as activated only when a specific IP stack is configured. You can configure wait_ip with the following values:

  • any: The system considers the connection activated once any IP stack is configured.
  • ipv4: The system waits until IPv4 is configured.
  • ipv6: The system waits until IPv6 is configured.
  • ipv4+ipv6: The system waits until both IPv4 and IPv6 are configured.

As a result, the network RHEL system role allows you to configure network connections based on specific IP stack configurations. This enables the connection to remain activated even if an IP address is not assigned, depending on the selected wait_ip setting.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/network/ directory.

Jira:RHEL-63026

The metrics RHEL system role supports Valkey as an alternative to Redis

This update provides added support for the Valkey in-memory data structure store for the metrics RHEL system role. It is an alternative to Redis, which is no longer open source and is being removed from Linux distributions. Valkey is typically used as a high-performance caching layer. It stores data in memory, which accelerates applications by caching frequently accessed data. Additionally, you can use Valkey for other performance-critical operations, for example:

  • Storing and retrieving user session data.
  • Real-time communication between different application parts.
  • Providing fast data access for analytics and monitoring.

Jira:RHEL-65748

New variable in the logging RHEL system role: logging_custom_templates

The following variable has been added to the logging RHEL system role:

  • logging_custom_templates: A list of custom template definitions. You can use it with the logging_outputs variable when its option is type: files or type: forwards. You can specify this custom template for each output by setting the template option in a particular logging_outputs specification. Alternatively, you can set this custom template to be used by default for all files and forwards outputs by using the logging_files_template_format and logging_forwards_template_format global options.

As a result, you can format log entries differently than what the built-in defaults provide.

For more details, see the resources in the /usr/share/doc/rhel-system-roles/logging/ directory.

Jira:RHEL-61947

sshd RHEL system role validates commands and configurations

The sshd role uses the quote command when using the command or shell plugins to ensure you can use these commands safely. The role also validates certain user-supplied role variables passed to these plugins. This improves the security and robustness of using the role because, without validation, user-supplied variables that contain white space could split and not function correctly.

Jira:RHEL-73406

3.17. Virtualization

KVM on IBM Z now supports more than one boot device

Guest operating systems running on KVM on IBM Z hosts can attempt booting from additional devices when the primary boot device is not bootable. This feature is supported for the following device types:

  • virtio-net
  • virtio-blk
  • virtio-scsi/cdrom

To configure the order of the boot devices for the VM, use the order parameter on the <boot> line of their XML configuration. The VM will now attempt up to 8 devices for booting.

In addition, these devices now support the loadparm parameter for the <boot> line of their XML configuration. By using loadparm, it is possible to configure which boot entry the device uses when the guest operating system boots from the device.

Jira:RHEL-68440

Virtual machines supported in RHEL for Real Time

This update introduces full support for real-time virtualization in RHEL for Real Time. You can configure the host and guest operating systems to achieve low-latency and deterministic behavior for virtual machines (VMs). This makes real-time VMs suitable for applications that require real-time performance, such as industrial automation, telecommunications, and automotive systems.

Jira:RHELDOCS-20116[1]

Newly supported features for virtual machines on 64-bit ARM hosts

The following features are now supported for virtual machines on RHEL hosts that use the 64-bit ARM architecture, also known as aarch64:

  • Migrating VMs between 64-bit ARM hosts. Note, however, that the migration currently only works when both hosts use the same CPU type and memory page size.
  • The Trusted Platform Module (TPM) Interface Specification (TIS) hardware interface
  • Non-volatile dual inline memory module (NVDIMM) memory device
  • The virtio-iommu device

Jira:RHELDOCS-19832[1]

virt-install now supports creating VMs with SEV-SNP

You can now use the virt-install utility to create a virtual machine (VM) that uses the AMD Secure Encrypted Virtualization with Secure Nested Paging (SEV-SNP) feature. To do so, use the launchSecurity sev-snp,policy=0x30000 option.

Note that SEV-SNP is currently provided as a Technology Preview.

Jira:RHEL-62959

Support for VM live migration with shared virtiofs directory that provides write access to other parties

With this update, you can live migrate a virtual machine (VM) with a virtiofs shared directory, even if multiple other parties, such as the host and other VMs, have write access to that directory.

Jira:RHEL-29027

Virtualization support for IBM z17 processors

With this update, virtualization on RHEL adds support for the IBM z17 CPUs. As a result, virtual machines hosted on an IBM Z system with RHEL can now use new features that the z17 processors provide.

Jira:RHEL-33137[1]

Retrievable secrets are supported for Secure Execution on IBM Z

With this update, you can use generalized host-based secrets for cryptographic devices in Secure Execution virtual machines (VMs) on IBM Z. As a result, it is no longer needed to store secrets in an initramfs image when configuring Secure Execution, which simplifies creating a secure VM image. Note that this feature is currently only supported on IBM z17 processors.

Jira:RHEL-50754[1]

Virtualization support for Intel Xeon v6 processors

With this update, virtualization on RHEL 9 adds support for the Intel Xeon v6 processors, formerly known as Sierra Forest. As a result, virtual machines hosted on RHEL 9 can now use the SierraForest CPU model and use new features that the processors provide.

Jira:RHEL-15731[1], Jira:RHEL-15719

RHEL supports live migrating a VM with a Mellanox virtual function

With this update, you can perform live migration of a virtual machine (VM) with an attached virtual function (VF) of a Mellanox networking device.

However, this feature is currently only supported with a Mellanox CX-7 networking device with a specific firmware version. The VF on the Mellanox CX-7 networking device uses a new mlx5_vfio_pci driver, which adds functionality that is necessary for the live migration, and libvirt binds the new driver to the VF automatically.

For more details and limitations, see: Live migrating a virtual machine with an attached Mellanox virtual function

Jira:RHELDOCS-19210[1]

3.18. RHEL in cloud environments

Intel TDX in RHEL guests

The Intel Trust Domain Extension (TDX) feature is now fully supported in RHEL 9.5 and later when used as a guest operating system. If the host system supports TDX, you can deploy hardware-isolated RHEL 9 guests, called trust domains (TDs). This increases the isolation of the RHEL guest from the host, and makes it significantly more difficult for the host to access the data on the RHEL guest.

Jira:RHEL-70465[1]

Unified Kernel Image for RHEL is fully supported

Unified Kernel Image (UKI) for RHEL, which was introduced in RHEL 9.2 as a Technology Preview, is now fully supported. To use RHEL UKI, you must first install the kernel-uki-virt package. RHEL UKI can enhance SecureBoot protection in virtualized and cloud environments.

Jira:RHELDOCS-19839[1]

WSL images of RHEL 8 - 10 are available on the Customer Portal

RHEL 8, RHEL 9, and RHEL 10 images for the Windows Subsystem for Linux (WSL) can now be downloaded from the Red Hat Customer Portal. These images are available for all RHEL subscriptions, including no-cost developer subscriptions. By using the WSL images, you can create RHEL instances on your Windows system.

Note that the WSL images are provided as self-supported. As such, they are not supported by Red Hat, and are intended for application development purposes only.

In addition, the following issues are currently present in the RHEL guest operating system if you use a WSL image with a Windows WSL host:

  • WSL instances of RHEL might work incorrectly in a graphical interface. Using a text user interface is recommended instead.
  • To use podman, you must add the following lines to the /etc/containers/containers.conf file, in addition to the standard configuration steps:

    [network]
    firewall_driver="iptables"
    Copy to Clipboard Toggle word wrap
  • To use cloud-init, you must create the /etc/cloud/cloud.cfg.d/99_wsl.cfg file and add the following content to it, in addition to the standard configuration steps:

    datasource_list: [WSL]
    network: {config: disabled}
    Copy to Clipboard Toggle word wrap
  • It is not possible to set SELinux to enforcing mode.
  • FIPS mode is not available in WSL instances of RHEL.

Jira:RHELDOCS-19876

RHEL on HPE can run up to 4096 vCPUs

With this feature, a RHEL virtual machine (VM) instance running with the RHEL KVM hypervisor on Hewlett Packard Enterprise Compute Scale-Up Server now supports up to 4096 virtual CPUs, 32 sockets, and 64 TB of memory to handle in-memory databases and other large compute intensive workloads.

Jira:RHEL-11043[1]

Enhanced automatic registration for eligible RHEL images

When purchasing certain eligible cloud marketplace subscriptions for RHEL 9.6 or later and for RHEL 10.0 or later, an improved version of the auto-registration function is available.

With the enhanced auto-registration, any RHEL instances on the eligible marketplaces will be automatically registered to Red Hat and automatically receive content updates from Red Hat Update Infrastructure (RHUI) after you establish a trusted connection between your Red Hat account and your account for the specific cloud platform, even if you did not have the trusted connection when you set launched the instance.

For additional details, see Understanding auto-registration.

Jira:RHELDOCS-19664[1]

3.19. Supportability

The plugin option names now use only hyphens instead of underscores

To ensure consistency across sos global options, the plugin option names now use only hyphens instead of underscores For example, the networking plugin namespace_pattern option is now namespace-pattern and must be specified by using the --plugin-option networking.namespace-pattern=<pattern> syntax.

Jira:RHELDOCS-18655[1]

The --api-url option is now available

With the --api-url option you can call another API as required. For example, the API for an OpenShift Container Platform cluster. Example: sos collect --cluster-type=ocp --cluster-option ocp.api-url=_<API_URL> --alloptions.

Jira:RHEL-24523

The new --skip-cleaning-files option is now available

The --skip-cleaning-files option for the sos report command allows you to skip cleaning selected files. The option supports globs and wildcards. Example: sos report -o host --batch --clean --skip-cleaning-files 'hostname'.

Jira:RHEL-30893[1]

3.20. Containers

Podman supports pushing and pulling images compressed with zstd:chunked

You can push images compressed with the zstd:chunked format to reduce the image size and use partial pulls.

Jira:RHEL-68240

The Container Tools packages have been updated

The updated Container Tools RPM meta-package, which contains the Podman, Buildah, Skopeo, crun, and runc tools, is now available. The Buildah has been updated to version 1.39.0, Skopeo has been updated to version 1.18.0. Podman v5.4 contains the following notable bug fixes and enhancements over the previous version:

  • The podman update command now supports a wide variety of options related to health checks: the --health-cmd to define a new health check and --no-healthcheck to disable an existing health check. These options make it easier to add, modify, or disable health checks on running containers. For more information, see the podman-update(5) man page.
  • The --mount type=volume option for the podman run, podman create, and podman volume create commands now supports a new option, subpath=, to make only a subset of the volume visible in the container.
  • The --userns=keep-id option for the podman run, podman create, and podman pod create commands now supports a new option, --userns=keep-id:size=, to configure the size of the user namespace.
  • The podman kube play command now supports Container Device Interface (CDI) devices.
  • The podman run, podman create, and podman pod create commands now support a new option, --hosts-file, to define the base file used for /etc/hosts in the container.
  • The podman run, podman create, and podman pod create commands now support a new option, --no-hostname, which disables the creation of /etc/hostname in the container.
  • The podman network create command now supports a new option for bridge networks, --opt mode=unmanaged, which allows Podman to use an existing network bridge on the system without changes.
  • The --network option for podman run, podman create, and podman pod create now accepts a new option for bridge networks, host_interface_name, which specifies a name for the network interface created outside the container.
  • The podman manifest rm command now supports a new option,--ignore, to proceed successfully when removing manifests that do not exist.
  • The podman system prune command now supports a new option, --build, to remove build containers leftover from prematurely terminated builds.
  • Podman now passes container hostnames to Netavark, which uses them for any DHCP requests for the container.
  • Packagers can now set the BUILD_ORIGIN environment variable when building podman from the Makefile. This provides information on who built the Podman binary, and this information is displayed in the podman version and podman info commands. Including this information can assist with bug reports by helping maintainers to identify the source and method of the build and installation.
  • The podman kube generate and podman kube play commands can now create and run Kubernetes Job YAML.
  • The podman kube generate command now includes information on the user namespaces for pods and containers in the generated YAML. The podman kube play command uses this information to duplicate the user namespace configuration when creating new pods based on the YAML.
  • The podman kube play command now supports Kubernetes volumes of type image.
  • The service name of systemd units generated by Quadlet can now be set with the ServiceName key in all supported Quadlet files.
  • Quadlets can now disable their implicit dependency on network-online.target by using a new key, DefaultDependencies, supported by all Quadlet files.
  • Quadlet .container and .pod files now support a new key, AddHost, to add hosts to the container or pod.
  • The PublishPort key in Quadlet .container and .pod files can now accept variables in its value.
  • Quadlet .container files now support two new keys, CgroupsMode and StartWithPod, to configure control groups for the container and whether the container will be started with the pod that it is part of.
  • Quadlet .container files can now use the network of another container by specifying the .container file of the container to share within the Network key.
  • Quadlet .container files can now mount images managed by .image files into the container by using the Mount=type=image key with an .image target.
  • Quadlet .pod files now support six new keys, DNS, DNSOption, DNSSearch, IP, IP6, and UserNS, to configure DNS, static IPs, and user namespace settings for the pod.
  • Quadlet .image files can now give an image multiple times by specifying the ImageTag key multiple times.
  • Quadlets can now be placed in the /run/containers/systemd directory and existing directories, such as $HOME/containers/systemd and /etc/containers/systemd/users.
  • Quadlet now properly handles subdirectories of a unit directory that is a symlink.
  • The podman manifest inspect command now includes the manifest’s annotations in its output.
  • The --add-host option for podman create, podman run, and podman pod create now supports specifying multiple hostnames, semicolon-separated (for example podman run --add-host test1;test2:192.168.1.1).
  • The podman run and podman create commands now support three new options for configuring health check logging: --health-log-destination (specifies where logs are stored), --health-max-log-count (specifies how many health checks worth of logs are stored), and --health-max-log-size (specifies the maximum size of the health check log).

For more information about notable changes, see upstream release notes.

Jira:RHEL-66763

Enhanced health check output configuration is now available in Podman

Podman now offers enhanced configurability for health check outputs on a per-container basis. Before this update, health check outputs were limited to the five most recent executions, each capped at 500 characters, accessible only by using the podman inspect command. You can now adjust the amount of health check output stored for each container, allowing for more comprehensive debugging information when needed. This feature is particularly beneficial for diagnosing intermittent health check failures without disrupting the running service. Additionally, to address concerns about sensitive data and storage efficiency, you can opt to limit or disable health check output storage for specific containers.

For more details, see the podman-update man page.

Jira:RHEL-60561[1]

Deploying a container image by using a single command is now available

You can deploy a container image into a RHEL cloud instance by using a signal command. The system-reinstall-bootc command installs performs the following actions:

  • Pull the supplied image to set up SSH keys or access the system.
  • Run the bootc install to-existing-root command with all the bind mounts and SSH keys configured.

Jira:RHELDOCS-19516[1]

Creating custom bootc images from scratch is now supported

You can create bootc images from scratch and fully control the contents of the image and tailor the system environment to meet specific requirements. With the bootc-base-imgectl command, you can create custom bootc images based on an existing bootc base image. Bootc Image from Scratch are derived from container images and do not automatically receive updates from the default base image. To include such updates, you must incorporate them manually as part of your container pipeline. Additionally, you can use the rechunk subcommand in bootc-base-imgectl on any bootc container image to optimize or restructure the image as needed.

Jira:RHELDOCS-19825[1]

A new image build progressing bar available for bootc-image-builder

Previously, you could not check if an image build was progressing by looking into the logs. With this enhancement, you can check the progress of the image build that you created by using bootc-image-builder. You can revert to the previous behavior by using the --progress=verbose argument when building images.

Jira:RHELDOCS-20170[1]

3.21. Lightspeed

The command-line assistant powered by RHEL Lightspeed is generally available in RHEL

The command-line assistant powered by RHEL Lightspeed is available within the RHEL command line. The generative AI that powers the assistant is trained on information from the RHEL product documentation and Red Hat Knowledgebase, and can help you to understand, configure, and troubleshoot your RHEL systems in a more accessible way, whether you are new to RHEL or already an experienced user.

Jira:RHELDOCS-20019[1]

The command line assistant supports using the systemd-creds as a password store manager

The command-line assistant powered by RHEL Lightspeed integrates command line assistant daemon (clad) by using the systemd-creds, a password store manager shipped with RHEL. This means that you can securely store your passwords by using databases such as PostgreSQL or MySQL as your history backend. As a result, you can use the tool for listing, showing, encrypting and decrypting unit credentials in a secure manner.

Jira:RHELDOCS-20024[1]

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat