Red Hat Enterprise Linux-9-9.3 Release Notes-En-Us
Red Hat Enterprise Linux-9-9.3 Release Notes-En-Us
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons
Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is
available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift,
Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States
and other countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the
official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other
countries and are used with the OpenStack Foundation's permission. We are not affiliated with,
endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
Abstract
The Release Notes provide high-level coverage of the improvements and additions that have been
implemented in Red Hat Enterprise Linux 9.3 and document known problems in this release, as well
as notable bug fixes, Technology Previews, deprecated functionality, and other details. For
information about installing Red Hat Enterprise Linux, see Installation.
Table of Contents
Table of Contents
. . . . . . . . . .OPEN
MAKING . . . . . . SOURCE
. . . . . . . . . .MORE
. . . . . . .INCLUSIVE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . .
. . . . . . . . . . . . . FEEDBACK
PROVIDING . . . . . . . . . . . . ON
. . . .RED
. . . . .HAT
. . . . .DOCUMENTATION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . .
.CHAPTER
. . . . . . . . . . 1.. .OVERVIEW
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . .
1.1. MAJOR CHANGES IN RHEL 9.3 7
Installer and image creation 7
RHEL for Edge 7
Security 7
Dynamic programming languages, web and database servers 8
Compilers and development tools 8
Updated system toolchain 8
Updated performance tools and debuggers 8
Updated performance monitoring tools 8
Updated compiler toolsets 8
Java implementations in RHEL 9 8
1.2. IN-PLACE UPGRADE 9
In-place upgrade from RHEL 8 to RHEL 9 9
In-place upgrade from RHEL 7 to RHEL 9 10
1.3. RED HAT CUSTOMER PORTAL LABS 10
1.4. ADDITIONAL RESOURCES 10
. . . . . . . . . . . 2.
CHAPTER . . ARCHITECTURES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
..............
.CHAPTER
. . . . . . . . . . 3.
. . DISTRIBUTION
. . . . . . . . . . . . . . . . OF
. . . .CONTENT
. . . . . . . . . . .IN
. . .RHEL
. . . . . .9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
..............
3.1. INSTALLATION 13
3.2. REPOSITORIES 13
3.3. APPLICATION STREAMS 14
3.4. PACKAGE MANAGEMENT WITH YUM/DNF 14
.CHAPTER
. . . . . . . . . . 4.
. . .NEW
. . . . .FEATURES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
..............
4.1. INSTALLER AND IMAGE CREATION 15
4.2. SECURITY 16
4.3. RHEL FOR EDGE 23
4.4. SOFTWARE MANAGEMENT 24
4.5. SHELLS AND COMMAND-LINE TOOLS 25
4.6. INFRASTRUCTURE SERVICES 26
4.7. NETWORKING 26
4.8. KERNEL 33
4.9. BOOT LOADER 36
4.10. FILE SYSTEMS AND STORAGE 37
4.11. HIGH AVAILABILITY AND CLUSTERS 40
4.12. DYNAMIC PROGRAMMING LANGUAGES, WEB AND DATABASE SERVERS 42
4.13. COMPILERS AND DEVELOPMENT TOOLS 45
4.14. IDENTITY MANAGEMENT 64
4.15. GRAPHICS INFRASTRUCTURES 69
4.16. THE WEB CONSOLE 69
4.17. RED HAT ENTERPRISE LINUX SYSTEM ROLES 70
4.18. VIRTUALIZATION 73
4.19. RHEL IN CLOUD ENVIRONMENTS 74
4.20. SUPPORTABILITY 75
4.21. CONTAINERS 76
1
Red Hat Enterprise Linux 9.3 9.3 Release Notes
.CHAPTER
. . . . . . . . . . 5.
. . IMPORTANT
. . . . . . . . . . . . . .CHANGES
. . . . . . . . . . .TO
. . . .EXTERNAL
. . . . . . . . . . . .KERNEL
. . . . . . . . .PARAMETERS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
..............
New kernel parameters 79
Updated kernel parameters 80
Removed kernel parameters 85
. . . . . . . . . . . 6.
CHAPTER . . .DEVICE
. . . . . . . .DRIVERS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
..............
6.1. NEW DRIVERS 86
Network drivers 86
Graphics drivers and miscellaneous drivers 88
6.2. UPDATED DRIVERS 90
Network driver updates 90
Storage driver updates 91
. . . . . . . . . . . 7.
CHAPTER . . AVAILABLE
. . . . . . . . . . . . .BPF
. . . . .FEATURES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
..............
.CHAPTER
. . . . . . . . . . 8.
. . .BUG
. . . . .FIXES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
..............
8.1. INSTALLER AND IMAGE CREATION 111
8.2. SECURITY 111
8.3. SUBSCRIPTION MANAGEMENT 117
8.4. SOFTWARE MANAGEMENT 117
8.5. SHELLS AND COMMAND-LINE TOOLS 117
8.6. NETWORKING 119
8.7. KERNEL 119
8.8. BOOT LOADER 119
8.9. FILE SYSTEMS AND STORAGE 120
8.10. HIGH AVAILABILITY AND CLUSTERS 120
8.11. COMPILERS AND DEVELOPMENT TOOLS 122
8.12. IDENTITY MANAGEMENT 123
8.13. THE WEB CONSOLE 126
8.14. RED HAT ENTERPRISE LINUX SYSTEM ROLES 126
8.15. VIRTUALIZATION 130
.CHAPTER
. . . . . . . . . . 9.
. . .TECHNOLOGY
. . . . . . . . . . . . . . . PREVIEWS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
...............
9.1. INSTALLER AND IMAGE CREATION 132
9.2. SECURITY 132
9.3. SHELLS AND COMMAND-LINE TOOLS 132
9.4. INFRASTRUCTURE SERVICES 132
9.5. NETWORKING 133
9.6. KERNEL 134
9.7. FILE SYSTEMS AND STORAGE 136
9.8. COMPILERS AND DEVELOPMENT TOOLS 137
9.9. IDENTITY MANAGEMENT 138
9.10. DESKTOP 140
9.11. VIRTUALIZATION 141
9.12. RHEL IN CLOUD ENVIRONMENTS 142
9.13. CONTAINERS 142
.CHAPTER
. . . . . . . . . . 10.
. . . DEPRECATED
. . . . . . . . . . . . . . . FUNCTIONALITY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
...............
10.1. INSTALLER AND IMAGE CREATION 144
10.2. SECURITY 145
10.3. SUBSCRIPTION MANAGEMENT 147
10.4. SHELLS AND COMMAND-LINE TOOLS 147
10.5. NETWORKING 148
10.6. KERNEL 148
2
Table of Contents
. . . . . . . . . . . 11.
CHAPTER . . .KNOWN
. . . . . . . . .ISSUES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
..............
11.1. INSTALLER AND IMAGE CREATION 171
11.2. SECURITY 175
11.3. RHEL FOR EDGE 179
11.4. SOFTWARE MANAGEMENT 179
11.5. SHELLS AND COMMAND-LINE TOOLS 180
11.6. INFRASTRUCTURE SERVICES 181
11.7. NETWORKING 182
11.8. KERNEL 183
11.9. FILE SYSTEMS AND STORAGE 187
11.10. DYNAMIC PROGRAMMING LANGUAGES, WEB AND DATABASE SERVERS 189
11.11. IDENTITY MANAGEMENT 190
11.12. DESKTOP 194
11.13. GRAPHICS INFRASTRUCTURES 195
11.14. RED HAT ENTERPRISE LINUX SYSTEM ROLES 195
11.15. VIRTUALIZATION 196
11.16. RHEL IN CLOUD ENVIRONMENTS 201
11.17. SUPPORTABILITY 203
11.18. CONTAINERS 203
. . . . . . . . . . . .A.
APPENDIX . . LIST
. . . . . .OF
. . . TICKETS
. . . . . . . . . .BY
. . . COMPONENT
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
...............
. . . . . . . . . . . .B.
APPENDIX . . REVISION
. . . . . . . . . . . HISTORY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
...............
3
Red Hat Enterprise Linux 9.3 9.3 Release Notes
4
MAKING OPEN SOURCE MORE INCLUSIVE
5
Red Hat Enterprise Linux 9.3 9.3 Release Notes
4. Enter your suggestion for improvement in the Description field. Include links to the relevant
parts of the documentation.
6
CHAPTER 1. OVERVIEW
CHAPTER 1. OVERVIEW
Enhancement to the AWS EC2 AMD or Intel 64-bit architecture AMI image to support UEFI
boot, in addition to the legacy BIOS boot.
For more information, see New features - Installer and image creation .
minimal-raw
edge-vsphere
edge-ami
rhel9/fdo-manufacturing-server
rhel9/fdo-owner-onboarding-server
rhel9/fdo-rendezvous-server
rhel9/fdo-serviceinfo-api-server
Security
Key security-related highlights:
The keylime RHEL System Role is available. With this role, you can more easily configure the
Keylime verifier and Keylime registrar.
OpenSSH was migrated further from the less secure SHA-1 message digest for cryptographic
purposes, and instead applies the more secure SHA-2 in additional scenarios.
The pcsc-lite-ccid USB Chip/Smart Card Interface Device(CCID)) and Integrated Circuit Card
Device (ICCD) driver was rebased to version 1.5.2.
RHEL 9.3 introduces further improvements to support the Extended Master Secret (EMS)
extension (RFC 7627) required by the FIPS-140-3 standard for all TLS 1.2 connections.
SEtools, the collection of graphical tools, command-line tools, and libraries for SELinux policy
analysis, was rebased to version 4.4.3.
7
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Three new SCAP profiles were added for RHEL 9 aligned with the CCN-STIC-610A22
Guide.
Redis 7
Node.js 20
In addition, the Apache HTTP Server has been updated to version 2.4.57.
See New features - Dynamic programming languages, web and database servers for more information.
GCC 11.4.1
Valgrind 3.21
SystemTap 4.9
elfutils 0.189
PCP 6.0.5
Grafana 9.2.10
Go Toolset 1.20.10
For detailed changes, see New features - Compilers and development tools .
8
CHAPTER 1. OVERVIEW
The java-21-openjdk packages, which provide the OpenJDK 21 Java Runtime Environment and
the OpenJDK 21 Java Software Development Kit. An OpenJDK 21.0.1 security release is also
available to install. It is recommended that you install the OpenJDK 21.0.1 update to acquire the
latest security fixes.
The java-17-openjdk packages, which provide the OpenJDK 17 Java Runtime Environment and
the OpenJDK 17 Java Software Development Kit.
The java-11-openjdk packages, which provide the OpenJDK 11 Java Runtime Environment and
the OpenJDK 11 Java Software Development Kit.
The java-1.8.0-openjdk packages, which provide the OpenJDK 8 Java Runtime Environment
and the OpenJDK 8 Java Software Development Kit.
The Red Hat build of OpenJDK packages share a single set of binaries between its portable Linux
releases and RHEL 9.3 and later releases. With this update, there is a change in the process of rebuilding
the OpenJDK packages on RHEL from the source RPM. For more information about the new rebuilding
process, see the README.md file which is available in the SRPM package of the Red Hat build of
OpenJDK and is also installed by the java-*-openjdk-headless packages under the /usr/share/doc tree.
From RHEL 8.6 to RHEL 9.0, RHEL 8.8 to RHEL 9.2, and RHEL 8.9 to RHEL 9.3 on the following
architectures:
64-bit Intel
64-bit AMD
64-bit ARM
From RHEL 8.6 to RHEL 9.0 and RHEL 8.8 to RHEL 9.2 on systems with SAP HANA
For more information, see Supported in-place upgrade paths for Red Hat Enterprise Linux .
For instructions on performing an in-place upgrade, see Upgrading from RHEL 8 to RHEL 9 .
If you are upgrading to RHEL 9.2 with SAP HANA, ensure that the system is certified for SAP before the
upgrade. For instructions on performing an in-place upgrade on systems with SAP environments, see
How to in-place upgrade SAP environments from RHEL 8 to RHEL 9 .
Requirements on disk space have been significantly reduced on systems with XFS filesystems
formatted with ftype=0.
Disk images created during the upgrade process for upgrade purposes now have dynamic sizes.
The LEAPP_OVL_SIZE environment variable is not needed anymore.
9
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Issues with the calculation of the required free space on existing disk partitions have been fixed.
The missing free disk space is now correctly detected before the required reboot of the system,
and the report correctly displays file systems that do not have enough free space to proceed
the upgrade RPM transaction.
Third-party drivers can now be managed during the in-place upgrade process using custom
leapp actors.
An overview of the pre-upgrade and upgrade reports is now printed in the terminal.
Upgrades of RHEL Real Time and RHEL Real Time for Network Functions Virtualization (NFV) in
Red Hat OpenStack Platform are now supported.
Registration Assistant
Kickstart Generator
VNC Configurator
Capabilities and limits of Red Hat Enterprise Linux 9 as compared to other versions of the system are
10
CHAPTER 1. OVERVIEW
Capabilities and limits of Red Hat Enterprise Linux 9 as compared to other versions of the system are
available in the Knowledgebase article Red Hat Enterprise Linux technology capabilities and limits .
Information regarding the Red Hat Enterprise Linux life cycle is provided in the Red Hat Enterprise
Linux Life Cycle document.
The Package manifest document provides a package listing for RHEL 9, including licenses and
application compatibility levels.
Application compatibility levels are explained in the Red Hat Enterprise Linux 9: Application
Compatibility Guide document.
Major differences between RHEL 8 and RHEL 9, including removed functionality, are documented in
Considerations in adopting RHEL 9 .
Instructions on how to perform an in-place upgrade from RHEL 8 to RHEL 9 are provided by the
document Upgrading from RHEL 8 to RHEL 9 .
The Red Hat Insights service, which enables you to proactively identify, examine, and resolve known
technical issues, is available with all RHEL subscriptions. For instructions on how to install the Red Hat
Insights client and register your system to the service, see the Red Hat Insights Get Started page.
NOTE
Public release notes include links to access the original tracking tickets, but private
release notes are not viewable so do not include links. [1]
[1] Public release notes include links to access the original tracking tickets, but private release notes are not
viewable so do not include links.
11
Red Hat Enterprise Linux 9.3 9.3 Release Notes
CHAPTER 2. ARCHITECTURES
Red Hat Enterprise Linux 9.3 is distributed with the kernel version 5.14.0-362.8.1, which provides support
for the following architectures at the minimum required version (stated in parentheses):
Make sure you purchase the appropriate subscription for each architecture. For more information, see
Get Started with Red Hat Enterprise Linux - additional architectures .
12
CHAPTER 3. DISTRIBUTION OF CONTENT IN RHEL 9
3.1. INSTALLATION
Red Hat Enterprise Linux 9 is installed using ISO images. Two types of ISO image are available for the
AMD64, Intel 64-bit, 64-bit ARM, IBM Power Systems, and IBM Z architectures:
Installation ISO: A full installation image that contains the BaseOS and AppStream repositories
and allows you to complete the installation without additional repositories. On the Product
Downloads page, the Installation ISO is referred to as Binary DVD.
NOTE
The Installation ISO image is in multiple GB size, and as a result, it might not fit on
optical media formats. A USB key or USB hard drive is recommended when using
the Installation ISO image to create bootable installation media. You can also use
the Image Builder tool to create customized RHEL images. For more information
about Image Builder, see the Composing a customized RHEL system image
document.
Boot ISO: A minimal boot ISO image that is used to boot into the installation program. This
option requires access to the BaseOS and AppStream repositories to install software packages.
The repositories are part of the Installation ISO image. You can also register to Red Hat CDN or
Satellite during the installation to use the latest BaseOS and AppStream content from Red Hat
CDN or Satellite.
See the Performing a standard RHEL 9 installation document for instructions on downloading ISO
images, creating installation media, and completing a RHEL installation. For automated Kickstart
installations and other advanced topics, see the Performing an advanced RHEL 9 installation document.
3.2. REPOSITORIES
Red Hat Enterprise Linux 9 is distributed through two main repositories:
BaseOS
AppStream
Both repositories are required for a basic RHEL installation, and are available with all RHEL
subscriptions.
Content in the BaseOS repository is intended to provide the core set of the underlying operating
system functionality that provides the foundation for all installations. This content is available in the
RPM format and is subject to support terms similar to those in previous releases of RHEL. For more
information, see the Scope of Coverage Details document.
Content in the AppStream repository includes additional user-space applications, runtime languages,
and databases in support of the varied workloads and use cases.
In addition, the CodeReady Linux Builder repository is available with all RHEL subscriptions. It provides
additional packages for use by developers. Packages included in the CodeReady Linux Builder
repository are unsupported.
For more information about RHEL 9 repositories and the packages they provide, see the Package
13
Red Hat Enterprise Linux 9.3 9.3 Release Notes
For more information about RHEL 9 repositories and the packages they provide, see the Package
manifest.
Application Streams are available in the familiar RPM format, as an extension to the RPM format called
modules, as Software Collections, or as Flatpaks.
Each Application Stream component has a given life cycle, either the same as RHEL 9 or shorter. For
RHEL life cycle information, see Red Hat Enterprise Linux Life Cycle .
RHEL 9 improves the Application Streams experience by providing initial Application Stream versions
that can be installed as RPM packages using the traditional dnf install command.
NOTE
Certain initial Application Streams in the RPM format have a shorter life cycle than Red
Hat Enterprise Linux 9.
Some additional Application Stream versions will be distributed as modules with a shorter life cycle in
future minor RHEL 9 releases. Modules are collections of packages representing a logical unit: an
application, a language stack, a database, or a set of tools. These packages are built, tested, and
released together.
Always determine what version of an Application Stream you want to install and make sure to review the
Red Hat Enterprise Linux Application Stream Lifecycle first.
Content that needs rapid updating, such as alternate compilers and container tools, is available in rolling
streams that will not provide alternative versions in parallel. Rolling streams may be packaged as RPMs
or modules.
For information about Application Streams available in RHEL 9 and their application compatibility level,
see the Package manifest. Application compatibility levels are explained in the Red Hat Enterprise Linux
9: Application Compatibility Guide document.
Although RHEL 8 and RHEL 9 are based on DNF, they are compatible with YUM used in RHEL 7.
For more information, see Managing software with the DNF tool.
14
CHAPTER 4. NEW FEATURES
Jira:RHELDOCS-16339[1]
New boot option inst.wait_for_disks= to add wait time for loading a Kickstart file or the
kernel drivers
Sometimes, it may take a few seconds to load a Kickstart file or the kernel drivers from the device with
the OEMDRV label during the boot process. To adjust the wait time, you can now use the new boot
option, inst.wait_for_disks=. Using this option, you can specify how many seconds to wait before the
installation. The default time is set to 5 seconds, however, you can use 0 seconds to minimize the delay.
For more information about this option, see Storage boot options .
Bugzilla:2171811
Ability to select required kernel while installing RHEL on ARM using GUI and TUI
Previously, you could install RHEL on ARM with kernel-64k page size only by using the Kickstart method.
With this update, you can now install RHEL on ARM using the GUI or the TUI and selecting the required
kernel version. The option to select the required kernel is available on the Software Selection screen
under Kernel Options.
Bugzilla:2164819[1]
Jira:RHELDOCS-16877 [1]
The --ipv4-dns-search and --ipv6-dns-search options allow you to set DNS search domains
manually. These options mirror their NetworkManager properties, for example:
15
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2065754[1]
Bugzilla:1932480[1]
4.2. SECURITY
Keylime rebased to version 7.3.0
The Keylime packages have been updated to upstream version 7.3.0. This version provides various
enhancements and bug fixes. Most notably, the allow and exclude lists are combined into the Keylime
runtime policy. You can combine the two lists by using the convert_runtime_policy.py script.
In addition, the update fixes two vulnerabilities with the moderate impact rating: CVE-2023-38200 and
CVE-2023-38201.
Jira:RHEL-476[1]
Jira:RHEL-595[1]
sub_trust and obj_trust to indicate trust levels for a subject and an object involved in an event
As a result, you can better understand why the Audit system denied access in certain cases. This can
help you write policies for tools such as the fapolicyd framework.
Jira:RHELPLAN-161087 [1]
With this enhancement, new kernel and Audit components allow the fapolicyd service to send the
16
CHAPTER 4. NEW FEATURES
With this enhancement, new kernel and Audit components allow the fapolicyd service to send the
number of the rule that causes a denial to the fanotify API. As a result, you can troubleshoot problems
related to fapolicyd more precisely.
Jira:RHEL-624
crypto-policies now provides the NO-ENFORCE-EMS subpolicy for TLS 1.2 connections in
FIPS mode
The system-wide cryptographic policies now contain the NO-ENFORCE-EMS subpolicy. After applying
the new subpolicy, the system no longer requires the Extended Master Secret (EMS) extension (RFC
7627) for all TLS 1.2 connections negotiated in FIPS mode. This allows the system to connect to legacy
systems without support for EMS or TLS 1.3. Note that this violates the requirements of the FIPS-140-3
standard. You can apply the subpolicy by entering the update-crypto-policies --set FIPS:NO-
ENFORCE-EMS command.
Bugzilla:2216257[1]
WARNING
If you allow TLS 1.2 connections without EMS, your system no longer meets the
FIPS-140-3 requirements.
Bugzilla:2157953
If your scenario requires interoperating with legacy systems without support for EMS or TLS 1.3, you can
apply the NO-ENFORCE-EMS system-wide cryptographic subpolicy. Such a change violates the FIPS-
140-3 requirements.
Bugzilla:2157950
17
Red Hat Enterprise Linux 9.3 9.3 Release Notes
configuration file:
[fips_sect]
tls1-prf-ems-check = 0
activate = 1
Then, locate the SSL configuration section in the /etc/pki/tls/openssl.cnf file. The default SSL
configuration section is crypto_policy. At the end of the SSL configuration section, add the following
line:
Options=RHNoEnforceEMSinFIPS
The previous configuration changes allow the system in FIPS mode to connect to legacy systems
without support for EMS or TLS 1.3.
WARNING
You can stop enforcing EMS for TLS 1.2 in FIPS mode by entering the update-
crypto-policies --set FIPS:NO-ENFORCE-EMS command. In both cases, such a
configuration change violates the requirements of the FIPS-140-3 standard.
Bugzilla:2216256 [1]
Added a check on sshd startup whether using SHA-1 is configured on the system. If it is not
available, OpenSSH does not try to use SHA-1 for operations. This eliminates loading DSS keys
when they are present and also enforces advertising rsa-sha2 combinations when they are
available.
On SSH private key conversion, OpenSSH explicitly uses SHA-2 for testing RSA keys.
When SHA-1 signatures are unavailable on the server side, sshd uses SHA-2 to confirm host key
proof. This might be incompatible with clients on RHEL 8 and earlier versions.
When the SHA-1 algorithm is unavailable on the client side, OpenSSH uses SHA-2.
On the client side, OpenSSH permits SHA-2-based key proofs from the server when SHA-1 was
used in key proof request or when the hash algorithm is not specified (assuming default). This is
aligned with the already present exception for RSA certificates, and allows connecting by using
modern algorithms when supported.
Bugzilla:2070163
18
CHAPTER 4. NEW FEATURES
generated deterministic message instead of an error if it detects an error when checking padding during
a PKCS #1 v1.5 decryption. The change provides general protection against vulnerabilities such as CVE-
2020-25659 and CVE-2020-25657.
Bugzilla:2153471
OpenSSL now supports Brainpool curves configurable through the Groups option
This update of the OpenSSL TLS toolkit introduces support for Brainpool curves in Elliptic Curve
Cryptography (ECC). Additionally, you can control the curves with the system-wide cryptographic
policies through the Groups configuration option.
brainpoolP256r1
brainpoolP256t1
brainpoolP320r1
brainpoolP320t1
brainpoolP384r1
brainpoolP384t1
brainpoolP512r1
brainpoolP512t1
Bugzilla:2188180
With this update of the system-wide cryptographic policies, you can now control the following Brainpool
Elliptic Curve Cryptography (ECC) curves in OpenSSL by using the group option:
BRAINPOOL-P256R1
BRAINPOOL-P384R1
BRAINPOOL-P512R1.
For example, you can enable all supported Brainpool elliptic curves in OpenSSL by creating a subpolicy
that contains the following line:
group = BRAINPOOL-*+
Bugzilla:2193324[1]
In this release, the system-wide cryptographic policies (crypto-policies) control the group order in the
OpenSSL Groups configuration option. To preserve the performance in OpenSSL, crypto-policies use
19
Red Hat Enterprise Linux 9.3 9.3 Release Notes
the default group order that matches the order of the OpenSSL built-in preferences. As a result, the
RHEL cryptographic back ends that support crypto-policies for controlling the group order, such as
GnuTLS, now use the same order as OpenSSL.
Jira:RHEL-591[1]
Before this update, an IdM server running on RHEL 8 sent an AES-256-HMAC-SHA-1-encrypted service
ticket that an IdM replica running RHEL 9 in FIPS mode. Consequently, the default permitted_enctypes
krb5 configuration broke a replication between the RHEL 8 IdM server and the RHEL 9 IdM replica in
FIPS mode.
This update of the system-wide cryptographic policies reorders the permitted_enctypes krb5
configuration option values to allow prioritization of more interoperable encryption types by default. As a
result, the permitted_enctypes configuration no longer break replications between a RHEL 8 IdM
servers and a RHEL 9 IdM replica in FIPS mode.
NOTE
If you use Kerberos, verify the order of the values of permitted_enctypes in the
/etc/crypto-policies/back-ends/krb5.config file. If your scenario requires a different
order, apply a custom cryptographic subpolicy.
Bugzilla:2225222
The pcsc-lite-ccid package has been updated to version 1.5.2. This version provides various bug fixes
and enhancements, most notably:
Bugzilla:2209457
The opensc packages have been updated to version 0.23. This version provides various bug fixes and
enhancements, most notably:
Added support for signing data with a length of more than 512 bytes
Jira:RHEL-280 [1]
The setools packages have been updated to version 4.4.3. This version provides various bug fixes and
enhancements, most notably:
20
CHAPTER 4. NEW FEATURES
Added the -r option to seinfoflow command to get flows analysis into the source type
Bugzilla:2231801, Bugzilla:2184140
qat
systemd-pstore
boothd
fdo-manufacturing-server
fdo-rendezvous-server
fdo-client-linuxapp
fdo-owner-onboarding-server
As a result, these services do not run with the unconfined_service_t SELinux label anymore, and run
successfully in SELinux enforcing mode.
New SELinux boolean to allow QEMU Guest Agent executing confined commands
Previously, commands that were supposed to execute in a confined context through the QEMU Guest
Agent daemon program, such as mount, failed with an Access Vector Cache (AVC) denial. To be able to
execute these commands, the guest-agent must run in the unconfined_t domain.
Therefore, this update adds the SELinux policy boolean virt_qemu_ga_run_unconfined that allows
guest-agent to make the transition to the unconfined domain. In addition, the necessary rules for
transitions for the qemu-ga daemon have been added to the SELinux policy boolean.
As a result, you can now execute confined commands through the QEMU Guest Agent without AVC
denials by enabling the virt_qemu_ga_run_unconfined boolean.
Bugzilla:2093355
21
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Created a workaround for issues with tailoring files produced by the autotailor utility
Bugzilla:2217442
Bugzilla:2221697
Bugzilla:2155790
The python3-greenlet-devel package is now available in the CodeReady Linux Builder (CRB) repository,
which you must explicitly enable. See the How to enable and make use of content within CodeReady
Linux Builder Knowledgebase article for more information. Note that packages included in the CRB
repository are unsupported.
Bugzilla:2149497
SSG rule to check the group used by the pam_wheel.so module is simplified
The CIS Benchmark requires restricting the su command in favor of the sudo command. SCAP Security
Guide (SSG) fulfills this requirement with the pam_wheel.so module, which restricts the su command
22
CHAPTER 4. NEW FEATURES
to a specific group. This update improves the rule that checks whether this group exists and has no
members. As a result, the rule is more efficient and simplifies the interpretation of the assessment
report.
Jira:RHEL-1905
Jira:RHELPLAN-163133[1]
$ xz -d <_uuid-minimal-raw.img_.xz>
Jira:RHELPLAN-163665[1]
The Commit ID is now supported as a value for the --parent argument of composer-cli CLI
You can now use the image Commit ID as a value for the --parent argument of the composer-cli
command line. To get the image Commit ID, download and extract the RHEL for Edge Commit image.
You can find the ref name and the commit ID in the extracted .tar file.
Jira:RHELDOCS-16386 [1]
Jira:RHELDOCS-16708 [1]
23
Red Hat Enterprise Linux 9.3 9.3 Release Notes
vSphere. The image is compatible with ESXi 7.0 U2, ESXi 8.0, and later. The VM is compatible with
versions 19 and 20.
Jira:RHELDOCS-16709[1]
You can now log in to an Edge system as the initial user without setting a password
Previously, logging in as the initial user created during the FDO onboarding process did not work
because the system asked for a password that was not set with the useradd command. With this
enhancement, the password is now set to optional, and you can log in even if you did not previously set a
password by using the useradd command. Note that you can log in with an SSH key without entering a
password, and if it fails, you will be prompted to enter a password.
Jira:RHELDOCS-17101[1]
never does not reboot the system. This is the current behavior.
when-needed triggers a reboot only when rebooting is required to apply changes, for example,
when systemd or the kernel is upgraded.
You can use the reboot_command option to customize the command used to reboot. The default
reboot command is shutdown -r.
Bugzilla:2124793
The new --poweroff option allows you to shut down the system after installing updates
With this enhancement, the new --poweroff option has been added to the reboot command of the dnf
system-upgrade plugin. You can use this option to shut down the system after installing updates
instead of rebooting.
Bugzilla:2157844
New dnf leaves and show-leaves plug-ins are now available for the DNF API
leave packages are packages installed on your system that are not required as dependencies of other
installed packages.
With this enhancement, the following new DNF plug-ins are available:
show-leaves lists newly installed leave packages and packages that became leave after a
transaction.
Bugzilla:2134638
24
CHAPTER 4. NEW FEATURES
Bugzilla:2188593
The opencryptoki package has been rebased to version 3.21.0, which provides many enhancements and
bug fixes. Most notably, opencryptoki now supports the following features:
Additional key types, such as DH, DSA, and generic secret key types
Additionally, pkcsslotd slot manager no longer runs as root and opencryptoki offers further hardening.
With this update, you can also use the following set of new commands:
p11sak set-key-attr
To modify keys
p11sak copy-key
To copy keys
p11sak import-key
To import keys
p11sak export-key
To export keys
Bugzilla:2160061[1]
You can define custom naming rules for naming InfiniBand interfaces by following the Renaming IPoIB
devices using systemd link file procedure.
For more details of the naming scheme, see the systemd.net-naming-scheme(7) man page.
25
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2136937
use_srv_lookup
You can enable discovery for the specified service by using DNS SRV records.
allow_srv_lookup_fallback
You can use a cascading approach to locating a service.
ignore_srv_lookup_error
You can ensure that the service discovery remains functional even if SRV records are not available or
encounter errors.
Bugzilla:2134789
Bugzilla:2229784
4.7. NETWORKING
RHEL on ARM now fully supports wifi adapters in RHEL 9.3
With this enhancement, you can now enable access to wifi adapters for several cards for the arm64
platforms.
Bugzilla:2208365[1]
NetworkManager now supports adding the no-aaaa DNS option in the resolv.conf file. By using the no-
aaaa value in the DNS option setting, you can disable IPv6 DNS resolution.
Bugzilla:2176137
nmstate now supports mixing static DNS search along with dynamic DNS name servers
The nmstate framework now supports both static Domain Name System (DNS) search domains and
dynamic DNS name servers, which nmstate obtained from Dynamic Host Configuration Protocol
(DHCP) or the autoconf mechanism. Previously, static DNS search domains could not co-exist with
26
CHAPTER 4. NEW FEATURES
dynamic DNS name servers because the dynamic configurations were discarded by nmstate. This often
led to unnecessary complexity and limitations in network setup and management. This enhancement
aims to bring more flexibility in managing DNS configurations. As a result, nmstate attempts to find a
network interface to store the DNS configuration in the following order:
1. The preferred interface, which currently holds the DNS configuration and is still valid for DNS
2. An automatic interface
3. An IP enabled interface
Note that this enhancement does not remove the DNS name servers learned from DHCP.
---
dns-resolver:
config:
search:
- example.com
- example.org
interfaces:
- name: eth1
type: ethernet
state: up
ipv4:
enabled: true
dhcp: true
ipv6:
enabled: true
dhcp: true
autoconf: true
Bugzilla:2179916
With this update, you can use the nmstate framework to configure the bridge.vlan-default-pvid
NetworkManager configuration option. By using this option, you can set the default port VLAN identifier
(PVID) for untagged traffic on a bridge interface that supports VLANs, when you use Linux bridge VLAN
filtering. To achieve this result, use the following YAML configuration:
interfaces:
- name: linux-br0
type: linux-bridge
state: up
bridge:
options:
vlan-default-pvid: 5
port:
- name: eth1
stp-hairpin-mode: false
stp-path-cost: 100
stp-priority: 32
27
Red Hat Enterprise Linux 9.3 9.3 Release Notes
vlan:
mode: access
tag: 100
Note that the default value of bridge.vlan-default-pvid is 1. When set to 0 with VLAN filtering enabled,
the untagged traffic is dropped.
Bugzilla:2180795
The NetworkManager service restarts immediately after the dbus service is restarted
Previously, after restarting dbus for some reason, NetworkManager stopped. This behavior was not
optimal and caused a loss of connectivity. Therefore, this enhancement updates NetworkManager to
become more robust and to make it restart automatically upon a dbus restart.
Bugzilla:2161915
Bugzilla:2151986
NetworkManager logs the following warning to the systemd journal if it processes a connection
profile in ifcfg format in the /etc/sysconfig/network-scripts/ directory:
Warning: the ifcfg-rh plugin is deprecated, please migrate connections to the keyfile format
using "nmcli connection migrate"
The nmcli utility reports the following error if you try to modify a property that is not supported
in ifcfg format:
Error: Failed to modify connection '<name>': failed to update connection: The ifcfg-rh plugin
doesn't support setting '<property>'. If you are modifying an existing connection profile saved
in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate
<connection_uuid>' or via the Update2() D-Bus API and try again.
As a result of these enhancements, NetworkManager now notifies users if they still use or modify
connection profiles in the deprecated ifcfg format.
For further details about migrating profiles from ifcfg to keyfile format, see Migrating NetworkManager
profiles from ifcfg to keyfile format.
Bugzilla:2190375
28
CHAPTER 4. NEW FEATURES
Bugzilla:2069001
NetworkManager now supports configuration of the ns_ip6_target option for bond interfaces
This enhancement allows setting the arp_interval option by specifying a maximum of 16 IPv6 addresses
as monitoring peers in NetworkManager for configuration of the ns_i6_target option for bond
interfaces. Previously, it was not possible to specify IPv6 monitoring peers in NetworkManager. With
this update, you can configure the ns_ip6_target option in the bond.options parameter by using the
nmcli utility. NetworkManager applies this setting to the bond interface by enabling the specification of
a maximum of 16 IPv6 addresses. This enhancement equally applies to IPv4 and IPv6 settings.
Bugzilla:2069004
NetworkManager now supports both static and DHCP IP configuration on the same network
interface
By using the nmstate utility, you can now assign a static IP address with dhcp: true or autoconf: true
value on the DHCP or Ad-Hoc Network Autoconfiguration (autoconf) enabled interface.
With above properties, nmstate can ignore DHCP/autoconf based IP addresses to avoid converting
dynamic IP addresses to static IP after applying the queried state back. If your scenario requires having
disabled DHCP/autoconf settings with dynamic IP addresses, nmstate converts those dynamic IP to
static IP addresses.
Bugzilla:2177733
The nmstate utility supports network configuration directly to a network interface with a MAC address
instead of an interface name.
profile-name : string
When the identifier variable is set to the mac-address value, nmstate uses the interface.mac-address
over interface.name to choose a network interface for a specific network state. When storing the
network configuration, if the interface.profile-name variable is not assigned, nmstate prefers
interface.profile-name over interface.name. If you check the current network state, the
interface.profile-name remains hidden if it is equal to interface.name.
Bugzilla:2183214
29
Red Hat Enterprise Linux 9.3 9.3 Release Notes
NetworkManager supports defining after how many failed ARP checks the bonding driver
marks a port as down
This enhancement adds the arp_missed_max option to bond connection profiles in NetworkManager. If
you use the Address Resolution Protocol (ARP) monitor to check if ports of a bond are up, you can now
set arp_missed_max to define after how many failed checks the bonding driver marks the port as
down.
Bugzilla:2148684
link.tx-queue-length - The size of the transmit (TX) queue length in number of packets.
link.gro-max-size - The maximum size in bytes of a Generic Receive Offload (GRO) packet the
device accepts.
Previously, you could configure these kernel settings only by using ip commands or by using such
commands in NetworkManager dispatcher scripts. With this enhancement, you can now configure these
settings directly in connection profiles.
Note that NetworkManager supports these properties only in connection profiles in keyfile format and
not in the deprecated ifcfg format.
Bugzilla:2158328
dhcp-send-hostname: true or false value. If a DHCP request needs the hostname or fully
qualified domain name (FQDN) option, the hostname from that option is set. The default is
true.
dhcp-custom-hostname: <string>. Use this option to configure the hostname or FQDN option
in a DHCP request, value type is string.
If the hostname is FQDN, see the Fully Qualified Domain Name (FQDN), option (81) in RFC
4702.
If the hostname is not FQDN, see the Host Name, option (12) in RFC 2132.
Supports custom string, empty domain name, overrides the hostname for a DHCP request. See
the Fully Qualified Domain Name (FQDN), option (29) in RFC 4704.
30
CHAPTER 4. NEW FEATURES
Bugzilla:2187622
The arp_missed_max, lacp_active, and ns_ip6_target properties have been added to bond
connection profiles.
You can now set a DHCPv6 prefix delegation hint in the ipv6.dhcp-pd-hint connection
property.
When you set a hostname that contains a non-public top-level domain (TLD), NetworkManager
now uses this TLD as DNS search domain instead of the full hostname.
NetworkManager now applies DNS options from the [global-dns] section in the
/etc/NetworkManager/NetworkManager.conf file.
To avoid race conditions with other depending services, NetworkManager now acquires the D-
Bus name only after populating the D-Bus tree. Note that this can add a delay when
NetworkManager starts.
NetworkManager no longer uses tentative IPv6 addresses to resolve the system hostname from
DNS.
NetworkManager sets VLAN filtering options by using the kernel’s netlink interface instead of
the sysfs file system.
The nm-cloud-setup utility now supports Instance Metadata Service Version 2 (IDMSv2) on
Amazon EC2.
Users can now enable and disable wifi and Wireless Wide Area Networks (WWANs) in the nmtui
application.
Bond, bridge, and team connections now use the ignore-carrier=no setting in the [main]
section of the /etc/NetworkManager/NetworkManager.conf file.
Bugzilla:2180966
SCTP rebased to the latest version of the kernel networking tree for RHEL 9
Notable changes in the Stream Control Transmission Protocol (SCTP) networking subsystem include:
31
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Virtual routing and forwarding (VRF) support to segment and isolate SCTP traffic within
complex network environments.
New stream schedulers (fair capacity, and weighted fair queueing) to ensure efficient and
equal resource allocation in the network.
Bugzilla:2189292
MPTCP rebased to the latest version of the kernel networking tree for RHEL 9
Notable changes in the Multipath TCP (MPTCP) protocol extension include:
Support for TCP fastopen (TFO) extension, including the client-side support. This feature
offers latency, efficiency, and performance improvements for your network.
Support multiple mixed IPv4/IPv6 subflows to allow for greater flexibility and adaptability in
networks where both IP versions are used.
Bugzilla:2193330[1]
The xdp-bench utility gained support for multi-buffer eXpress Data Path (XDP) and for
benchmarking the xdp_load_bytes() helper in the kernel. This feature enables conducting
network benchmarking tests with large maximum transmission units (MTUs).
The locking of the command line utilities of xdp-tools was improved to prevent stale locks if the
utility did not exit cleanly.
The libxdp library contains a new xsk_umem__create_with_fd() API that accepts an extra file
descriptor of an already open AF_XDP socket. You can use this function as a substitute for the
regular xsk_umem__create() function when a process does not have CAP_NET_RAW
privileges.
Bugzilla:2218500
The iproute packages have been upgraded to upstream version 6.2.0, which provides several
enhancements and bug fixes over the previous version. The most notable changes are:
The new ip stats command manages and shows interface statistics. By default, the ip stats
show command displays statistics for all network devices, including bridges and bonds. You can
filter the output by using the dev and group options. For further details, see the ip-stats(8)
man page.
The ss utility now provides the -T (--threads) option to display thread information, which
extends the -p (--processes) option. For further details, see the ss(8) man page.
You can use the new bridge fdb flush command to remove specific forwarding database (fdb)
entries which match a supplied option. For further details, see the bridge(8) man page.
Jira:RHEL-428[1]
32
CHAPTER 4. NEW FEATURES
With this enhancement, the kernel’s netlink interface supports setting a priority on each port if you
configure a bond in active-backup, balance-tlb or balance-alb mode. The priority value uses a 32-bit
Integer, and a higher value means a higher priority. As a result, you can now activate the bond ports in a
specific order.
To use this feature, you can configure the priority by setting the bond-port.prio property when you
create or modify a NetworkManager port connection profile.
Bugzilla:2092194[1]
With the release of the RHBA-2023:7748, advisory the firewalld service was upgraded in a sense that it
will not remove all the existing rules from the iptables configuration if both following conditions are met:
This change aims at reducing unnecessary operations (firewall rules flushes) and improves integration
with other software.
Jira:RHEL-14694[1]
4.8. KERNEL
Kernel version in RHEL 9.3
Red Hat Enterprise Linux 9.3 is distributed with the kernel version 5.14.0-362.8.1.
Bugzilla:2232554
Jira:RHELDOCS-17055 [1]
Bugzilla:1898184[1]
The perf performance analysis tool has been rebased to version 6.2. Apart from numerous minor bug
fixes and updates, the perf list command now displays Performance Monitor Unit (PMU) events that
contain human-friendly names and descriptions. In addition, this update adds support for the following
processors:
33
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2177180[1]
The rebase includes many bug fixes and enhancements. The most notable enhancement is the support
available for following hardware accelerator devices for QAT GEN4:
Bugzilla:2144528[1]
This enhancement introduces virtual Trusted Platform Module (vTPM) for Linux containers and other
virtual environments. vTPM is a virtualized version of TPM that provides a dedicated TPM instance to
use for a secure running environment. With vTPM proxy drivers, programs interact with an emulated
TPM the same way as they interact with physical TPMs.
As a result, each virtual machine can now have a dedicated vTPM instance that is isolated and
encrypted.
Bugzilla:2210263[1]
crash is an interactive utility to analyze a running system and a core dump file created by kdump in case
of a kernel crash. The crash utility has been rebased to version 8.0.3 that includes many bug fixes and
enhancements. The most notable enhancement is the added IPv6 support.
For network interfaces that support IPv6, crash prints IPv6 addresses with the net or net -s command.
The net command displays the list of network devices, names, and the IP address.
The source and destination address and ports for INET and INET6 families
Bugzilla:2170283
34
CHAPTER 4. NEW FEATURES
3. Create an LVM thin volume with 300 MB of the file system space.
4. Configure the LVM thin pool threshold to automatically extend the space.
cat /etc/lvm/lvm.conf
activation {
thin_pool_autoextend_threshold = 70
thin_pool_autoextend_percent = 20
monitoring = 1
}
5. Enable the LVM thin pool monitoring service for the first kernel.
6. Append the following lines to the kdump.conf file to set the LVM thin volume as the kdump
target.
ext4 /dev/vg00/thinvol
path /
kdumpctl restart
8. Verify the configuration by triggering a kernel panic and check if the vmcore is saved to
/dev/vg00/thinvol.
As a result, with this enhancement, the kdump mechanism now extends capability to save the vmcore
dump files on thin-provisioned storage volumes.
Bugzilla:2083475
The makedumpfile tool, which makes the crash dump file small by compressing pages or excluding
memory pages that are not required, has been rebased to upstream version 1.7.3. The rebase includes
many bug fixes and enhancements.
The most notable change is the added 5-level paging mode for standalone dump (sadump) mechanism
on AMD and Intel 64-bit architecture. The 5-level paging mode extends the processor’s linear address
width to allow applications access larger amounts of memory. 5-level paging extends the size of virtual
addresses from 48 to 57 bits and the physical addresses from 46 to 52 bits.
35
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2173815
Bugzilla:2195986[1]
Bugzilla:2187856[1]
Bugzilla:2192722 [1]
The Berkeley Packet Filter (BPF) facility has been rebased to Linux kernel version 6.3. Notable changes
and enhancements include:
A new map type - BPF_MAP_TYPE_USER_RINGBUF - and related helpers have been defined
for the communication between the user space and kernel over a BPF-specific ring buffer.
BPF now provides new complex data structures: linked list and rbtree.
Hardware metadata are now exposed to XDP programs by using the BPF kernel functions
(kfuncs) with initial support for RX hash and timestamp metadata.
BPF now provides a helper that sets source and destination NAT addresses and ports in new
conntrack module entries in BPF programs.
BPF can now write directly to the nf_conn:mark connection mark of the netfilter packet
filtering framework.
Bugzilla:2178930[1]
36
CHAPTER 4. NEW FEATURES
Previously, entering the grub2-mkconfig -o /path/to/grub.cfg command generated a new grub.cfg file
that contained all the changes that had been made to the /etc/default/grub file. Consequently, the
command overwrote the command-line arguments in all BLS snippets with the
GRUB_CMDLINE_LINUX variable located in the /etc/default/grub file.
With this update, the behavior of GRUB variables has changed as follows:
If you set the GRUB_ENABLE_BLSCFG= parameter to false, BLS snippets do not get
updated, but the changes are still made to the grub.cfg file.
Also note that you can make changes to BLS snippets for individual kernels using grubby:
Jira:RHELDOCS-16752[1]
Bugzilla:2180124
Bugzilla:2192730[1]
camellia128-cts-cmac
camellia256-cts-cmac
37
Red Hat Enterprise Linux 9.3 9.3 Release Notes
aes128-cts-hmac-sha256-128
aes256-cts-hmac-sha384-192
This allows NFS clients and NFS servers to use stronger encryption types when negotiating GSS
contexts.
Bugzilla:2178741
With this update, a new mechanism has been added to fuse3 package, that allows invalidating a
directory entry without automatically triggering the umount of any mounts that exists on the entry.
Bugzilla:2188182
To administer Stratis storage, use the stratis utility, which communicates with the stratisd background
service.
For more information, see the Stratis documentation: Setting up Stratis file systems.
Bugzilla:2041558
The mkfs.gfs2 command now supports the new -U option, which makes it possible to specify
the file system UUID for the file system you create. If you omit this option, the file system’s
UUID is generated randomly.
The gfs2_jadd command creates journals at a much faster speed than in previous releases.
Bugzilla:2170017
The dmpd package has been upgraded to version 1.0.2. Notable changes include:
Rewriting the tools in the Rust language for memory safety and for using multiple threads to
boost performance.
38
CHAPTER 4. NEW FEATURES
Improving the thin_check and cache_check tools to save the time of LVM pool activation
along with the system startup. The required execution time for these tools is now improved by
more than ten times as compared to the previous version.
Updating thin_dump and thin_restore tools to avoid losing sharing of the metadata btrees for
snapshots. Now the restored metadata does not require more space.
Bugzilla:2175198
/sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iorequest_cnt
/sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iodone_cnt
/sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/iotmo_cnt
/sys/devices/pci0000:16/0000:16:02.0/0000:17:00.0/host2/target2:2:0/2:2:0:0/ioerr_cnt
Bugzilla:2171093[1]
The mpathcleanup tool works on SCSI-based multipath devices and removes the multipath device
along with the SCSI path devices. Some users need to remove multipath devices and their path devices
regularly. Previously, there was no tool available to remove multipath devices and a user-defined script
was required for this operation.
With this new tool, users can now easily remove multipath devices and their underlying storage, and
there is no need to create any script for this operation.
Jira:RHEL-782 [1]
The nvme-cli package has been upgraded to version 2.4, which provides multiple bug fixes and
enhancements. Notable changes include:
Fixes incorrect ordering of the systemd auto-connect services to mount file systems using the
/etc/fstab file.
Bugzilla:2159929[1]
39
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The majoritypvs option allows the system ID to be changed on a volume group when a volume
group is missing physical volumes, provided that a majority of physical volumes are present.
The degraded_activation option allows RAID logical volumes in a volume group to be activated
when legs are missing, provided that sufficient devices are available for RAID to provide all the
data in the logical volume.
Bugzilla:2174911[1]
IPaddr2 and IPsrcaddr cluster resource agents now support policy-based routing
The IPaddr2 and IPsrcaddr cluster resource agents now support policy-based routing,which enables
you to configure complex routing scenarios. Policy-based routing requires that you configure the
resource agent’s table parameter.
Bugzilla:2142518
The Filesystem resource agent now supports the EFS file system type
The ocf:heartbeat:Filesystem cluster resource agent now supports the Amazon Elastic File System
(EFS). You can now specify fstype=efs when configuring a Filesystem resource.
Bugzilla:2142002
New pcs parsing requires meta keyword when specifying clone meta attributes
To ensure consistency in the pcs command format, configuring clone meta attributes with the pcs
resource clone, pcs resource promotable, and pcs resource create commands without specifying
the meta keyword is now deprecated.
Previously, the meta keyword was ignored in the pcs resource clone and pcs resource promotable
commands. In the pcs resource create command, however, the meta attributes specified after the
meta keyword when it followed the clone keyword were assigned to the resource rather than to the
clone. With this updated parsing algorithm, meta attributes specified after the meta keyword when it
follows the clone keyword are assigned to the clone. To maintain compatibility with existing scripts
which rely on the older format, you must specify the --future command option to enable this new
argument processing when creating a cloned resource with the pcs resource create command.
The following command now creates a resource with the meta attribute mv=v1 and a clone with the
meta attribute mv=v2:
pcs resource create dummy1 ocf:pacemaker:Dummy meta m1=v1 clone meta m2=v2 --future
Bugzilla:2168155
40
CHAPTER 4. NEW FEATURES
specify with the --output-format=text option. The plain text format has been changed slightly to make it
consistent with the output format of other pcs commands.
Bugzilla:2163953
Previously, when a Pacemaker Remote connection was lost, Pacemaker would always purge its
transient node attributes. This was unnecessary if the connection was quickly recoverable and
the remote daemon had not restarted in the meantime. Pacemaker Remote nodes now
preserve transient node attributes after a brief, recoverable connection outage.
The alert_snmp.sh.sample alert agent, which is the sample alert agent provided with
Pacemaker, now supports the SNMPv3 protocol and SNMPv2. With this update, you can copy
the alert_snmp.sh.sample agent without modification to use SNMPv3 with Pacemaker alerts.
Pacemaker alerts and alert recipients now support an enabled meta option. Setting this option
to false for an alert disables the alert. Setting this option to true for an alert and false for a
particular recipient disables the alert for that recipient. The default value for this option is true.
You can use this option to temporarily disable an alert for any reason, such as planned
maintenance.
Pacemaker Designated Controller elections no longer finalized until all pending actions are
complete and no action results are lost.
The fence_scsi agent is now able to auto-detect shared lvmlockd devices when the devices
attribute is not set.
The crm_resource command now allows banning or moving a bundle with only a single active
replica.
Previously, promotable clone instances were assigned in numerical order, with promoted
instances first. As a result, if a promoted clone instance needed to start, an unpromoted
instance in some cases restarted unexpectedly, because the instance numbers changed. With
this fix, roles are considered when assigning instance numbers to nodes and as a result no
unnecessary restarts occur.
Bugzilla:2189301
Specify --output-format=cmd to display the pcs property set command created from the
current cluster properties configuration. You can use this command to re-create configured
cluster properties on a different system.
41
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Specify output-format=text to display the configured cluster properties in plain text format,
which is the default value for this option.
The pcs property defaults command, which replaces the deprecated pcs property --defaults
option
The pcs property describe command, which describes the meaning of cluster properties
Bugzilla:2163914
export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true
However, individual calls to the affected functions can still enable stricter behavior.
You can achieve the same result by creating the /etc/python/email.cfg configuration file with the
following content:
[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true
For more information, see the Knowledgebase article Mitigation of CVE-2023-27043 introducing
stricter parsing of email addresses in Python.
Jira:RHELDOCS-17369[1]
Node.js 20 included in RHEL 9.3 provides numerous new features, bug fixes, security fixes, and
performance improvements over Node.js 18 available since RHEL 9.1.
42
CHAPTER 4. NEW FEATURES
The native test runner, introduced as an experimental node:test module in Node.js 18, is now
considered stable.
If you want to upgrade from the nodejs:18 stream, see Switching to a later stream .
For information about the length of support for the nodejs Application Streams, see Red Hat Enterprise
Linux Application Streams Life Cycle.
Bugzilla:2186717
For more information, including instructions to hide the warning, see the Knowledgebase article
Mitigation of directory traversal attack in the Python tarfile library (CVE-2007-4559) .
Jira:RHELDOCS-16405[1]
To make support for TLS verification available, this update adds the following dependencies to the perl-
HTTP-Tiny package:
perl-IO-Socket-SSL
perl-Mozilla-CA
perl-Net-SSLeay
Bugzilla:2228412[1]
The Apache HTTP Server has been updated to version 2.4.57, which provides bug fixes, enhancements,
and security fixes over version 2.4.53 available since RHEL 9.1.
The rotatelogs utility provided with httpd introduces a new -T option to truncate all rotated
43
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The rotatelogs utility provided with httpd introduces a new -T option to truncate all rotated
logfiles except the initial log file.
The LDAPConnectionPoolTTL directive of the mod_ldap module now accepts negative values
to enable reuse of connections of any age. Previously, a negative value was handled as an error.
Workers from the mod_proxy_hcheck module now correctly time out according to the worker
timeout settings.
The hcmethod parameter of the mod_proxy_hcheck module now provides new GET11,
HEAD11, and OPTIONS11 methods for HTTP/1.1 requests.
Bugzilla:2184403
The mod_authnz_fcgi module is not loaded by default. To load this module, uncomment the following
line in the /etc/httpd/conf.modules.d/00-optional.conf file:
Bugzilla:2173295[1]
To use the new directive, add one of the following lines to the /etc/nginx/nginx.conf file:
To call an external program for each encrypted private key file, enter:
ssl_pass_phrase_dialog exec:<path_to_program>;
One of the following algorithms: RSA, DSA, EC, DH, or UNK if a cryptographic algorithm
cannot be recognized.
If you want to manually enter a passphrase for each encrypted private key file, enter:
ssl_pass_phrase_dialog builtin;
Note that the nginx service fails to start if you use this method but have at least one private key
protected by a passphrase. In this case, use one of the other methods.
If you want systemd to prompt for the passphrase for each encrypted private key when you
start the nginx service by using the systemctl utility, enter:
ssl_pass_phrase_dialog exec:/usr/libexec/nginx-ssl-pass-dialog;
44
CHAPTER 4. NEW FEATURES
Bugzilla:2170808
Bugzilla:2178953
Redis 7 uses a new version format for Redis Database (RDB) files that is incompatible with
earlier versions
For a complete list of features and incompatible changes, see the upstream release notes .
For information about the length of support for the redis Application Streams, see Red Hat Enterprise
Linux Application Streams Life Cycle.
Bugzilla:2129826
45
Red Hat Enterprise Linux 9.3 9.3 Release Notes
On the IBM Z architecture, the glibc library selects function implementations based on the hardware
capabilities, such as hwcaps and stfle bits. With this update, you can direct the choice made by the
library by setting the glibc.cpu.hwcaps tunable.
Bugzilla:2169978[1]
Improved string and memory routine performance on Intel® Xeon® v5-based hardware in
glibc
Previously, the default amount of cache used by glibc for string and memory routines resulted in lower
than expected performance on Intel® Xeon® v5-based systems. With this update, the amount of cache
to use has been tuned to improve performance.
Bugzilla:2213907
The system GCC compiler has been updated to version 11.4.1, which includes numerous bug fixes and
enhancements available in the upstream GCC.
Bugzilla:2193180
Bugzilla:2168204[1]
Bugzilla:2208908
The GCC compiler has been updated to version 13.1.1, which provides many bug fixes and enhancements
that are available in upstream GCC.
The following tools and versions are provided by GCC Toolset 13:
Tool Version
GCC 13.1.1
46
CHAPTER 4. NEW FEATURES
Tool Version
GDB 12.1
binutils 2.40
dwz 0.14
annobin 12.20
To run a shell session where tool versions from GCC Toolset 13 override system versions of these tools:
For more information, see GCC Toolset 13 and Using GCC Toolset .
Bugzilla:2171919[1], Bugzilla:2171930
General improvements
OpenMP:
OpenMP 5.0: Fortran now supports some non-rectangular loop nests. Such support was
added for C/C++ in GCC 11.
The -Ofast, -ffast-math, and -funsafe-math-optimizations options no longer add startup code
to alter the floating-point environment when producing a shared object with the -shared
option.
GCC can now emit its diagnostics using Static Analysis Results Interchange Format (SARIF), a
JSON-based format suited for capturing the results of static analysis tools (such as GCC’s -
fanalyzer). You can also use SARIF to capture other GCC warnings and errors in a machine-
readable format.
47
Red Hat Enterprise Linux 9.3 9.3 Release Notes
C family:
A new -Wxor-used-as-pow option warns about uses of the exclusive or ( ^) operator where the
user might have meant exponentiation.
Three new function attributes have been added for documenting int arguments that are file
descriptors:
attribute((fd_arg(N)))
attribute((fd_arg_read(N)))
attribute((fd_arg_write(N)))
These attributes are also used by -fanalyzer to detect misuses of file descriptors.
A new statement attribute, attribute((assume(EXPR)));, has been added for C++23 portable
assumptions. The attribute is supported also in C or earlier C++.
GCC can now control when to treat the trailing array of a structure as a flexible array member
for the purpose of accessing the elements of such an array. By default, all trailing arrays in
aggregates are treated as flexible array members. Use the new command-line option -fstrict-
flex-arrays to control what array members are treated as flexible arrays.
C:
Introduced the auto feature to enable type inference for object definitions.
Added new keywords: alignas, alignof, bool, false, static_assert, thread_local, and true.
Added the [[noreturn]] attribute to specify that a function does not return execution to its
caller.
48
CHAPTER 4. NEW FEATURES
Removed trigraphs.
Added printf and scanf format checking through the -Wformat option for the %wN and
%wfN format length modifiers.
Added support for identifier syntax of Unicode Standard Annex (UAX) 31.
Existing features adopted in C23 have been adjusted to follow C23 requirements and are
not diagnosed using the -std=c2x -Wpedantic option.
C++:
Intel 32- and 64-bit using x87 math, in some cases on Motorola 68000, where float and
double expressions are evaluated in long double precision.
64-bit IBM Z systems where float expressions are evaluated in double precision.
Several architectures that support the std::float16_t or std::bfloat16_t types, where these
types are evaluated in float precision.
49
Red Hat Enterprise Linux 9.3 9.3 Release Notes
New warnings:
The new -nostdlib++ option enables linking with g++ without implicitly linking in the C++
standard library.
Added support in the <chrono> header for the std::chrono::utc_clock clock, other clocks,
time zones, and the std::format function.
Added support for the <experimental/scope> header from version 3 of the Library
Fundamentals Technical Specification (TS).
Added support for many previously unavailable features in freestanding mode. For example:
50
CHAPTER 4. NEW FEATURES
The libstdc++ library adds components to the freestanding subset, such as std::array and
std::string_view.
The libstdc++ library now respects the -ffreestanding compiler option, so it is no longer
necessary to build a separate freestanding installation of the libstdc++ library. Compiling
with -ffreestanding will restrict the available features to the freestanding subset, even if
the libstdc++ library was built as a full, hosted implementation.
Added support for the armv9.1-a, armv9.2-a, and armv9.3-a arguments for the -march=
option.
For both C and C++, the __bf16 type is supported on systems with Streaming SIMD Extensions
2 and above enabled.
The real __bf16 type is now used for AVX512BF16 instruction intrinsics. Previously, __bfloat16,
a typedef of short, was used. Adjust your AVX512BF16 related source code when upgrading
GCC 12 to GCC 13.
Added new Instruction Set Architecture (ISA) extensions to support the following Intel
instructions:
AVX-IFMA whose instruction intrinsics are available through the -mavxifma compiler
switch.
CMPccXADD whose instruction intrinsics are available through the -mcmpccxadd compiler
switch.
AMX-FP16 whose instruction intrinsics are available through the -mamx-fp16 compiler
switch.
PREFETCHI whose instruction intrinsics are available through the -mprefetchi compiler
switch.
RAO-INT whose instruction intrinsics are available through the -mraoint compiler switch.
GCC now supports AMD CPUs based on the znver4 core through the -march=znver4 compiler
switch. The switch makes GCC consider using 512-bit vectors when auto-vectorizing.
-Wanalyzer-allocation-size
51
Red Hat Enterprise Linux 9.3 9.3 Release Notes
-Wanalyzer-deref-before-check
-Wanalyzer-exposure-through-uninit-copy
-Wanalyzer-imprecise-fp-arithmetic
-Wanalyzer-infinite-recursion
-Wanalyzer-jump-through-null
-Wanalyzer-out-of-bounds
-Wanalyzer-putenv-of-auto-var
-Wanalyzer-tainted-assertion
-Wanalyzer-fd-access-mode-mismatch
-Wanalyzer-fd-double-close
-Wanalyzer-fd-leak
-Wanalyzer-fd-use-after-close
-Wanalyzer-fd-use-without-check
Also implemented special-casing handling of the behavior of the open, close, creat,
dup, dup2, dup3, pipe, pipe2, read, and write functions.
For C++, construction of global iostream objects such as std::cout, std::cin is now done inside the
standard library, instead of in every source file that includes the <iostream> header. This change
52
CHAPTER 4. NEW FEATURES
improves the startup performance of C++ programs, but it means that code compiled with GCC 13.1 will
crash if the correct version of libstdc++.so is not used at runtime. See the documentation about using
the correct libstdc++.so at runtime. Future GCC releases will mitigate the problem so that the program
cannot be run at all with an earlier incompatible libstdc++.so.
Bugzilla:2172093[1]
Added support for moving annobin notes into a separate debug info file. This results in
reduced executable binary size.
Added support for a new smaller note format reduces the size of the separate debuginfo files
and the time taken to create these files.
Bugzilla:2171923[1]
GDB now styles source code and disassembler by default. If styling interferes with automation
or scripting of GDB, you can disable it by using the maint set gnu-source-highlight enabled
off and maint set style disassembler enabled off commands.
GDB now displays backtraces whenever it encounters an internal error. If this affects scripts or
automation, you can use the maint set backtrace-on-fatal-signal off command to disable this
feature.
C/C++ improvements:
GDB now treats functions or types involving C++ templates similarly to function overloads. You
can omit parameter lists to set breakpoints on families of template functions, including types or
functions composed of multiple template types. Tab completion has gained similar
improvements.
tui layout
tui focus
tui refresh
Use the new tui window width command, or the winwidth alias, to adjust the width of a TUI
window when windows are laid out in horizontal mode.
53
Red Hat Enterprise Linux 9.3 9.3 Release Notes
info win
This command now includes information about the width of the TUI windows in its output.
The -add-inferior command with no flag now inherits the connection of the current inferior. This
restores the behavior of GDB before version 10.
The -add-inferior command now accepts a --no-connection flag that causes the new inferior to
start without a connection.
The script field in breakpoint output (which is syntactically incorrect in MI 3 and earlier) has
become a list in MI 4. This affects the following commands and events:
-break-insert
-break-info
=breakpoint-created
=breakpoint-modified
Use the -fix-breakpoint-script-output command to enable the new behavior with earlier MI
versions.
New commands:
GDB can now print a backtrace of itself when it encounters internal error or internal warning.
This is enabled by default for internal errors and disabled by default for internal warnings.
exit
You can exit GDB using the new exit command in addition to the existing quit command.
Controls if printing the notifications is suppressed for CLI or not. CLI notifications occur when
you change the selected context (such as the current inferior, thread, or frame), or when the
program being debugged stops (for example: because of hitting a breakpoint, completing
source-stepping, or an interrupt).
54
CHAPTER 4. NEW FEATURES
When enabled, the command applies styling to disassembler output if GDB is compiled with
Python support and the Python Pygments package is available.
Changed commands:
print
Printing of floating-point values with base-modifying formats such as /x has been changed to
display the underlying bytes of the value in the required base.
clone-inferior
The clone-inferior command now ensures that the TTY, CMD, and ARGs settings are copied
from the original inferior to the new one. All modifications to the environment variables done
using the set environment or unset environment commands are also copied to the new
inferior.
Python API:
The new gdb.add_history() function takes a gdb.Value object and adds the value it represents
to GDB’s history list. The function returns an integer, which is the index of the new item in the
history list.
The new gdb.history_count() function returns the number of values in GDB’s value history.
The new gdb.events.gdb_exiting event is called with a gdb.GdbExitingEvent object that has
the read-only attribute exit_code containing the value of the GDB exit code. This event is
triggered before GDB’s exit before GDB starts to clean up its internal state.
The new gdb.architecture_names() function returns a list containing all of the possible
Architecture.name() values. Each entry is a string.
The new gdb.Architecture.integer_type() function returns an integer type given a size and a
signed-ness.
The new gdb.TargetConnection object type represents a connection (as displayed by the info
connections command). A sub-class, gdb.RemoteTargetConnection, represents remote and
extended-remote connections.
The gdb.Inferior type now has a connection property that is an instance of the
gdb.TargetConnection object, the connection used by this inferior. This can be None if the
inferior has no connection.
The new gdb.connections() function returns a list of all currently active connections.
The new gdb.host_charset() function returns the name of the current host character set as a
string.
55
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The new gdb.set_parameter(NAME, VALUE) function sets the GDB parameter NAME to
VALUE.
The gdb.Value.format_string method now takes a styling argument, which is a boolean. When
true, the returned string can include escape sequences to apply styling. The styling is present
only if styling is turned on in GDB (see help set styling). When false, which is the default if the
styling argument is not given, no styling is applied to the returned string.
The new read-only attribute gdb.Type.is_scalar is True for scalar types, and False for all other
types.
The new read-only attribute gdb.Type.is_signed should only be read when Type.is_scalar is
True, and will be True for signed types and False for all other types. Attempting to read this
attribute for non-scalar types will raise a ValueError.
Bugzilla:2172096[1]
Linkers:
The new -w (--no-warnings) command-line option for the linker suppresses the generation of
any warning or error messages. This is useful in case you need to create a known non-working
binary.
It creates a memory resident segment with all three of the Read, Write and eXecute
permissions set
It creates a thread local data segment with the eXecute permission set.
You can disable these warnings by using the --no-warn-exec-stack or --no-warn-rwx-
segments options.
The linker can now insert arbitrary JSON-format metadata into binaries that it creates.
Other tools:
A new the objdump tool’s --private option to display fields in the file header and section
headers for Portable Executable (PE) format files.
56
CHAPTER 4. NEW FEATURES
A new --strip-section-headers command-line option for the objcopy and strip utilities to
remove the ELF section header from ELF files.
A new --show-all-symbols command-line option for the objdump utility to display all symbols
that match a given address when disassembling, as opposed to the default function of displaying
only the first symbol that matches an address.
The objdump utility now supports syntax highlighting of disassembler output for some
architectures. Use the --disassembler-color=MODE command-line option, with MODE being
one of the following:
off
extended-color - This option uses 8-bit colors not supported by all terminal emulators.
Bugzilla:2171926[1]
The libabigail package has been updated to version 2.3. Notable improvements include:
The SONAME of the library has been changed to reflect its own ABI change.
The libabigail package is available in the CodeReady Linux Builder (CRB) repository. Note that
packages included in the CodeReady Linux Builder repository are unsupported.
Bugzilla:2186931
Bugzilla:2177302
A new abexit value for the --vgdb-stop-at=event1,event2,… option notifies the gdbserver
utility when your program exits abnormally, such as with a nonzero exit code.
57
Red Hat Enterprise Linux 9.3 9.3 Release Notes
debuginfo information for the program running under Valgrind. The default value for this option
is yes.
NOTE
Valgrind now provides GDB Python commands. These GDB front end commands provide a
better integration in the GDB command-line interface. Benefits of this are, for example, GDB
auto-completion, and command-specific help, searching for a command or command help that
matches a regular expression. For relevant monitoring commands, GDB evaluates arguments to
simplify usage of monitor commands.
The vgdb utility now supports the extended remote protocol when invoked with the --multi
option. The GDB run command is supported in this mode and, as a result, you can run GDB and
Valgrind from a single terminal.
You can use the --realloc-zero-bytes-frees=[yes|no] option to change the behavior of the
realloc() function with a size of zero for tools that intercept the malloc() call.
The memcheck tool now performs checks for the use of the realloc() function with a size of
zero. Use the new --show-realloc-size-zero=[yes|no] switch to disable this feature.
You can use the new --history-backtrace-size=value option for the helgrind tool to configure
the number of entries to record in the stack traces of earlier accesses.
The source code for the cg_annotate, cg_diff, and cg_merge cachegrind utilities has been
rewritten and, as a result, the utilities have more flexible command line option handling. For
example, they now support the --show-percs and --no-show-percs options and the existing --
show-percs=yes and --show-percs=no options.
The cg_annotate cachegrind utility now supports diffing (using the --diff, --mod-filename,
and --mod-funcname options) and merging (by passing multiple data files). In addition,
cg_annotate now provides more information at the file and function level.
A new user-request for the DHAT tool allows you to override the 1024 byte limit on access
count histograms for blocks of memory.
64-bit ARM:
v8.2 scalar and vector Floating-point Absolute Difference (FABD), Floating-point Absolute
Compare Greater than or Equal (FACGE), Floating-point Absolute Compare Greater Than
(FACGT), and Floating-point Add (FADD) instructions.
64-bit IBM Z:
IBM Power:
ISA 3.0 now supports the deliver a random number (darn) instruction.
ISA 3.0 now supports the System Call Vectored (scv) instruction.
ISA 3.0 now supports the copy, paste, and cpabort instructions.
Bugzilla:2124346
The systemtap package has been upgraded to version 4.9. Notable changes include:
Bugzilla:2186934
The elfutils package has been updated to version 0.189. Notable improvements and bug fixes include:
libelf
The elf_compress tool now supports the ELFCOMPRESS_ZSTD ELF compression type.
libdwfl
The dwfl_module_return_value_location function now returns 0 (no return type) for DWARF
Information Entries (DIEs) that point to a DW_TAG_unspecified_type type tag.
eu-elfcompress
The -t and --type= options now support the Zstandard ( zstd) compression format via the zstd
argument.
Bugzilla:2182061
The libpfm package has been updated to version 4.13. With this update, libpfm can access performance
monitoring hardware native events for the following processor microarchitectures:
AMD Zen 2
AMD Zen 3
AMD Zen 4
ARM Neoverse N1
59
Red Hat Enterprise Linux 9.3 9.3 Release Notes
ARM Neoverse N2
ARM Neoverse V1
ARM Neoverse V2
IBM z16
With this enhancement, you can access performance monitoring hardware using papi events presets on
the following processor microarchitectures:
AMD Zen 2
AMD Zen 3
ARM Neoverse N1
ARM Neoverse N2
ARM Neoverse V1
ARM Neoverse V2
papi now supports fast performance event count read operations for 64-bit ARM
processors
Previously on 64-bit ARM processors, all performance event counter read operations required the use
of a resource-intensive system call. papi has been updated for 64-bit ARM to let processes monitoring
themselves with the performance counters use a faster user-space read of the performance event
counters. Setting the /proc/sys/kernel/perf_user_access parameter to 1 reduces the average number
of clock cycles for papi to read 2 counters from 724 cycles to 29 cycles.
Bugzilla:2186927[1]
Improvements to optimization
60
CHAPTER 4. NEW FEATURES
By default, Clang 16 uses the libstdc++ library version 13 and binutils 2.40 provided by GCC Toolset 13.
For more information, see the LLVM release notes and Clang release notes .
Bugzilla:2178796
A new Cargo sparse index protocol for more efficient use of the crates.io registry
A new C-unwind ABI string to enable usage of forced unwinding across Foreign Function
Interface (FFI) boundaries
Bugzilla:2191743
-C instrument-coverage
Enables coverage profiling
-C profile-generate
Enables profile-guided optimization
Bugzilla:2227082 [1]
New functions added in the unsafe package to handle slices and strings without depending on
61
Red Hat Enterprise Linux 9.3 9.3 Release Notes
New functions added in the unsafe package to handle slices and strings without depending on
the internal representation.
The go generate and go test commands now accept the -skip pattern option.
The go build, go install, and other build-related commands now support the -pgo and -cover
flags.
Added support for collecting code coverage profiles from applications and integration tests
instead of collecting them only from unit tests.
Bugzilla:2185259[1]
The pcp package has been updated to version 6.0.5. Notable changes include:
pmdaproc:
pmdalinux:
Added support for system wide IRQ PSI metrics in recent kernels
pmieconf:
62
CHAPTER 4. NEW FEATURES
Bugzilla:2175602
To enable this feature, configure all local pmie rules to send to a webhook at a given endpoint (URL):
Bugzilla:2185803
The grafana package has been updated to version 9.2.10. Notable changes include:
Grafana Alerting rules now return an Error state by default on execution error or timeout.
Bugzilla:2193018
AES128-GCM-SHA256
63
Red Hat Enterprise Linux 9.3 9.3 Release Notes
AES128-SHA
AECDHE-RSA-AES128-SHA
AES256-GCM-SHA384
AES256-SHA
ECDHE-RSA-AES256-SHA
Bugzilla:2190025[1]
Added support for building container images using the .NET Software Development Kit directly.
Many performance improvements to the garbage collector (GC), Just-In-Time (JIT) compiler,
and the base libraries.
Jira:RHELPLAN-164399[1]
The samba packages have been upgraded to upstream version 4.18.6, which provides bug fixes and
enhancements over the previous version. The most notable changes:
Security improvements in previous releases impacted the performance of the Server Message
Block (SMB) server for high metadata workloads. This update improves the performance in this
scenario.
By default, Samba stores access control lists (ACLs) in the security.NTACL extended attribute
of files. You can now customize the attribute name with the acl_xattr:<security_acl_name>
setting in the /etc/samba/smb.conf file. Note that a custom extended attribute name is not a
protected location as security.NTACL. Consequently, users with local access to the server can
be able to modify the custom attribute’s content and compromise the ACL.
Note that the server message block version 1 (SMB1) protocol has been deprecated since Samba 4.11
and will be removed in a future release.
Back up the database files before starting Samba. When the smbd, nmbd, or winbind services start,
Samba automatically updates its tdb database files. Red Hat does not support downgrading tdb
database files.
After updating Samba, use the testparm utility to verify the /etc/samba/smb.conf file.
Bugzilla:2190415
The ipaclient role now allows configuring user subID ranges on the IdM level
64
CHAPTER 4. NEW FEATURES
With this update, the ipaclient ansible-freeipa role provides the ipaclient_subid option, using which
you can configure subID ranges on the Identity Management (IdM) level. Without the new option set
explicitly to true, the ipaclient role keeps the default behavior and installs the client without subID
ranges configured for IdM users.
Previously, the role configured the sssd authselect profile that in turn customized the
/etc/nsswitch.conf file. The subID database did not use IdM and relied only on the local files of
/etc/subuid and /etc/subgid.
Bugzilla:2175767
Multiple IdM groups and services can now be managed in a single Ansible task
With this enhancement in ansible-freeipa, you can add, modify, and delete multiple Identity
Management (IdM) user groups and services by using a single Ansible task. For that, use the groups and
services options of the ipagroup and ipaservice modules.
Using the groups option available in ipagroup, you can specify multiple group variables that only apply
to a particular group. This group is defined by the name variable, which is the only mandatory variable
for the groups option.
Similarly, using the services option available in ipaservice, you can specify multiple service variables
that only apply to a particular service. This service is defined by the name variable, which is the only
mandatory variable for the services option.
Jira:RHELDOCS-16474[1]
With this update, you can use the ipaserver_random_serial_numbers=true option with the ansible-
freeipa ipaserver role. This way, you can generate fully random serial numbers for certificates and
requests in PKI when installing an Identity Management (IdM) server using Ansible. With RSNv3, you can
avoid range management in large IdM installations and prevent common collisions when reinstalling IdM.
IMPORTANT
RSNv3 is supported only for new IdM installations. If enabled, it is required to use RSNv3
on all PKI services.
Jira:RHELDOCS-16462[1]
The ipa package has been upgraded to version 4.10.2. Notable changes include:
Searching and listing certificates in the IdM CLI and Web UI now offer better performance.
Bugzilla:2196426
65
Red Hat Enterprise Linux 9.3 9.3 Release Notes
the following:
Specify the ipaserver_remove_on_server value to identify which part of the topology you
want to preserve.
Note that if removing a replica from IdM by using the remove_server_from_domain option preserves a
connected topology, neither of these options is required.
Bugzilla:2127903
By default its value is 15 seconds. For network volume clients such as NFS, to reduce the risk of losing
access in case the KDC is momentarily unavailable, set this value to 60 seconds.
Bugzilla:2181465
You can now manage IdM certificates using the ipacert Ansible module
You can now use the ansible-freeipa ipacert module to request or retrieve SSL certificates for Identity
Management (IdM) users, hosts and services. The users, hosts and services can then use these
certificates to authenticate to IdM. You can also revoke the certificates, and restore certificates that
have been put on hold.
Bugzilla:2127907
Since the krb5-1.20 release, MIT Kerberos KDCs have required the presence of ticket signatures in
PACs based on the encrypted part of Kerberos tickets so that they could process S4U requests
successfully. Previously, this was a problem in gradual upgrade scenarios where certain KDCs used krb5-
1.19 or older, while others used krb5-1.20 or newer. KDCs using the newer versions of krb5 for S4U
requests rejected service tickets that were provided by KDCs using the older versions of krb5 if a service
used them for S4U requests.
For more information about how this feature is used in Identity Management (IdM), see this pull request .
Bugzilla:2178298
With this update, IdM now supports resource-based constrained delegation (RBCD). RBCD allows a
66
CHAPTER 4. NEW FEATURES
With this update, IdM now supports resource-based constrained delegation (RBCD). RBCD allows a
granular control of delegation on a resource level and access can be set by the owner of the service to
which credentials are delegated.
RBCD can be useful, for example, in an integration between IdM and Active Directory (AD), because AD
enforces the use of RBCD when both target and proxy services belong to different forests.
IMPORTANT
Currently, only services in the IdM domain can be configured with RBCD rules. If the
target service is part of an AD domain, the permission can only be granted on the AD side.
As AD domain controllers cannot resolve IdM service information to create the rule, this is
not currently supported.
For more information on delegation scenarios, see the FreeIPA design page.
Bugzilla:2165880
https://www.port389.org/docs/389ds/releases/release-2-2-8.html
https://www.port389.org/docs/389ds/releases/release-2-2-9.html
https://www.port389.org/docs/389ds/releases/release-2-3-0.html
https://www.port389.org/docs/389ds/releases/release-2-3-1.html
https://www.port389.org/docs/389ds/releases/release-2-3-2.html
https://www.port389.org/docs/389ds/releases/release-2-3-3.html
https://www.port389.org/docs/389ds/releases/release-2-3-4.html
Bugzilla:2188627
Directory Server can now close a client connection if a bind operation fails
Previously, when a bind operation failed, some applications that ignore the bind return code could load
Director Server with further requests.
With the new nsslapd-close-on-failed-bind configuration attribute under the cn=config entry, the
server can close a client connection when the bind operation fails. As a result, the server load can be
reduced.
Bugzilla:1987471
With this update, the Automembership plug-in has the following improvements:
67
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The Automembership plug-in now does not clean up previous members by default. Use the new
CLI option --cleanup to intentionally clean up memberships before rebuilding from scratch:
Bugzilla:2149025
Bugzilla:2166332
New slapi_memberof() plug-in function is now available for Directory Server plug-ins and
client applications
The new slapi_memberof() function retrieves distinguished names (DNs) of groups to which the given
entry belongs directly or indirectly. Previously, MemberOf, Referential Integrity, and ACL plug-ins
implemented their own mechanism to retrieve such groups. With this update, you can use the
slapi_memberof() function that introduces a unified mechanism to return group DNs.
Bugzilla:2189946
Directory Server now replaces the virtual attribute nsRole with an indexed attribute for
managed and filtered roles
Previously, LDAP searches that contained the virtual attribute nsRole in the filter were time consuming
because that attribute cannot be indexed. With this update, when you perform the ldapsearch with
virtual attribute nsRole in the filter, Directory Server replaces the nsRole attribute the following way:
For managed roles, the nsRole attribute is replaced with the nsRoleDN attribute.
For filtered roles, the nsRole attribute is replaced with the nsRoleFilter attribute.
As a result, response time for search with the nsRole attribute improves because the search becomes
indexed.
Bugzilla:2189954
Bugzilla:1975930
68
CHAPTER 4. NEW FEATURES
IdM supports the option to control the encryption type used to sign the PAC
By default, the Kerberos Key Distribution Center (KDC) generates an AES HMAC-SHA2 signature for
the Privilege Attribute Certificate (PAC). However, this encryption type is not supported by Active
Directory (AD). As a result, AD cross-realm constrained delegation requests are not processed correctly.
With this enhancement, you can now control the encryption type used to sign the PAC by setting the
pac_privsvr_entype attribute on the TGS principal, krbtgt/[realm]@[realm], to the required encryption
type for the target realm. In IdM, this string attribute is automatically configured when an AD trust exists.
WARNING: This update is about standalone MIT realms. Do not change the Kerberos Distribution
Center (KDC) configuration in RHEL Identity Management.
For example, for an MIT realm and an AD realm, to ensure cross-realm ticket-granting tickets (TGT) use
AD-compatible encryption types, an administrator must configure the cross-realm TGS principal as
shown below on the MIT side. This results in cross-realm TGTs using the AES 256 HMAC-SHA1
encryption type and constrained delegation requests being processed correctly.
kadmin.local <<EOF
setstr krbtgt/AD@IPA pac_privsvr_enctype aes256-cts-hmac-sha1-96
setstr krbtgt/IPA@AD pac_privsvr_enctype aes256-cts-hmac-sha1-96
EOF
Bugzilla:2060421
Bugzilla:2101598[1]
Force stop: Force stops the container, it does not wait for the container to exit.
Jira:RHELDOCS-16247 [1]
69
Red Hat Enterprise Linux 9.3 9.3 Release Notes
To learn more about Stratis, see Setting up Stratis file systems using the web console .
Jira:RHELPLAN-122345[1]
Bugzilla:2224384
Bugzilla:2216753
With the new keylime_server RHEL System Role, you can use Ansible Playbooks to configure the
verifier and registrar Keylime components on RHEL 9 systems. Keylime is a remote machine attestation
tool that uses the trusted platform module (TPM) technology.
Bugzilla:2224385
Configuration of resource and resource operation defaults, including multiple sets of defaults
with rules.
Loading and blocking of SBD watchdog kernel modules. This makes installed hardware
watchdogs available to the cluster.
Assignment of distinct passwords to the cluster hosts and the quorum device. This allows you to
configure a deployment where the same quorum hosts are joined to multiple, separate clusters,
and the passwords of the hacluster user on these clusters are different.
For information about the parameters you configure to implement these features, see Configuring a
high-availability cluster by using the ha_cluster RHEL System Role.
storage system role supports configuring the stripe size for RAID LVM volumes
With this update, you can now specify a custom stripe size when creating RAID LVM devices. For better
performance, use the custom stripe size for SAP HANA. The recommended stripe size for RAID LVM
volumes is 64 KB.
Bugzilla:2181656
70
CHAPTER 4. NEW FEATURES
The network RHEL system role supports the auto-dns option to control automatic DNS
record updates
This enhancement provides support for defined name servers and search domains. You can now use
only the name servers and search domains specified in dns and dns_search properties while disabling
automatically configured name servers and search domains such as dns record from DHCP. With this
enhancement, you can disable automatically auto dns record by changing the auto-dns settings.
Bugzilla:2211194
The network RHEL system role supports the no-aaaa DNS option
You can now use the no-aaaa option to configure DNS settings on managed nodes. Previously, there
was no option to suppress AAAA queries generated by the stub resolver, including AAAA lookups
triggered by NSS-based interfaces such as getaddrinfo; only DNS lookups were affected. With this
enhancement, you can now suppress AAAA queries generated by the stub resolver.
Bugzilla:2218592
Bugzilla:2211723
The certificate RHEL System Role now allows changing certificate file mode when using
certmonger
Previously, certificates created by the certificate RHEL System Role with the certmonger provider
used a default file mode. However, in some use-cases you might require a more restrictive mode. With
this update, you can now set a different certificate and a key file mode using the mode parameter.
Bugzilla:2218204
The role supports the currently released and supported versions of PostgreSQL on RHEL 8 and RHEL 9
managed nodes.
For more information, see Installing and configuring PostgreSQL by using the postgresql RHEL System
Role.
Bugzilla:2151373
podman RHEL System Role now supports Quadlets, health checks, and secrets
Starting with Podman 4.6, you can use the podman_quadlet_specs variable in the podman RHEL
System Role. You can define a Quadlet by specifying a unit file, or in the inventory by a name, a type of
unit, and a specification. Types of a unit can be the following: container, kube, network, and volume.
Note that Quadlets work only with root containers on RHEL 8. Quadlets work with rootless containers on
RHEL 9.
The health checks are supported only for Quadlet Container types. In the [Container] section, specify
71
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The health checks are supported only for Quadlet Container types. In the [Container] section, specify
the HealthCmd field to define the health check command and HealthOnFailure field to define the
action when a container is unhealthy. Possible options are none, kill, restart, and stop.
You can use the podman_secrets variable to manage secrets. For details, see upstream
documentation.
Jira:RHELPLAN-154441[1]
Bugzilla:2179460
The rhc System Role now supports setting a proxy server type
The newly introduced attribute scheme under the rhc_proxy parameter enables you to configure the
proxy server type by using the rhc system role. You can set two values: http, the default and https.
Bugzilla:2211748
With this update of the firewall RHEL System Role, you can define, modify, and delete ipsets. Also, you
can add and remove those ipsets from firewall zones. Alternatively, you can use those ipsets when
defining firewall rich rules.
You can manage ipsets with the firewall RHEL System Role using the following variables:
ipset
ipset_type
ipset_entries
short
description
permanent: true
You can reduce the complexity of the rich rules that define rules for many IP addresses.
You can add or remove IP addresses from sets as needed without modifying multiple rules.
Bugzilla:2229802
RHEL System Roles now have new volume options for mount point customization
With this update, you can now specify mount_user, mount_group, and mount_permissions
parameters for your mount directory.
72
CHAPTER 4. NEW FEATURES
Bugzilla:2181657
The firewall RHEL System Role has an option to disable conflicting services, and it no
longer fails if firewalld is masked
Previously, the firewall System Role failed when the firewalld service was masked on the role run or in
the presence of conflicting services. This update brings two notable enhancements:
The linux-system-roles.firewall role always attempts to install, unmask, and enable the firewalld
service on role run. You can now add a new variable firewall_disable_conflicting_services to your
playbook to disable known conflicting services, for example, iptables.service, nftables.service, and
ufw.service. The firewall_disable_conflicting_services variable is set to false by default. To disable
conflicting services, set the variable to true.
Bugzilla:2222761
Resetting the firewall RHEL System Role configuration now requires minimal downtime
Previously, when you reset the firewall role configuration by using the previous: replaced variable, the
firewalld service restarted. Restarting adds downtime and prolongs the period of an open connection in
which firewalld does not block traffic from active connections. With this enhancement, the firewalld
service completes the configuration reset by reloading instead of restarting. Reloading minimizes the
downtime and reduces the opportunity to bypass firewall rules. As a result, using the previous: replaced
variable to reset the firewall role configuration now requires minimal downtime.
Bugzilla:2223764
4.18. VIRTUALIZATION
sevctl is now fully compatible with AMD EPYC Rome and Milan
With this update, the sevctl utility correctly recognizes the latest AMD EPYC cores, including the AMD
EPYC Rome and AMD EPYC Milan series. As a result, you can use sevctl to configure the features of
AMD Secure Encrypted Virtualization (SEV) that are available on these CPUs.
Note, however, that advanced SEV functions, such as SEV-ES and SEV-SNP are only provided as
Technology Previews in RHEL 9, and therefore unsupported.
Bugzilla:2104857[1]
It is now possible for virtio-vga and virtio-gpu devices to use blob memory resources, which improves
their performance in certain scenarios. To attach a blob resource to a virtio graphics device, add a
blob="on" option to the corresponding <video> section in the virtual machine’s XML configuration. For
example:
<video>
<model type="virtio" heads="1" primary="yes" blob="on"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
Note, however, that this feature currently does not work on IBM Z hosts.
Bugzilla:2032406
73
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:1880531 [1]
To set up enhanced memory reclaiming in a VM, add the <async-teardown enabled='yes'/> line to the
<features></features> section in its XML configuration.
Bugzilla:2168499 [1]
Select the Create and edit button for a virtual machine (VM) based on a cloud image, which
allows you to edit all of the VM properties before the VM is installed.
Set up a virtual socket (vsock) to enable communication between the host and the VM over a
socket.
Note that a virtual socket requires vsock-aware software, such as socat, to enable the
communication.
Jira:RHELDOCS-16487[1]
Note that by default, cloud-init still uses the sysconfig method for network setup. To configure cloud-
init to use a NM keyfile instead, edit the /etc/cloud/cloud.cfg and set network-manager as the primary
network renderer:
# cat /etc/cloud/cloud.cfg
network:
renderers: ['network-manager', 'eni', 'netplan', 'sysconfig', 'networkd']
Bugzilla:2118235 [1]
When creating RHEL virtual machines (VMs) on a host that uses the VMware ESXi hypervisor, such as
74
CHAPTER 4. NEW FEATURES
When creating RHEL virtual machines (VMs) on a host that uses the VMware ESXi hypervisor, such as
the VMware vSphere cloud platform. This improves the performance and stability of creating an ESXi
instance of RHEL by using cloud-init. Note, however, that ESXi is still compatible with Open
Virtualization Format (OVF) datasources, and you can use an OVF datasource if a VMware one is not
available.
Bugzilla:2172341[1]
4.20. SUPPORTABILITY
sos rebased to version 4.6
The sos utility, for collecting configuration, diagnostic, and troubleshooting data, has been rebased to
version 4.6. This update provides the following enhancements:
The sos plugin for OVN-Kubernetes collects additional logs for the interconnect environment.
With this update, sos also collects logs from the ovnkube-controller container when both
ovnkube-node and ovnkube-controller containers are merged into one.
sos now correctly gathers cgroup data in the OpenShift Container Platform 4 environment
(BZ#2186361).
While collecting sos reports with the sudo plugin enabled, sos now removes the bindpw option
properly. (BZ#2143272)
The subscription_manager plugin no longer collects proxy usernames and passwords from the
/var/lib/rhsm/ path. (BZ#2177282)
The virsh plugin no longer collects the SPICE remote-display passwords in virt-manager logs,
which prevents sos from disclosing passwords in its reports. (BZ#2184062)
IMPORTANT
The generated archive might contain data considered sensitive. Thus, you should
always review the content before passing it to any third party.
(BZ#2187859)
sos completes the tailed log collection even when the size of the log file is exceeded and when
a plugin times out. (BZ#2203141)
When entering the sos collect command on a Pacemaker cluster node, sos collects an sos
report from the same cluster node. (BZ#2186460)
When collecting data from a host in the OpenShift Container Platform 4 environment, sos now
uses the sysroot path, which ensures that only the correct data are assembled. (BZ#2075720)
75
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The sos report --clean command obfuscates all MAC addresses as intended. (BZ#2207562)
Jira:RHELPLAN-156196[1]
4.21. CONTAINERS
Podman supports pulling and pushing images compressed with zstd
You can pull and push images compressed with the zstd format. The zstd compression is more efficient
and faster than gzip. It can reduce the amount of network traffic and storage involved in pulling and
pushing the image.
Jira:RHELPLAN-154314[1]
For more details, see the Quadlet upstream documentation and the Make systemd better for Podman
with Quadlet article.
Jira:RHELPLAN-154432 [1]
The podman kube play command now supports the --configmap=<path> option to provide
Kubernetes YAML file with environment variables used within the containers of the pod.
The podman kube play command now supports multiple Kubernetes YAML files for the --
configmap option.
The podman kube play command now supports containerPort names and port numbers within
liveness probes.
The podman kube play command now adds the ctrName as an alias to the pod network.
The podman kube play and podman kube generate commands now support SELinux filetype
labels and ulimit annotations.
A new command, podman secret exists, has been added, which verifies if a secret with the
given name exists.
The podman create, podman run, podman pod create, and podman pod clone commands
76
CHAPTER 4. NEW FEATURES
The podman create, podman run, podman pod create, and podman pod clone commands
now support a new option, --shm-size-systemd, which allows limiting tmpfs sizes for systemd-
specific mounts.
The podman create and podman run commands now support a new option, --security-opt
label=nested, which allows SELinux labeling within a confined container.
Podman now supports auto updates for containers running inside a pod.
Podman can now use an SQLite database as a backend for increased stability. The default
remains the BoltDB database. You can select the database by setting the database_backend
field in the containers.conf file.
Podman now supports Quadlets to automatically generate a systemd service file from the
container description. The description focuses on the relevant container details and hides the
technical complexity of running containers under systemd.
For further information about notable changes, see upstream release notes .
Jira:RHELPLAN-154438[1]
For more information, see Podman v4.6.0 Introduces Podmansh: A Revolutionary Login Shell .
Jira:RHELPLAN-163003[1]
Clients for sigstore signatures with Fulcio and Rekor are now available
With Fulcio and Rekor servers, you can now create signatures by using short-term certificates based on
an OpenID Connect (OIDC) server authentication, instead of manually managing a private key. Clients
for sigstore signatures with Fulcio and Rekor, previously available as a Technology Preview, are now fully
supported. This added functionality is the client side support only, and does not include either the Fulcio
or Rekor servers.
Add the fulcio section in the policy.json file. To sign container images, use the podman push --sign-
by-sigstore=file.yml or skopeo copy --sign-by-sigstore=file.yml commands, where file.yml is the
sigstore signing parameter file.
To verify signatures, add the fulcio section and the rekorPublicKeyPath or rekorPublicKeyData fields
in the policy.json file. For more information, see containers-policy.json man page.
Jira:RHELPLAN-160660[1]
77
Red Hat Enterprise Linux 9.3 9.3 Release Notes
network=pasta option. With Podman v4.6, you can set default rootless network mode in the
/etc/containers/containers.conf configuration file by using the default_rootless_network_cmd field
under the [network] section.
Jira:RHELDOCS-16240 [1]
Bugzilla:2223028
78
CHAPTER 5. IMPORTANT CHANGES TO EXTERNAL KERNEL PARAMETERS
amd_pstate=[X86]
With this kernel parameter, you can scale the performance of the AMD CPU. Available values include:
disable - Do not enable amd_pstate as the default scaling driver for the supported
processors.
passive - Use amd_pstate with passive mode as a scaling driver. In this mode autonomous
selection is disabled. Driver requests a required performance level and platform tries to
match the same performance level if it is satisfied by guaranteed performance level.
active - Use amd_pstate_epp driver instance as the scaling driver, driver provides a hint to
the hardware if software wants to bias toward performance (0x0) or energy efficiency (0xff)
to the CPPC firmware. Then CPPC power algorithm will calculate the runtime workload and
adjust the realtime cores frequency.
guided - Activate guided autonomous mode. Driver requests minimum and maximum
performance level and the platform autonomously selects a performance level in this range
and appropriate to the current workload.
arm64.nosve=[ARM64]
With this kernel parameter, you can unconditionally disable Scalable Vector Extension support.
arm64.nosme=[ARM64]
With this kernel parameter, you can unconditionally disable Scalable Matrix Extension support.
gather_data_sampling=[X86,INTEL]
With this kernel parameter, you can control the Gather Data Sampling (GDS) mitigation.
GDS is a hardware vulnerability that allows unprivileged speculative access to data that was
previously stored in vector registers.
This issue is mitigated by default in updated microcode. The mitigation might have a performance
impact but can be disabled. On systems without the microcode mitigation disabling AVX serves as a
mitigation. Available values include:
force - Disable AVX to mitigate systems without microcode mitigation. No effect if the
microcode mitigation is present. Known to cause crashes in userspace with buggy AVX
enumeration.
nospectre_bhb=[ARM64]
With this kernel parameter, you can disable all mitigations for Spectre-BHB (branch history injection)
vulnerability. System might allow data leaks with this option.
trace_clock=[FTRACE]
With this kernel parameter, you can set the clock used for tracing events at boot up. Available values
79
Red Hat Enterprise Linux 9.3 9.3 Release Notes
With this kernel parameter, you can set the clock used for tracing events at boot up. Available values
include:
global - Event timestamps are synchronize across CPUs. Might be slower than the local
clock, but better for some race conditions.
counter - Simple counting of events (1, 2, ..) note, some counts might be skipped due to the
infrastructure grabbing the clock more than once per event.
cgroup.memory=[KNL]
With this kernel parameter, you can pass options to the cgroup memory controller.
hugetlb_free_vmemmap=[KNL]
This kernel parameter enables the feature of freeing unused vmemmap pages associated with each
hugetlb page on boot. For this parameter to work, the
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP configuration option must be enabled.
This parameter takes the format of: { on | off (default) }
NOTE
The vmemmap pages might be allocated from the added memory block itself
when the memory_hotplug.memmap_on_memory module parameter is
enabled. Those vmemmap pages cannot be optimized even if this feature is
enabled. Other vmemmap pages not allocated from the added memory block
itself are not affected.
80
CHAPTER 5. IMPORTANT CHANGES TO EXTERNAL KERNEL PARAMETERS
intel_pstate=[X86]
You can use this kernel parameter for CPU performance scaling. Available values include:
disable - Do not enable intel_pstate as the default scaling driver for the supported
processors.
[NEW] active - Use intel_pstate driver to bypass the scaling governors layer of cpufreq and
provides it own algorithms for p-state selection. There are two P-state selection algorithms
provided by intel_pstate in the active mode: powersave and performance. The way they
both operate depends on whether or not the hardware managed P-states (HWP) feature has
been enabled in the processor and possibly on the processor model.
passive - Use intel_pstate as a scaling driver, but configure it to work with generic cpufreq
governors (instead of enabling its internal governor). This mode cannot be used along with
the hardware-managed P-states (HWP) feature.
hwp_only - Only load intel_pstate on systems that support hardware P state control (HWP)
if available.
support_acpi_ppc - Enforce ACPI _PPC performance limits. If the Fixed ACPI Description
Table specifies preferred power management profile as "Enterprise Server" or "Performance
Server", then this feature is turned on by default.
kvm-arm.mode=[KVM,ARM]
With this kernel parameter, you can select one of KVM/arm64’s modes of operation. Available values
include:
protected - nVHE-based mode with support for guests whose state is kept private from the
host. Setting mode to protected disables kexec and hibernation for the host.
[NEW] nested - VHE-based mode with support for nested virtualization. Requires at least
ARMv8.3 hardware. The nested option is experimental and should be used with extreme
caution.
Defaults to VHE/nVHE based on hardware support.
libata.force=[LIBATA]
With this kernel parameter, you can force configurations.
The format is a comma-separated list of "[ID:]VAL" where ID is PORT[.DEVICE]. PORT and DEVICE
81
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The format is a comma-separated list of "[ID:]VAL" where ID is PORT[.DEVICE]. PORT and DEVICE
are decimal numbers matching port, link or device. Basically, it matches the ATA ID string printed on
console by libata.
If the whole ID part is omitted, the last PORT and DEVICE values are used.
If ID has not been specified yet, the configuration applies to all ports, links and devices.
If only the DEVICE value is omitted, the parameter applies to the port and all links and
devices behind it. DEVICE number of 0 either selects the first device or the first fan-out link
behind PMP device. It does not select the host link. DEVICE number of 15 selects the host link
and device attached to it.
The VAL specifies the configuration to force. As long as there is no ambiguity, shortcut
notation is allowed. For example, both 1.5 and 1.5G would work for 1.5Gbps.
With the libata.force= parameter, you can force the following configurations:
Cable type: 40c, 80c, short40c, unk, ign or sata. Any ID with matching PORT is used.
[NEW] [no]dbdelay: Enable or disable the extra 200ms delay before debouncing a link PHY
and device presence detection.
atapi_mod16_dma: Enable the use of ATAPI DMA for commands that are not a multiple of
16 bytes.
[no]dmalog: Enable or disable the use of the READ LOG DMA EXT command to access logs.
82
CHAPTER 5. IMPORTANT CHANGES TO EXTERNAL KERNEL PARAMETERS
[NEW] [no]fua: Disable or enable FUA (Force Unit Access) support for devices supporting
this feature.
NOTE
If there are multiple matching configurations changing the same attribute, the
last one is used.
mitigations=[X86,PPC,S390,ARM64]
With this kernel parameter, you can control optional mitigations for CPU vulnerabilities. This is a set
of curated, arch-independent options, each of which is an aggregation of existing arch-specific
options. Available values include:
off - disable all optional CPU mitigations. This improves system performance, but it can also
expose users to several CPU vulnerabilities. The off value is equivalent to:
gather_data_sampling=off [X86]
kvm.nx_huge_pages=off [X86]
l1tf=off [X86]
mds=off [X86]
mmio_stale_data=off [X86]
no_entry_flush [PPC]
no_uaccess_flush [PPC]
nobp=0 [S390]
nopti [X86,PPC]
nospectre_bhb [ARM64]
nospectre_v1 [X86,PPC]
nospectre_v2 [X86,PPC,S390,ARM64]
retbleed=off [X86]
83
Red Hat Enterprise Linux 9.3 9.3 Release Notes
spec_store_bypass_disable=off [X86,PPC]
spectre_v2_user=off [X86]
srbds=off [X86,INTEL]
ssbd=force-off [ARM64]
tsx_async_abort=off [X86]
Exceptions: This does not have any effect on kvm.nx_huge_pages when
kvm.nx_huge_pages=force.
auto (default) - Mitigate all CPU vulnerabilities, but leave SMT enabled, even if it is
vulnerable. This is for users who do not want to be surprised by SMT getting disabled across
kernel upgrades, or who have other ways of avoiding SMT-based attacks.
auto,nosmt - Mitigate all CPU vulnerabilities, disabling SMT if needed. This is for users who
always want to be fully mitigated, even if it means losing SMT. The auto,nosmt options are
equivalent to:
l1tf=flush,nosmt [X86]
mds=full,nosmt [X86]
tsx_async_abort=full,nosmt [X86]
mmio_stale_data=full,nosmt [X86]
retbleed=auto,nosmt [X86]
nomodeset
With this kernel parameter, you can disable kernel modesetting. Most systems' firmware sets up a
display mode and provides framebuffer memory for output. With nomodeset, DRM and fbdev
drivers will not load if they could possibly displace the preinitialized output. Only the system
framebuffer will be available for use. The drivers will not perform display-mode changes or
accelerated rendering.
This parameter is especially useful as error fallback, or for testing and debugging.
rdt=[HW,X86,RDT]
With this kernel parameter, you can turn on or off individual RDT features. The list includes: cmt,
mbmtotal, mbmlocal, l3cat, l3cdp, l2cat, l2cdp, mba, smba, bmec.
For example, to turn on cmt and turn off mba use:
rdt=cmt,!mba
rodata=[KNL]
With this kernel parameter, you can disable read-only kernel mappings. Available options include:
[NEW] full - Mark read-only kernel memory and aliases as read-only [arm64].
84
CHAPTER 5. IMPORTANT CHANGES TO EXTERNAL KERNEL PARAMETERS
nobats=[PPC]
With this kernel parameter, you can forbid the use of BATs for mapping kernel lowmem on "Classic"
PPC cores.
noltlbs=[PPC]
With this kernel parameter, you can forbid the use of huge page and tlb entries for kernel lowmem
mapping on PPC40x and PPC8xx.
swapaccount=[0|1]=[KNL]
With this kernel parameter, you can enable or disable accounting of swap in memory resource
controller. For more information, see Documentation/admin-guide/cgroup-v1/memory.rst.
85
Red Hat Enterprise Linux 9.3 9.3 Release Notes
MediaTek MT7601U (USB) support (mt7601u), adds support for MT7601U-based wireless USB
dongles (only in 64-bit ARM architecture)
MediaTek MT76x0U (USB) support (mt76x0u), adds support for MT7610U-based wireless USB
2.0 dongles (only in 64-bit ARM architecture)
MediaTek MT76x2U (USB) support (mt76x2u), adds support for MT7612U-based wireless USB
3.0 dongles (only in 64-bit ARM architecture)
MediaTek MT7921E (PCIe) support (mt7921e), adds support for MT7921E 802.11ax 2x2:2SS
wireless devices (only in 64-bit ARM architecture)
Atheros driver 802.11n HTC based wireless devices (ath9k_htc) (only in 64-bit ARM
architecture)
Broadcom 802.11n wireless LAN driver (brcmsmac) (only in 64-bit ARM architecture)
Broadcom 802.11n wireless LAN driver utilities (brcmutil) (only in 64-bit ARM architecture)
Broadcom 802.11 wireless LAN fullmac driver (brcmfmac) (only in 64-bit ARM architecture)
Core module for Qualcomm Atheros 802.11ac wireless LAN cards (ath10k_core) (only in 64-bit
ARM architecture)
Core module for Qualcomm Atheros 802.11ax wireless LAN cards (ath11k) (only in 64-bit ARM
architecture)
Driver support for Qualcomm Atheros 802.11ac WLAN PCIe/AHB devices (ath10k_pci) (only in
64-bit ARM architecture)
Driver support for Qualcomm Technologies 802.11ax WLAN PCIe devices (ath11k_pci) (only in
64-bit ARM architecture)
Intel® Wireless Wi-Fi driver for Linux (iwlwifi) (only in 64-bit ARM architecture)
Intel® Wireless Wi-Fi Link AGN driver for Linux (iwldvm)- (only in 64-bit ARM architecture)
Marvell WiFi-Ex Driver version 1.0 (mwifiex) (only in 64-bit ARM architecture)
Marvell WiFi-Ex PCI-Express Driver version 1.0 (mwifiex_pcie) (only in 64-bit ARM
86
CHAPTER 6. DEVICE DRIVERS
Marvell WiFi-Ex PCI-Express Driver version 1.0 (mwifiex_pcie) (only in 64-bit ARM
architecture)
Marvell WiFi-Ex SDIO Driver version 1.0 (mwifiex_sdio) (only in 64-bit ARM architecture)
Marvell WiFi-Ex USB Driver version 1.0 (mwifiex_usb) (only in 64-bit ARM architecture)
Network/MBIM over MHI (mhi_wwan_mbim) (only in 64-bit ARM architecture, IBM Power
Systems, Little Endian, and AMD and Intel 64-bit architectures)
PCI basic driver for rtlwifi (rtl_pci) (only in 64-bit ARM architecture)
Ralink RT2800 library version 2.3.0 (rt2800lib) (only in 64-bit ARM architecture)
Ralink RT2800 PCI & PCMCIA Wireless LAN driver version 2.3.0 (rt2800pci) (only in 64-bit
ARM architecture)
Ralink RT2800 USB Wireless LAN driver version 2.3.0 (rt2800usb) (only in 64-bit ARM
architecture)
Realtek 802.11ac wireless 8821c driver (rtw88_8821c) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless 8821ce driver (rtw88_8821ce) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless 8822b driver (rtw88_8822b) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless 8822be driver (rtw88_8822be) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless 8822c driver (rtw88_8822c) - (only in 64-bit ARM architecture)
Realtek 802.11ac wireless 8822ce driver (rtw88_8822ce) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless core module (rtw88_core) (only in 64-bit ARM architecture)
Realtek 802.11ac wireless PCI driver (rtw88_pci) (only in 64-bit ARM architecture)
Realtek 802.11ax wireless 8852A driver (rtw89_8852a) (only in 64-bit ARM architecture)
Realtek 802.11ax wireless 8852AE driver (rtw89_8852ae) (only in 64-bit ARM architecture)
Realtek 802.11ax wireless 8852B driver (rtw89_8852b) (only in 64-bit ARM architecture and
AMD and Intel 64-bit architectures)
Realtek 802.11ax wireless 8852BE driver (rtw89_8852be) (only in 64-bit ARM architecture and
AMD and Intel 64-bit architectures)
Realtek 802.11ax wireless core module (rtw89_core) (only in 64-bit ARM architecture)
Realtek 802.11ax wireless PCI driver (rtw89_pci) (only in 64-bit ARM architecture)
Realtek 802.11n PCI wireless core (btcoexist) (only in 64-bit ARM architecture)
Realtek 802.11n PCI wireless core (rtlwifi) (only in 64-bit ARM architecture)
Realtek 802.11n wireless 8723d driver (rtw88_8723d) (only in 64-bit ARM architecture)
87
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Realtek 802.11n wireless 8723de driver (rtw88_8723de) (only in 64-bit ARM architecture)
Realtek 8188E 802.11n PCI wireless (rtl8188ee) (only in 64-bit ARM architecture)
Realtek 8192C/8188C 802.11n PCI wireless (rtl8192ce) (only in 64-bit ARM architecture)
Realtek 8192C/8188C 802.11n USB wireless (rtl8192cu) (only in 64-bit ARM architecture)
Realtek 8192DE 802.11n Dual Mac PCI wireless (rtl8192de) (only in 64-bit ARM architecture)
Realtek 8192EE 802.11n PCI wireless (rtl8192ee) (only in 64-bit ARM architecture)
Realtek 8192S/8191S 802.11n PCI wireless (rtl8192se) (only in 64-bit ARM architecture)
Realtek 8723BE 802.11n PCI wireless (rtl8723be) (only in 64-bit ARM architecture)
Realtek 8723E 802.11n PCI wireless (rtl8723ae) (only in 64-bit ARM architecture)
Realtek 8821ae 802.11ac PCI wireless (rtl8821ae) (only in 64-bit ARM architecture)
rt2800 MMIO library version 2.3.0 (rt2800mmio) (only in 64-bit ARM architecture)
rt2x00 mmio library version 2.3.0 ( rt2x00mmio) (only in 64-bit ARM architecture)
rt2x00 pci library version 2.3.0 ( rt2x00pci) (only in 64-bit ARM architecture)
rt2x00 usb library version 2.3.0 (rt2x00usb) (only in 64-bit ARM architecture)
RTL8XXXu USB mac80211 Wireless LAN Driver (rtl8xxxu) (only in 64-bit ARM architecture)
Shared library for Atheros wireless 802.11n LAN cards (ath9k_common) (only in 64-bit ARM
architecture)
Shared library for Atheros wireless LAN cards (ath) (only in 64-bit ARM architecture)
Support for Atheros 802.11n wireless LAN cards (ath9k_hw) (only in 64-bit ARM architecture)
Support for Atheros 802.11n wireless LAN cards (ath9k) (only in 64-bit ARM architecture)
The new Intel® wireless AGN driver for Linux (iwlmvm) (only in 64-bit ARM architecture)
USB basic driver for rtlwifi (rtl_usb) (only in 64-bit ARM architecture)
Atheros AR30xx firmware driver 1.0 (ath3k) (only in 64-bit ARM architecture)
BlueFRITZ! USB driver version 1.2 (bfusb) (only in 64-bit ARM architecture)
88
CHAPTER 6. DEVICE DRIVERS
Bluetooth HCI UART driver version 2.3 (hci_uart) (only in 64-bit ARM architecture)
Bluetooth support for Broadcom devices version 0.1 (btbcm) (only in 64-bit ARM architecture)
Bluetooth support for Intel devices version 0.1 (btintel) (only in 64-bit ARM architecture)
Bluetooth support for MediaTek devices version 0.1 (btmtk) (only in 64-bit ARM architecture)
Bluetooth support for Realtek devices version 0.1 (btrtl) (only in 64-bit ARM architecture)
Bluetooth virtual HCI driver version 1.5 (hci_vhci) (only in 64-bit ARM architecture)
Broadcom Blutonium firmware driver version 1.2 (bcm203x) (only in 64-bit ARM architecture)
Digianswer Bluetooth USB driver version 0.11 ( bpa10x) (only in 64-bit ARM architecture)
Generic Bluetooth SDIO driver version 0.1 (btsdio) (only in 64-bit ARM architecture)
Generic Bluetooth USB driver version 0.8 (btusb) (only in 64-bit ARM architecture)
Marvell Bluetooth driver version 1.0 (btmrvl) (only in 64-bit ARM architecture)
Marvell BT-over-SDIO driver version 1.0 (btmrvl_sdio) (only in 64-bit ARM architecture)
Linux device driver of the BMC IPMI SSIF interface (ssif_bmc) (only in 64-bit ARM
architecture)
AMD P-state driver Test module (amd-pstate-ut) (only in AMD and Intel 64-bit architectures)
Compute Express Link (CXL) ACPI driver (cxl_acpi) (only in 64-bit ARM architecture and AMD
and Intel 64-bit architectures)
NVIDIA Tegra GPC DMA Controller driver (tegra186-gpc-dma) (only in 64-bit ARM
architecture)
HID driver for EVision devices (hid-evision) (only in 64-bit ARM architecture, IBM Power
Systems, Little Endian, and AMD and Intel 64-bit architectures)
Texas Instruments INA3221 HWMon Driver (ina3221) (only in 64-bit ARM architecture)
Silvaco dual-role I3C master driver (svc-i3c-master) (only in 64-bit ARM architecture)
Microsoft Azure Network Adapter IB driver (mana_ib) (only in AMD and Intel 64-bit
architectures)
89
Red Hat Enterprise Linux 9.3 9.3 Release Notes
i.MX8MP interconnect driver - Generic interconnect drivers for i.MX SOCs (imx8mp-
interconnect) (only in 64-bit ARM architecture)
Linux USB Video Class (uvc) (only in 64-bit ARM architecture, IBM Power Systems, Little
Endian, and AMD and Intel 64-bit architectures)
Common memory handling routines for videobuf2 (videobuf2-memops) (only in 64-bit ARM
architecture)
Device node registration for cec drivers (cec) (only in 64-bit IBM Z architecture)
Device node registration for media drivers (mc) (only in 64-bit ARM architecture)
Driver helper framework for Video for Linux 2 (videobuf2-v4l2) (only in 64-bit ARM
architecture)
USB Video Class driver version 1.1.1 (uvcvideo) (only in 64-bit ARM architecture)
vmalloc memory handling routines for videobuf2 (videobuf2-vmalloc) (only in 64-bit ARM
architecture)
Intel Meteor Lake PCH pinctrl/GPIO driver (pinctrl-meteorlake) (only in AMD and Intel 64-bit
architectures)
Intel In Field Scan (IFS) device (intel_ifs) (only in AMD and Intel 64-bit architectures)
NVIDIA WMI EC Backlight driver (nvidia-wmi-ec-backlight) (only in AMD and Intel 64-bit
architectures)
AMD SoundWire driver (soundwire-amd) (only in AMD and Intel 64-bit architectures)
NVIDIA Tegra114 SPI Controller Driver (spi-tegra114) (only in 64-bit ARM architecture)
MLX5 VFIO PCI - User Level meta-driver for MLX5 device family (mlx5-vfio-pci)
90
CHAPTER 6. DEVICE DRIVERS
Realtek RTL8152/RTL8153 Based USB Ethernet Adapters (r8152) has been updated to version
v1.12.13 (only in 64-bit ARM architecture, IBM Power Systems, Little Endian, and AMD and Intel
64-bit architectures).
Broadcom MegaRAID SAS Driver (megaraid_sas) has been updated to version 07.725.01.00-
rc1 (only in 64-bit ARM architecture, IBM Power Systems, Little Endian, and AMD and Intel 64-
bit architectures).
Driver for Microchip Smart Family Controller (smartpqi) has been updated to version 2.1.22-
040 (only in 64-bit ARM architecture, IBM Power Systems, Little Endian, and AMD and Intel 64-
bit architectures).
Emulex LightPulse Fibre Channel SCSI driver (lpfc) has been updated to version 0:14.2.0.12
(only in 64-bit ARM architecture, IBM Power Systems, Little Endian, and AMD and Intel 64-bit
architectures).
MPI3 Storage Controller Device Driver (mpi3mr) has been updated to version 8.4.1.0.0.
91
Red Hat Enterprise Linux 9.3 9.3 Release Notes
This chapter contains automatically generated output of the bpftool feature command.
Option Value
CONFIG_BPF y
CONFIG_BPF_SYSCALL y
CONFIG_HAVE_EBPF_JIT y
CONFIG_BPF_JIT y
CONFIG_BPF_JIT_ALWAYS_ON y
CONFIG_DEBUG_INFO_BTF y
CONFIG_DEBUG_INFO_BTF_MODULES y
CONFIG_CGROUPS y
CONFIG_CGROUP_BPF y
CONFIG_CGROUP_NET_CLASSID y
CONFIG_SOCK_CGROUP_DATA y
92
CHAPTER 7. AVAILABLE BPF FEATURES
Option Value
CONFIG_BPF_EVENTS y
CONFIG_KPROBE_EVENTS y
CONFIG_UPROBE_EVENTS y
CONFIG_TRACING y
CONFIG_FTRACE_SYSCALLS y
CONFIG_FUNCTION_ERROR_INJECTIO y
N
CONFIG_BPF_KPROBE_OVERRIDE n
CONFIG_NET y
CONFIG_XDP_SOCKETS y
CONFIG_LWTUNNEL_BPF y
CONFIG_NET_ACT_BPF m
CONFIG_NET_CLS_BPF m
CONFIG_NET_CLS_ACT y
CONFIG_NET_SCH_INGRESS m
CONFIG_XFRM y
CONFIG_IP_ROUTE_CLASSID y
CONFIG_IPV6_SEG6_BPF y
CONFIG_BPF_LIRC_MODE2 n
CONFIG_BPF_STREAM_PARSER y
CONFIG_NETFILTER_XT_MATCH_BPF m
CONFIG_BPFILTER n
CONFIG_BPFILTER_UMH n
93
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Option Value
CONFIG_TEST_BPF m
CONFIG_HZ 1000
94
CHAPTER 7. AVAILABLE BPF FEATURES
95
Red Hat Enterprise Linux 9.3 9.3 Release Notes
96
CHAPTER 7. AVAILABLE BPF FEATURES
97
Red Hat Enterprise Linux 9.3 9.3 Release Notes
98
CHAPTER 7. AVAILABLE BPF FEATURES
99
Red Hat Enterprise Linux 9.3 9.3 Release Notes
100
CHAPTER 7. AVAILABLE BPF FEATURES
101
Red Hat Enterprise Linux 9.3 9.3 Release Notes
102
CHAPTER 7. AVAILABLE BPF FEATURES
103
Red Hat Enterprise Linux 9.3 9.3 Release Notes
104
CHAPTER 7. AVAILABLE BPF FEATURES
105
Red Hat Enterprise Linux 9.3 9.3 Release Notes
106
CHAPTER 7. AVAILABLE BPF FEATURES
107
Red Hat Enterprise Linux 9.3 9.3 Release Notes
108
CHAPTER 7. AVAILABLE BPF FEATURES
hash yes
array yes
prog_array yes
perf_event_array yes
percpu_hash yes
percpu_array yes
stack_trace yes
cgroup_array yes
lru_hash yes
lru_percpu_hash yes
lpm_trie yes
array_of_maps yes
hash_of_maps yes
devmap yes
sockmap yes
cpumap yes
xskmap yes
sockhash yes
cgroup_storage yes
reuseport_sockarray yes
percpu_cgroup_storage yes
queue yes
stack yes
109
Red Hat Enterprise Linux 9.3 9.3 Release Notes
sk_storage yes
devmap_hash yes
struct_ops yes
ringbuf yes
inode_storage yes
task_storage yes
bloom_filter yes
user_ringbuf yes
cgrp_storage yes
110
CHAPTER 8. BUG FIXES
Bugzilla:2177219
The --noverifyssl option for liveimg no longer checks the server’s certificate for images
downloaded using HTTPS
Previously, the installation program ignored the --noverifyssl option from the liveimg Kickstart
command. Consequently, if the server’s certificate could not be validated for images downloaded using
the HTTPS protocol, the installation process failed. With this update, this issue has been fixed, and the --
noverifyssl option of the liveimg Kickstart command works correctly.
Bugzilla:2157921
With this update, the installation program has been improved to validate and enforce the minimum
length for passphrase. As a result, the installation program informs if the LUKS passphrase is too short
for use in the FIPS mode and prevents the unexpected stop.
Bugzilla:2163497
Jira:RHEL-7999
8.2. SECURITY
OpenSSL commands cms and smime can encrypt files in FIPS mode
Previously, the default configuration of the cms and smime OpenSSL commands used legacy
encryption algorithms, such as 3DES or PKCS #1 v1.5. These algorithms are disabled in FIPS mode. As a
result, encrypting files by using the smime command with the default settings did not work on systems
in FIPS mode. This update introduces the following changes:
In FIPS mode, OpenSSL APIs create CMS data by using OAEP with RSA keys by default.
111
Red Hat Enterprise Linux 9.3 9.3 Release Notes
In FIPS mode, the cms OpenSSL command creates CMS files encrypted with aes-128-cbc and
OAEP when provided RSA keys.
The use of ECDSA keys is unaffected. In non-FIPS mode, OpenSSL APIs and the cms command
continue to use PKCS#1 v1.5 padding and 3DES encryption by default.
As a consequence, you can use the cms and smime OpenSSL commands in FIPS mode to encrypt files.
Bugzilla:2160797
Bugzilla:2170495[1]
Booting from an NFS filesystem now works with SELinux set to enforcing mode
Previously, when using NFS as the root filesystem, SELinux labels were not forwarded from the server,
causing boot failures when SELinux was set to enforcing mode.
With this fix, SELinux has been fixed to correctly flag NFS mounts created before the initial SELinux
policy load as supporting security labels. As a result, the NFS mount now forwards SELinux labels
between the server and the client and the boot can succeed with SELinux set to enforcing mode.
Bugzilla:2218207[1]
Previously, when you deployed rabbitmq server with IPv6 enabled, the inet_gethost command tried to
access the /proc/sys/net/ipv6/conf/all/disable_ipv6 file. Consequently, the system denied access to
/proc/sys/net/ipv6/conf/all/disable_ipv6. With this update, system can now read
/proc/sys/net/ipv6/conf/all/disable_ipv6, and rabbitmq now works with IPv6.
Bugzilla:2184999
Bugzilla:2162663
Users in the staff_r SELinux role can now run scap_workbench probes
Previously, the selinux-policy packages did not contain rules for users in the staff_r SELinux role
required to run the scap-workbench utility. Consequently, scap-workbench probes failed when run by
user in the staff_r SELinux role. With this update, the missing rules have been added to selinux-policy,
and SELinux users can now run scap_workbench probes.
Bugzilla:2112729
112
CHAPTER 8. BUG FIXES
With this update, the script was reverted to create_allowlist.sh. Now, you can combine the allowlist and
excludelist into the JSON runtime policy by using the keylime_create_policy script.
Jira:RHEL-11866[1]
Jira:RHELPLAN-157337 [1]
Jira:RHEL-395[1]
Jira:RHEL-392[1]
Jira:RHEL-393[1]
Keylime no longer fails measured boot attestation due to new events in QEMU VMs
An update of the edk2-ovmf package introduced a new type of events in the measured boot log for
virtual systems operated by QEMU. These events caused failures in Keylime measured boot attestation.
With this update, Keylime handles these events correctly.
113
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Jira:RHEL-947[1]
Jira:RHEL-1252[1]
Previously, the gpg-agent tool created MD5 fingerprints when adding keys to the ssh-agent program
even though FIPS mode disabled the MD5 digest. As a consequence, the ssh-add utility failed to add
the keys to the authentication agent.
With this release, gpg-agent no longer use MD5 checksums. As a result, gpg-agent now works as an
SSH authentication agent also on systems running in FIPS mode.
Bugzilla:2073567
Previously, the tangd-keygen script did not change file permissions for generated key files.
Consequently, on systems with a default user file-creation mode mask (umask) that prevents reading
keys to other users, the tang-show-keys command returned the error message Internal Error 500
instead of displaying the keys. With this update, tangd-keygen sets file permissions for generated key
files, and therefore the script now works correctly on systems with non-default umask.
Bugzilla:2188743
fapolicyd service no longer runs programs that are removed from the trusted database
Previously, the fapolicyd service incorrectly handled a program as trusted even after it was removed
from the trusted database. As a result, entering the fapolicyd-cli --update command had no effect, and
the program could be executed even after being removed. With this update, the fapolicyd-cli --update
command correctly updates the trusted programs database, and removed programs can no longer be
executed.
Jira:RHEL-622
fapolicyd no longer causes the system to hang after mount and umount
Previously, when the mount or umount actions were run twice followed by the fapolicyd-cli --update
command, the fapolicyd service might enter an endless loop. As a result, the system stopped
responding. With this update, the service runs the fapolicyd-cli --update command correctly, and the
service handles any number of mount or umount actions.
Jira:RHEL-817
114
CHAPTER 8. BUG FIXES
Jira:RHEL-396[1]
Jira:RHELPLAN-160541[1]
Previously, the io_uring kernel interface missed the map permission in the SELinux policy.
Consequently, the mmap system call failed and the io_uring interface did not work properly. With this
update, the map permissions have been allowed in SELinux policy and the interface now works without
SELinux denials.
Bugzilla:2187745
Previously, installing RHEL Network Servers with a CIS security profile (cis, cis_server_l1,
cis_workstation_l1, or cis_workstation_l2) was not possible with the Network Servers package group
selected. This problem is fixed by excluding the tftp package in oscap-anaconda-addon-2.0.0-17.el9
provided with RHEL 9.3. As a consequence, you can install CIS-hardened RHEL Network Servers with
the Network Servers package group.
Bugzilla:2172264
accounts_umask_interactive_users
accounts_user_dot_group_ownership
accounts_user_dot_user_ownership
accounts_user_interactive_home_directory_exists
accounts_users_home_files_groupownership
accounts_users_home_files_ownership
accounts_users_home_files_permissions
file_groupownership_home_directories
file_ownership_home_directories
file_permissions_home_directories
These rules correctly check the configuration of local users. Previously, the scanner also incorrectly
checked the configuration of remote users provided by network sources such as NSS even though the
remediation scripts could not change remote users’ configuration. This was because the OpenSCAP
115
Red Hat Enterprise Linux 9.3 9.3 Release Notes
scanner previously used the getpwent() system call. This update changes the internal implementation of
these rules to depend only on the data from the /etc/passwd file. As a result, the rules now apply only to
the local users’ configuration.
Bugzilla:2203791
accounts_password_set_max_life_existing
accounts_password_set_min_life_existing
accounts_password_set_warn_age_existing
accounts_set_post_pw_existing
These rules correctly check the configuration of local users. Previously, the scanner also incorrectly
checked the configuration of remote users provided by network sources such as NSS even though the
remediation scripts could not change remote users’ configuration. This was because the OpenSCAP
scanner previously used the getpwent() system call.
This update changes the internal implementation of these rules to depend only on the data from the
/etc/shadow file. As a result, the rules now apply only to the local users’ configuration.
Bugzilla:2213958
Consequently, the links in SCAP source data streams provided by the scap-security-guide package
have been updated to link to the new version of the Red Hat CVE feeds.
Bugzilla:2223178
Bugzilla:2193169
116
CHAPTER 8. BUG FIXES
Bugzilla:2229722
Starting with RHEL 9.1, subscription-manager displays progress information while processing any
operation. Previously, for some languages, typically non-Latin, progress messages did not clean up after
the operation finished. With this update, all the messages are cleaned up properly when the operation
finishes.
If you have disabled the progress messages before, you can re-enable them by entering the following
command:
Bugzilla:2136694[1]
Bugzilla:2203100
The dnf-automatic command now correctly reports the exit status of transactions
Previously, the dnf-automatic command returned a successful exit code of a transaction even if some
actions during this transaction were not successfully completed. This could cause a security risk on
machines that use dnf-automatic for automatic deployment of errata. With this update, the issue has
been fixed and dnf-automatic now reports every problem with packages during the transaction.
Bugzilla:2212262
Installing packages with IMA signatures on file systems without extended file attributes no
longer fails
Previously, RPM tried to apply IMA signatures to files even if they did not support these signatures. As a
consequence, package installation failed. With this update, RPM skips applying IMA signatures. As a
result, package installation no longer fails.
Bugzilla:2157836
117
Red Hat Enterprise Linux 9.3 9.3 Release Notes
configuration produces a high amount of log messages depending on the number of mounted file
systems. If you used ReaR to recover systems with many mounted file systems, numerous log messages
would fill the /dev/log socket, and the recovery process froze.
With this fix, the systemd units in the rescue system now include the sockets target in the boot
procedure to start the logging socket at boot. As a result, the rsyslog service starts in the rescue
environment when required, and the processes that need to log messages during recovery are no longer
stuck. The recovery process completes successfully and you can find the log messages in the
/var/log/messages file in the rescue RAM disk.
Bugzilla:2172912
Bugzilla:2181974
With this fix, the OUTPUT=USB ReaR output method now uses the boot loader that you specify in the
SECURE_BOOT_BOOTLOADER setting when creating the rescue disk. To use the signed UEFI shim
boot loader, change the following setting in the /etc/rear/local.conf file:
SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi
As a result, the rescue disk is bootable when UEFI Secure Boot is enabled. It is safe to set the variable to
this value on all systems with UEFI, even when Secure Boot is not enabled. It is even recommended for
consistency. For details about the UEFI boot procedure and the shim boot loader, see UEFI: what
happens when booting the system.
Bugzilla:2196445
Previously, when you used ReaR to recover the systems to disks with hardware IDs different from those
the original system used, the recovered system did not find all LVM volumes and failed to boot. With this
fix, if ReaR finds the system.devices file, ReaR moves this file to
/etc/lvm/devices/system.devices.rearbak at the end of recovery. As a result, the recovered system
does not use the LVM devices file to restrict device visibility and the system finds the restored volumes
at boot.
Optional: If you want to restore the default behavior and regenerate the LVM devices file, use the
vgimportdevices -a command after booting the recovered system and connecting all disk devices
needed for a normal operation, in case you disconnected any disks before the recovery process.
118
CHAPTER 8. BUG FIXES
Bugzilla:2145014
8.6. NETWORKING
Intel Corporation I350 Gigabit Fiber Network Connection now provides a link after kernel
update
Previously, hardware configurations with Small Formfactor Pluggable (SFP) transceiver modules
without External Thermal Sensor (ETS) caused the igb driver to erroneously initialize the Inter-
Integrated Circuit (I2C) to read ETS. As a consequence, connections did not obtain links. With this bug
fix, the igb driver only initializes I2C when SFP with ETS is available. As a result, connections obtain links.
Bugzilla:2173594[1]
Bugzilla:2151040
8.7. KERNEL
RHEL previously failed to recognize NVMe disks when VMD was enabled
When you reset or reattached a driver, the Volume Management Device (VMD) domain previously did
not soft-reset. Consequently, the hardware could not properly detect and enumerate its devices. With
this update, the operating system with VMD enabled now correctly recognizes NVMe disks, especially
when resetting a server or working with a VM machine.
Bugzilla:2128610[1]
119
Red Hat Enterprise Linux 9.3 9.3 Release Notes
For more information, see the Changing the default kernel in Red Hat Enterprise Linux 8 & 9 solution.
Bugzilla:2184069[1]
With this fix, the lpfc driver now ensures a valid state when the D_ID port swap occurs. As a result, a fiber
channel D_ID port swap does not cause hung I/O.
Bugzilla:2173947[1]
Previously, when the multipathd daemon started and it recognized a registration key for the persistent
reservations on one path of an existing multipath device, not all paths of that device had the registration
key. As a consequence, if new paths appeared to a multipath device with persistent reservations while
multipathd was stopped, persistent reservations were not set up on those. This allowed IO processing
on the paths, even if they were supposed to be forbidden by the reservation key.
With this fix, if multipathd finds a persistent reservation registration key on any device path, it adds the
key to all active paths. As a result, multipath devices now have persistent reservations set up correctly
on all the paths, even if path devices first appear while multipathd is not running.
Bugzilla:2164869
With the fix in the udisks2-2.9.4-9.el9 firmware authentication, this issue is now resolved and LUNs are
visible during the installation and initial boot.
Bugzilla:2213769[1]
System boots correctly when adding a NVMe-FC device as a mount point in /etc/fstab
Previously, due to a known issue in the nvme-cli nvmf-autoconnect systemd services, systems failed
to boot while adding the Non-volatile Memory Express over Fibre Channel (NVMe-FC) devices as a
mount point in the /etc/fstab file. Consequently, the system entered into an emergency mode. With this
update, a system boots without any issue when mounting an NVMe-FC device.
Jira:RHEL-8171[1]
120
CHAPTER 8. BUG FIXES
The pcs config checkpoint diff command now works correctly for all configuration sections
As of the RHEL 9.0 release, the pcs config checkpoint diff command had stopped showing the
differences for the following configuration sections: Fencing Levels, Ordering Constraints, Colocation
Constraints, Ticket Constraints, Resources Defaults, and Operations Defaults. As of the RHEL 9.1
release, the pcs config checkpoint diff command had stopped showing the differences for the
Resources and Stonith devices configuration sections. This is because as the code responsible for
displaying each of the different configuration sections switched to a new mechanism for loading CIB
files, the loaded content was cached. The second file used for the difference comparison was not loaded
and the cached content of the first file was used instead. As a result, the diff command yielded no
output. With this fix, the CIB file content is no longer cached and the pcs config checkpoint diff
command shows differences for all configuration sections.
Bugzilla:2175881
pcsd Web UI now displays cluster status when fence levels are configured
Previously, the pcsd Web UI did not display cluster status when fence levels were configured. With this
fix, you can now view the cluster status and change the cluster settings with the Web UI when fence
levels are configured.
Bugzilla:2182810
A fence watchdog configured as a second fencing device now fences a node when the first
device times out
Previously, when a watchdog fencing device was configured as the second device in a fencing topology,
the watchdog timeout would not be considered when calculating the timeout for the fencing operation.
As a result, if the first device timed out the fencing operation would time out even though the watchdog
would fence the node. With this fix, the watchdog timeout is included in the fencing operation timeout
and the fencing operation succeeds if the first device times out.
Bugzilla:2182482
Location constraints with rules no longer displayed when listing is grouped by nodes
Location constraints with rules cannot have a node assigned. Previously, when you grouped the listing by
nodes, location constraints with rules were displayed under an empty node. With this fix, the location
constraints with rules are no longer displayed and a warning is given indicating that constraints with rules
are not displayed.
Bugzilla:1423473
Due to changes in the Pacemaker CIB file, the pcs stonith update-scsi-devices command stopped
working as designed, causing an unwanted restart of some cluster resources. With this fix, this command
works correctly and updates SCSI devices without requiring a restart of other cluster resources running
on the same node.
Bugzilla:2177996
Memory footprint of pcsd-ruby daemon now reduced when pscd Web UI is open
Previously, when the pcsd Web UI was open, memory usage of the pcsd-ruby daemon increased
steadily over the course of several hours. With this fix, the web server that runs in the pcsd-ruby
daemon now periodically performs a graceful restart. This frees the allocated memory and reduces the
memory footprint.
121
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:1860626[1]
The azure-events-az resource agent no longer produces an error with Pacemaker 2.1 and
later
The azure-events-az resource agent executes the crm_simulate -Ls command and parses the output.
With Pacemaker 2.1 and later, the output of the crm_simulate command no longer contains the text
Transition Summary:, which resulted in an error. With this fix, the agent no longer yields an error when
this text is missing.
Bugzilla:2182415
The mysql resource agent now works correctly with promotable clone resources
Previously, the mysql resource agent moved cloned resources that were operating in a Promoted role
between nodes, due to promotion scores changing between promoted and non-promoted values. With
this fix, a node in a Promoted role remains in a Promoted role.
Bugzilla:2179003 [1]
Bugzilla:2187327
With this update, the glibc system() function now restores the previous signal mask unconditionally,
even when parallel system() function calls are running. As a result, the SIGCHLD signal is no longer
incorrectly blocked if the glibc system() function is called concurrently from multiple threads.
Bugzilla:2177235
Previously, when you used the -C argument in eu-addr2line command from elfutils, the following single
character argument disappeared. Consequently, the eu-addr2line -Ci command behaved the same way
as eu-addr2line -C while eu-addr2line -iC worked as expected. This bug has been fixed, and eu-
addr2line -Ci now recognizes both arguments.
Bugzilla:2182059
eu-addr2line -i now correctly handles code compiled with GCC link-time optimization
Previously, the dwarf_getscopes function from the libdw library included in elfutils was unable to find
an abstract origin definition of a function that was compiled with GCC link-time optimization.
Consequently, when you used the -i argument in the eu-addr2line command, eu-addr2line was unable
to show inline functions for code compiled with gcc -flto. With this update, the libdw dwarf_getscopes
function looks in the correct compile unit for the inlined scope, and eu-addr2line -i works as expected.
122
CHAPTER 8. BUG FIXES
Bugzilla:2236182
The bug has been fixed and programs using papi no longer stop when shutting down.
Bugzilla:2215582
Bugzilla:2186647
Bugzilla:1974242
Bugzilla:1759941
Bugzilla:2053204
123
Red Hat Enterprise Linux 9.3 9.3 Release Notes
stores the data about the entry RDN and its parents in a temporary database that the worker thread
uses to build the entryrdn index. As a result, worker threads synchronization is no longer needed and the
average import rate is better.
Note that the LMDB import still has an import rate three times slower than the BDB import because
LMDB does not support concurrent write transactions.
Bugzilla:2116948
Bugzilla:2179278
Bugzilla:2189717
Jira:SSSD-6107
SSSD now handles duplicate attributes in the user_attributes option when retrieving users
Previously, if sssd.conf contained duplicate attributes in the user_attributes option, SSSD did not
handle these duplicates correctly. As a consequence, users with those attributes could not be retrieved.
With this update, SSSD now handles duplicates correctly. As a result, users with duplicate attributes can
now be retrieved.
Jira:SSSD-6177
The dynamic Kerberos PAC ticket signature enforcement mechanism now fixes cross-
version incompatibility in IdM
Previously, if your Identity Management (IdM) deployment featured servers running on both RHEL 9
and RHEL 8, the incompatibility caused by the upstream implementation of the Privilege Attribute
Certificate (PAC) ticket signature support caused certain operations to fail. With this update, the
implementation of the dynamic ticket signature enforcement mechanism feature in RHEL 9 fixes this
cross-version incompatibility. For this feature to actually take effect, you must:
124
CHAPTER 8. BUG FIXES
The order of these two actions is important. When starting, the KDCs query the metadata of all the
other servers in the domain to check if they all support the PAC ticket signature. If this is not the case,
the signature will not be enforced.
For more information about the dynamic Kerberos PAC ticket signature enforcement mechanism,
including an example of a constrained delegation request, see this Knowledgebase article.
This update introduces a FIPS exception for PKINIT signature verification. When FIPS mode is enabled
in IdM, its restrictions are ignored. Only default mode restrictions are applied, allowing the use of the
SHA1 crypto module even when in FIPS mode. As a result, AD interoperability in FIPS mode works as
intended.
In the scenario of an IdM/AD trust, or using a RHEL 9.2 or later host as an AD client, you need to set the
crypto policy to FIPS:AD-SUPPORT:SHA1 to support PKINIT while in FIPS mode.
Bugzilla:2155607
Bugzilla:2229712
Previously, the ipa-kdb driver did not differentiate between the absence of a server host object and a
connection failure. Consequently, the krb5kdc server sometimes stopped unexpectedly because of a
NULL LDAP context produced by a connection issue with the LDAP server.
With this update, the ipa-kdb driver correctly identifies connection failures and differentiates between
them and the absence of a server host object. As a result, the krb5kdc server does not fail anymore.
Bugzilla:2227831
The IdM client installer no longer specifies the TLS CA configuration in the ldap.conf file
Previously, the IdM client installer specified the TLS CA configuration in the ldap.conf file. With this
update, OpenLDAP uses the default truststore and the IdM client installer does not set up the TLS CA
configuration in the ldap.conf file.
Bugzilla:2094673
IdM clients correctly retrieve information for trusted AD users when their names contain
mixed case characters
Previously, if you attempted a user lookup or authentication of a user, and that trusted Active Directory
125
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Previously, if you attempted a user lookup or authentication of a user, and that trusted Active Directory
(AD) user contained mixed case characters in their names and they were configured with overrides in
IdM, an error was returned preventing users from accessing IdM resources.
Jira:SSSD-6096
With this update, the web console correctly handles additions of Tang keys to root file systems. As a
result, the web console finishes all binding steps required for the automated unlocking of LUKS-
encrypted volumes using Network-Bound Disk Encryption (NBDE) in various scenarios.
Bugzilla:2203361
With this update, the problem has been fixed and the VNC console works correctly at most resolutions,
with the exception of ultra high resolutions, such as 3840x2160.
Note that a small offset between the recorded and displayed positions of the cursor might still be
present. However, this does not significantly impact the usability of the VNC console.
Bugzilla:2030836
With this update, the storage role now supports resizing mounted file systems that support online
resizing such as XFS and Ext4. As a result, the mounted file systems can now be resized without
unmounting them.
Bugzilla:2168692
Bugzilla:2211984
Bugzilla:2232241
Bugzilla:2232231
Failure to remove data from member disks before creation no longer persists
Previously, when creating RAID volumes, the system did not effectively eliminate existing data from
member disks before forming the RAID volume. With this update, RAID volumes remove any per-
existing data from member disks as needed.
Bugzilla:2224090
Running the firewall RHEL System Role in check mode with non-existent services no longer
fails
Previously, running the firewall role in check mode with non-existent services would fail. This fix
implements better compliance with Ansible best practices for check mode. As a result, non-existent
services being enabled or disabled no longer fails the role in check mode. Instead, a warning prompts you
to confirm that the service is defined in a previous playbook.
Bugzilla:2222428
The firewall RHEL System Role on RHEL 7 no longer attempts to install non-existent
Python packages
Previously, when the firewall role on RHEL 7 was called from another role, and that role was using
python3, the firewall role attempted to install the python3-firewall library for that version of Python.
However, that library is not available in RHEL 7. Consequently, the python3-firewall library was not
found, and you received the following error message:
With this update, the firewall role does not attempt to install the python-firewall or python3-firewall
127
Red Hat Enterprise Linux 9.3 9.3 Release Notes
With this update, the firewall role does not attempt to install the python-firewall or python3-firewall
library. As a result, the firewall role does not fail on RHEL 7 when python3 is installed on the managed
node.
Bugzilla:2216520
The kdump RHEL System Role has been updated to a newer version, which brings the following notable
enhancements:
After installing kexec-tools, the utility suite no longer generates the /etc/sysconfig/kdump file
because you do not need to manage this file anymore.
Bugzilla:2211187
Insights tags created by using the rhc role are now applied correctly
Previously, when you created Insights tags by using the rhc role, tags were not stored in the correct file.
Consequently, tags were not sent to Insights and as a result they were not applied to the systems in the
Insights inventory.
With this fix, tags are stored correctly and applied to the systems present in the Insights inventory.
Bugzilla:2209200
Previously, raid_chunk_size attribute was not allowed for RAID pools and volumes. With this update,
you can now configure the raid_chunk_size attribute for RAID pools and volumes without
encountering any restrictions.
Bugzilla:2193058
The certificate RHEL System Role now checks for the certificate key size when determining
whether to perform a new certificate request
Previously, the certificate RHEL System Role did not check the key size of a certificate when evaluating
whether to request a new certificate. As a consequence, the role sometimes did not issue new certificate
requests in cases where it should. With this update, certificate now checks the key_size parameter to
determine if a new certificate request should be performed.
Bugzilla:2186057
Note: Use the serial: 1 play serial keyword at play level to control the number of hosts executing at one
time.
128
CHAPTER 8. BUG FIXES
Jira:RHEL-1499[1]
Jira:RHEL-1397[1]
Enabling kdump for system role requires using the failure_action configuration parameter on
RHEL 9 and later versions
Previously, using the default option during kdump configuration was not successful and printed the
following warning in logs:
kdump: warning: option 'default' was renamed 'failure_action' and will be removed in the future.
please update /etc/kdump.conf to use option 'failure_action' instead.
Consequently, the role did not enable kdump successfully if default option was used. This update fixes
the problem and you can configure kernel dump parameters on multiple systems by using the
failure_action parameter. As a result, enabling kdump works successfully in the described scenario.
Jira:RHEL-906 [1]
The previous: replaced parameter of the firewall System Role now overrides the previous
configuration without deleting it
Previously, if you added the previous: replaced parameter to the variable list, the firewall System Role
removed all existing user-defined settings and reset firewalld to the default settings. This fix uses the
fallback configuration in firewalld, which was introduced in the EL7 release, to retain the previous
configuration. As a result, when you use the previous: replaced parameter in the variable list, the
firewall.conf configuration file is not deleted on reset, but the file and comments in the file are retained.
Jira:RHEL-1495[1]
The firewall RHEL System Role correctly reports changes when using previous: replaced in
check mode
Previously, the firewall role was not checking whether any files would be changed when using the
previous: replaced parameter in check mode. As a consequence, the role gave an error about undefined
variables. This fix adds new check variables to the check mode to assess whether any files would be
changed by the previous: replaced parameter. The check for the firewalld.conf file assesses the rpm
database to determine whether the file has been changed from the version shipped in the package. As a
result, the firewall role now correctly reports changes when using the previous: replaced parameter.
Jira:RHEL-898[1]
The firewall RHEL System Role correctly reports changes when assigning zones to Network
Manager interfaces
Previously, the Network Manager interface assignment reported changes when no changes were
present. With this fix, the try_set_zone_of_interface module in the file library/firewall_lib.py returns a
129
Red Hat Enterprise Linux 9.3 9.3 Release Notes
second value, which denotes whether the interface’s zone was changed. As a result, the module now
correctly reports changes when assigning zones to interfaces handled by Network Manager.
Jira:RHEL-885[1]
The rhc system role no longer fails on the registered systems when rhc_auth contains
activation keys
Previously, a failure occurred when you executed playbook files on the registered systems with the
activation key specified in the rhc_auth parameter. This issue has been resolved. It is now possible to
execute playbook files on the already registered systems, even when activation keys are provided in the
rhc_auth parameter.
Bugzilla:2186218
8.15. VIRTUALIZATION
The NVIDIA graphics device continues working after VM shutdown
Previously, in the RHEL kernel, device power transition delays were more closely aligned to those
required by the PCIe specification. As a consequence, some NVIDIA GPUs could become unresponsive
when used for device assignment after a shutdown of the attached VM. This update extends the device
power transition delay for NVIDIA audio device functions. As a result, NVIDIA GPUs continue to work
correctly in this scenario.
Bugzilla:2178956[1]
Failover virtio NICs are now correctly assigned an IP address on Windows virtual machines
Previously, when starting a Windows virtual machine (VM) with only a failover virtio NIC, the VM failed to
assign an IP address to the NIC. Consequently, the NIC was unable to set up a network connection. This
problem has been fixed and VM NICs now set up network connections as expected in the described
scenario.
Bugzilla:1969724
With this update, multipath correctly sets the devices with no serial as having no World Wide Identifier
(WWID) and ignores them. On installation, multipath only claims devices that multipathd uses to bind a
multipath device, and the installer shows the expected system disk to install RHEL in the VM.
Bugzilla:1926147 [1]
Broadcom network adapters now work correctly on Windows VMs after a live migration
Previously, network adapters from the Broadcom family of devices, such as Broadcom, Qlogic, or
Marvell, could not be hot-unplugged during live migration of Windows virtual machines (VMs). As a
consequence, the adapters worked incorrectly after the migration was complete. This problem affected
only adapters that were attached to Windows VMs using Single-root I/O virtualization (SR-IOV). With
this update, the underlying code has been fixed and the problem no longer occurs.
130
CHAPTER 8. BUG FIXES
Before this update, the nodedev-dumpxml utility did not list attributes correctly for mediated devices
that were created using the nodedev-create command. This has been fixed, and nodedev-dumpxml
now displays the attributes of the affected mediated devices properly.
Bugzilla:2143158
Previously, restarting the virtqemud or libvirtd services prevented virtiofs storage devices from being
attached to virtual machines (VMs) on your host. This bug has been fixed, and you can now attach
virtiofs devices in the described scenario as expected.
Bugzilla:2078693
With this update, the problem has been fixed and adding a Watchdog card to a running VM now works as
expected.
Bugzilla:2173584
The virtio-gpu device is currently not compatible with blob memory resources on IBM Z systems. As a
consequence, if you configure a virtual machine (VM) with virtio-gpu on an IBM Z host to use blob
resources, the VM does not have any graphical output.
Jira:RHEL-7135
131
Red Hat Enterprise Linux 9.3 9.3 Release Notes
For information on Red Hat scope of support for Technology Preview features, see Technology Preview
Features Support Scope.
Bugzilla:2107346
9.2. SECURITY
gnutls now uses kTLS as a Technology Preview
The updated gnutls packages can use kernel TLS (kTLS) for accelerating data transfer on encrypted
channels as a Technology Preview. To enable kTLS, add the tls.ko kernel module using the modprobe
command, and create a new configuration file /etc/crypto-policies/local.d/gnutls-ktls.txt for the
system-wide cryptographic policies with the following content:
[global]
ktls = true
Note that the current version does not support updating traffic keys through TLS KeyUpdate
messages, which impacts the security of AES-GCM ciphersuites. See the RFC 7841 - TLS 1.3 document
for more information.
Bugzilla:2108532[1]
Bugzilla:2047161[1]
132
CHAPTER 9. TECHNOLOGY PREVIEWS
Preview. The socket API maps one-to-one with the D-Bus API and provides an alternative
communication method for cases where D-Bus is not available. By using the socket API, you can control
the TuneD daemon to optimize the performance, and change the values of various tuning parameters.
The socket API is disabled by default, you can enable it in the tuned-main.conf file.
Bugzilla:2113900
9.5. NETWORKING
WireGuard VPN is available as a Technology Preview
WireGuard, which Red Hat provides as an unsupported Technology Preview, is a high-performance VPN
solution that runs in the Linux kernel. It uses modern cryptography and is easier to configure than other
VPN solutions. Additionally, the small code-basis of WireGuard reduces the surface for attacks and,
therefore, improves the security.
Bugzilla:1613522 [1]
Bugzilla:1570255[1]
Bugzilla:2020529
The PRP and HSR protocols are now available as a Technology Preview
This update adds the hsr kernel module that provides the following protocols:
The IEC 62439-3 standard defines these protocols, and you can use this feature to configure zero-loss
redundancy in Ethernet networks.
Bugzilla:2177256[1]
133
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Note that offloading the IPsec encapsulation process to a NIC also reduces the ability of the kernel to
monitor and filter such packets.
Bugzilla:2178699[1]
Intel IPC over Shared Memory (IOSM) - Intel XMM 7360 LTE Advanced
Bugzilla:2186375[1]
Bugzilla:2183538[1]
9.6. KERNEL
The kdump mechanism with a unified kernel image is available as a Technology Preview
The kdump mechanism with a kernel image contained in a unified kernel image (UKI) is available as a
Technology Preview. UKI is a single executable, combining the initramfs, vmlinuz,and the kernel
command line in a single file. The UKI key benefit being extending the cryptographic signature for
SecureBoot to all components at once.
For the feature to work, with the kernel command line contained in the UKI, set the crashkernel=
134
CHAPTER 9. TECHNOLOGY PREVIEWS
For the feature to work, with the kernel command line contained in the UKI, set the crashkernel=
parameter with an appropriate value. This reserves the required memory for kdump.
Note: Currently the kexec_file_load system call from the Linux kernel cannot load UKI. Therefore, only
the kernel image contained in the UKI is used when loading the crash kernel with the kexec_file_load
system call.
Bugzilla:2169720[1]
Modifying EPCM permissions of regular enclave pages that belong to an initialized enclave.
Bugzilla:1874182 [1]
The Intel data streaming accelerator driver for kernel is available as a Technology Preview
The Intel data streaming accelerator driver (IDXD) for the kernel is currently available as a Technology
Preview. It is an Intel CPU integrated accelerator and includes the shared work queue with process
address space ID (pasid) submission and shared virtual memory (SVM).
Bugzilla:2030412
Bugzilla:2023416[1]
Modifying EPCM permissions of regular enclave pages that belong to an initialized enclave.
135
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:1660337 [1]
The following kernel modules are available as Technology Preview for Marvell OCTEON TX2
Infrastructure Processor family:
Bugzilla:2040643 [1]
Bugzilla:1995338[1]
Bugzilla:2021672[1]
The nvme-stas package, which is a Central Discovery Controller (CDC) client for Linux, is now available
as a Technology Preview. It handles Asynchronous Event Notifications (AEN), Automated NVMe
subsystem connection controls, Error handling and reporting, and Automatic (zeroconf) and Manual
configuration.
This package consists of two daemons, Storage Appliance Finder (stafd) and Storage Appliance
Connector (stacd).
Bugzilla:1893841 [1]
For more information, see the dhchap-secret and dhchap-ctrl-secret option descriptions in the nvme-
136
CHAPTER 9. TECHNOLOGY PREVIEWS
For more information, see the dhchap-secret and dhchap-ctrl-secret option descriptions in the nvme-
connect(1) man page.
Bugzilla:2027304[1]
0
All processes can create io_uring instances as usual.
1
io_uring creation is disabled for unprivileged processes. The io_uring_setup fails with the -EPERM
error unless the calling process is privileged by the CAP_SYS_ADMIN capability. Existing io_uring
instances can still be used.
2
io_uring creation is disabled for all processes. The io_uring_setup always fails with -EPERM.
Existing io_uring instances can still be used. This is the default setting.
An updated version of the SELinux policy to enable the mmap system call on anonymous inodes is also
required to use this feature.
By using the io_uring command pass-through, an application can issue commands directly to the
underlying hardware, such as nvme. Use of io_uring command pass-through currently requires a custom
SELinux policy module. Create a custom SELinux policy module:
---cut here---
( allow unconfined_domain_type device_node ( io_uring ( cmd )))
( allow unconfined_domain_type file_type ( io_uring ( cmd )))
---cut here---
# semodule -i io_uring_cmd_passthrough.cil
Bugzilla:2068237[1]
RHEL 9 is distributed with the jmc-core and owasp-java-encoder packages as Technology Preview
features for the AMD and Intel 64-bit architectures.
jmc-core is a library providing core APIs for Java Development Kit (JDK) Mission Control, including
libraries for parsing and writing JDK Flight Recording files, and libraries for Java Virtual Machine (JVM)
discovery through Java Discovery Protocol (JDP).
137
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Note that since RHEL 9.2, jmc-core and owasp-java-encoder are available in the CodeReady Linux
Builder (CRB) repository, which you must explicitly enable. See How to enable and make use of content
within CodeReady Linux Builder for more information.
Bugzilla:1980981
Users who decide to secure their DNS zones with DNSSEC are advised to read and follow these
documents:
Note that IdM servers with integrated DNS use DNSSEC to validate DNS answers obtained from other
DNS servers. This might affect the availability of DNS zones that are not configured in accordance with
recommended naming practices.
Bugzilla:2084180
Previously, the IdM API was enhanced to enable multiple versions of API commands. These
enhancements could change the behavior of a command in an incompatible way. Users are now able to
continue using existing tools and scripts even if the IdM API changes. This enables:
Administrators to use previous or later versions of IdM on the server than on the managing
client.
Developers can use a specific version of an IdM call, even if the IdM version changes on the
server.
In all cases, the communication with the server is possible, regardless if one side uses, for example, a
newer version that introduces new options for a feature.
For details on using the API, see Using the Identity Management API to Communicate with the IdM
Server (TECHNOLOGY PREVIEW).
Bugzilla:2084166
138
CHAPTER 9. TECHNOLOGY PREVIEWS
Bugzilla:2065693
Bugzilla:2056482
Adding, modifying, and deleting references to external IdPs with ipa idp-* commands
Enabling IdP authentication for users with the ipa user-mod --user-auth-type=idp command
For additional information, see Using external identity providers to authenticate to IdM .
Bugzilla:2069202
In RHEL, the ACME service uses the Red Hat Certificate System (RHCS) PKI ACME responder. The
RHCS ACME subsystem is automatically deployed on every certificate authority (CA) server in the IdM
deployment, but it does not service requests until the administrator enables it. RHCS uses the
acmeIPAServerCert profile when issuing ACME certificates. The validity period of issued certificates is
90 days. Enabling or disabling the ACME service affects the entire IdM deployment.
IMPORTANT
It is recommended to enable ACME only in an IdM deployment where all servers are
running RHEL 8.4 or later. Earlier RHEL versions do not include the ACME service, which
can cause problems in mixed-version deployments. For example, a CA server without
ACME can cause client connections to fail, because it uses a different DNS Subject
Alternative Name (SAN).
WARNING
Currently, RHCS does not remove expired certificates. Because ACME certificates
expire after 90 days, the expired certificates can accumulate and this can affect
performance.
139
Red Hat Enterprise Linux 9.3 9.3 Release Notes
To enable ACME across the whole IdM deployment, use the ipa-acme-manage enable
command:
# ipa-acme-manage enable
The ipa-acme-manage command was successful
To disable ACME across the whole IdM deployment, use the ipa-acme-manage disable
command:
# ipa-acme-manage disable
The ipa-acme-manage command was successful
To check whether the ACME service is installed and if it is enabled or disabled, use the ipa-
acme-manage status command:
# ipa-acme-manage status
ACME is enabled
The ipa-acme-manage command was successful
Bugzilla:2084181 [1]
9.10. DESKTOP
GNOME for the 64-bit ARM architecture available as a Technology Preview
The GNOME desktop environment is available for the 64-bit ARM architecture as a Technology Preview.
You can now connect to the desktop session on a 64-bit ARM server using VNC. As a result, you can
manage the server using graphical applications.
Using Firefox, you can connect to the Cockpit service on the server.
Certain applications, such as LibreOffice, only provide a command-line interface, and their graphical
interface is disabled.
Jira:RHELPLAN-27394[1]
You can now connect to the desktop session on an IBM Z server using VNC. As a result, you can manage
the server using graphical applications.
140
CHAPTER 9. TECHNOLOGY PREVIEWS
Using Firefox, you can connect to the Cockpit service on the server.
Certain applications, such as LibreOffice, only provide a command-line interface, and their graphical
interface is disabled.
Jira:RHELPLAN-27737[1]
9.11. VIRTUALIZATION
Creating nested virtual machines
Nested KVM virtualization is provided as a Technology Preview for KVM virtual machines (VMs) running
on Intel, AMD64, and IBM Z hosts with RHEL 9. With this feature, a RHEL 7, RHEL 8, or RHEL 9 VM that
runs on a physical RHEL 9 host can act as a hypervisor, and host its own VMs.
Jira:RHELDOCS-17040[1]
In addition, the enhanced Encrypted State version of SEV (SEV-ES) is also provided as Technology
Preview. SEV-ES encrypts all CPU register contents when a VM stops running. This prevents the host
from modifying the VM’s CPU registers or reading any information from them.
Note that SEV and SEV-ES work only on the 2nd generation of AMD EPYC CPUs (codenamed Rome)
or later. Also note that RHEL 9 includes SEV and SEV-ES encryption, but not the SEV and SEV-ES
security attestation.
Jira:RHELPLAN-65217 [1]
Jira:RHELPLAN-103993[1]
As a Technology Preview, RHEL 9 introduces the virtio-mem feature on AMD64, Intel 64, and ARM 64
systems. Using virtio-mem makes it possible to dynamically add or remove host memory in virtual
machines (VMs).
To use virtio-mem, define virtio-mem memory devices in the XML configuration of a VM and use the
virsh update-memory-device command to request memory device size changes while the VM is
running. To see the current memory size exposed by such memory devices to a running VM, view the
141
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Note, however, that virtio-mem currently does not work on VMs that use a Windows operating system.
Bugzilla:1955275[1]
UKIs can be used in virtualized and cloud environments, especially in confidential VMs where strong
SecureBoot capabilities are required. The UKI is available as a kernel-uki-virt package in RHEL 9
repositories.
Currently, the RHEL UKI can only be used in a UEFI boot configuration.
Bugzilla:2142102[1]
Note that this feature is deprecated and was removed entirely with the RHEL 9.3 release.
Jira:RHELDOCS-17050 [1]
Currently, the RHEL UKI can only be used in a UEFI boot configuration.
Jira:RHELPLAN-139800[1]
9.13. CONTAINERS
SQLite database backend for Podman is available as a Technology Preview
142
CHAPTER 9. TECHNOLOGY PREVIEWS
Beginning with Podman v4.6, the SQLite database backend for Podman is available as a Technology
Preview. To set the database backend to SQLite, add the database_backend = "sqlite" option in the
/etc/containers/containers.conf configuration file. Run the podman system reset command to reset
storage back to the initial state before you switch to the SQLite database backend. Note that you have
to re-create all containers and pods. The SQLite database guarantees good stability and consistency.
Other databases in the containers stack will be moved to SQLite as well. The BoltDB remains the default
database backend.
Jira:RHELPLAN-154429[1]
Jira:RHELDOCS-16861 [1]
143
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Deprecated functionality will likely not be supported in future major releases of this product and is not
recommended for new deployments. For the most recent list of deprecated functionality within a
particular major release, refer to the latest version of release documentation.
Deprecated devices are fully supported, that means that they are tested and maintained, and their
support status remains unchanged within Red Hat Enterprise Linux 9. For information about the length
of support, see Red Hat Enterprise Linux Life Cycle and Red Hat Enterprise Linux Application Streams
Life Cycle.
Deprecated hardware components are not recommended for new deployments on the current or future
major releases. Red Hat recommends replacing this hardware as soon as reasonably feasible.
A package can be deprecated and not recommended for further use. Under certain circumstances, a
package can be removed from a product. Product documentation then identifies more recent packages
that offer functionality similar, identical, or more advanced to the one deprecated, and provides further
recommendations.
For information regarding functionality that is present in RHEL 8 but has been removed in RHEL 9, see
Considerations in adopting RHEL 9 .
timezone --ntpservers
timezone --nontp
logging --level
%packages --excludeWeakdeps
%packages --instLangs
%anaconda
pwpolicy
Note that where only specific options are listed, the base command and its other options are still
available and not deprecated. Using the deprecated commands in Kickstart files prints a warning in the
logs. You can turn the deprecated command warnings into errors with the inst.ksstrict boot option.
Bugzilla:1899167[1]
User and Group customizations in the edge-commit and edge-container blueprints have been
deprecated
Specifying a user or group customization in the blueprints is deprecated for the edge-commit and
edge-container image types, because the user customization disappears when you upgrade the image
and do not specify the user in the blueprint again.
144
CHAPTER 10. DEPRECATED FUNCTIONALITY
Note that specifying a user or group customization in blueprints that are used to deploy an existing
OSTree commit, such as edge-raw-image, edge-installer, and edge-simplified-installer image types
remains supported.
Bugzilla:2173928
Jira:RHELDOCS-16393[1]
The provider_hostip and provider_fedora_geoip values of the inst.geoloc boot option are
deprecated
The provider_hostip and provider_fedora_geoip values that specified the GeoIP API for the
inst.geoloc= boot option are deprecated. As a replacement, you can use the
geolocation_provider=URL option to set the required geolocation in the installation program
configuration file. You can still use the inst.geoloc=0 option to disable the geolocation.
Bugzilla:2127473
10.2. SECURITY
SHA-1 is deprecated for cryptographic purposes
The usage of the SHA-1 message digest for cryptographic purposes has been deprecated in RHEL 9.
The digest produced by SHA-1 is not considered secure because of many documented successful
attacks based on finding hash collisions. The RHEL core crypto components no longer create signatures
using SHA-1 by default. Applications in RHEL 9 have been updated to avoid using SHA-1 in security-
relevant use cases.
Among the exceptions, the HMAC-SHA1 message authentication code and the Universal Unique
Identifier (UUID) values can still be created using SHA-1 because these use cases do not currently pose
security risks. SHA-1 also can be used in limited cases connected with important interoperability and
compatibility concerns, such as Kerberos and WPA-2. See the List of RHEL applications using
cryptography that is not compliant with FIPS 140-3 section in the RHEL 9 Security hardening document
for more details.
If your scenario requires the use of SHA-1 for verifying existing or third-party cryptographic signatures,
you can enable it by entering the following command:
Alternatively, you can switch the system-wide crypto policies to the LEGACY policy. Note that LEGACY
also enables many other algorithms that are not secure.
Jira:RHELPLAN-110763[1]
fapolicyd.rules is deprecated
The /etc/fapolicyd/rules.d/ directory for files containing allow and deny execution rules replaces the
/etc/fapolicyd/fapolicyd.rules file. The fagenrules script now merges all component rule files in this
directory to the /etc/fapolicyd/compiled.rules file. Rules in /etc/fapolicyd/fapolicyd.trust are still
145
Red Hat Enterprise Linux 9.3 9.3 Release Notes
processed by the fapolicyd framework but only for ensuring backward compatibility.
Bugzilla:2054740
In the scp utility, SCP is replaced by the SSH File Transfer Protocol (SFTP) by default.
Jira:RHELPLAN-99136[1]
Bugzilla:2168665
Jira:RHELDOCS-17380[1]
Bugzilla:1995600[1]
OpenSSL deprecates MD2, MD4, MDC2, Whirlpool, Blowfish, CAST, DES, IDEA, RC2, RC4,
RC5, SEED, and PBKDF1
The OpenSSL project has deprecated a set of cryptographic algorithms because they are insecure,
uncommonly used, or both. Red Hat also discourages the use of those algorithms, and RHEL 9 provides
them for migrating encrypted data to use new algorithms. Users must not depend on those algorithms
for the security of their systems.
The implementations of the following algorithms have been moved to the legacy provider in OpenSSL:
MD2, MD4, MDC2, Whirlpool, Blowfish, CAST, DES, IDEA, RC2, RC4, RC5, SEED, and PBKDF1.
See the /etc/pki/tls/openssl.cnf configuration file for instructions on how to load the legacy provider
and enable support for the deprecated algorithms.
Bugzilla:1975836
Support for indicating FIPS mode through the /etc/system-fips file has been removed, and the file will
146
CHAPTER 10. DEPRECATED FUNCTIONALITY
Support for indicating FIPS mode through the /etc/system-fips file has been removed, and the file will
not be included in future versions of RHEL. To install RHEL in FIPS mode, add the fips=1 parameter to
the kernel command line during the system installation. You can check whether RHEL operates in FIPS
mode by using the fips-mode-setup --check command.
Jira:RHELPLAN-103232[1]
The libcrypt.so.1 library is now deprecated, and it might be removed in a future version of RHEL.
Bugzilla:2034569
You can continue registering your system using other authorization methods, such as including paired
options --username / --password and --org / --activationkey of the subscription-manager register
command.
Bugzilla:2163716
In RHEL 9, Red Hat recommends using the tar, dd, or bacula, backup utility, based on type of usage,
which provides full and safe backups on ext2, ext3, and ext4 file systems.
Note that the restore utility from the dump package remains available and supported in RHEL 9 and is
available as the restore package.
Bugzilla:1997366[1]
Jira:RHEL-6856
147
Red Hat Enterprise Linux 9.3 9.3 Release Notes
10.5. NETWORKING
Network teams are deprecated in RHEL 9
The teamd service and the libteam library are deprecated in Red Hat Enterprise Linux 9 and will be
removed in the next major release. As a replacement, configure a bond instead of a network team.
Red Hat focuses its efforts on kernel-based bonding to avoid maintaining two features, bonds and
teams, that have similar functions. The bonding code has a high customer adoption, is robust, and has an
active community development. As a result, the bonding code receives enhancements and updates.
For details about how to migrate a team to a bond, see Migrating a network team configuration to
network bond.
Bugzilla:1935544[1]
Bugzilla:1894877[1]
Bugzilla:2089200
Jira:RHEL-1015[1]
10.6. KERNEL
ATM encapsulation is deprecated in RHEL 9
Asynchronous Transfer Mode (ATM) encapsulation enables Layer-2 (Point-to-Point Protocol, Ethernet)
or Layer-3 (IP) connectivity for the ATM Adaptation Layer 5 (AAL-5). Red Hat has not been providing
support for ATM NIC drivers since RHEL 7. The support for ATM implementation is being dropped in
RHEL 9. These protocols are currently used only in chipsets, which support the ADSL technology and
are being phased out by manufacturers. Therefore, ATM encapsulation is deprecated in Red Hat
Enterprise Linux 9.
148
CHAPTER 10. DEPRECATED FUNCTIONALITY
For more information, see PPP Over AAL5, Multiprotocol Encapsulation over ATM Adaptation Layer 5 ,
and Classical IP and ARP over ATM .
Bugzilla:2058153
Bugzilla:2113873[1]
Red Hat focuses its efforts on kernel-based bonding to avoid maintaining two features, bonds and
teams, that have similar functions. The bonding code has a high customer adoption, is robust, and has an
active community development. As a result, the bonding code receives enhancements and updates.
For details about how to migrate a team to a bond, see Migrating a network team configuration to
network bond.
Bugzilla:2013884 [1]
Bugzilla:2038183
Persistent Memory Development Kit ( pmdk) and support library have been deprecated in
RHEL 9
pmdk is a collection of libraries and tools for System Administrators and Application Developers to
simplify managing and accessing persistent memory devices. pmdk and support library have been
deprecated in RHEL 9. This also includes the -debuginfo packages.
The following list of binary packages produced by pmdk, including the nvml source package have been
deprecated:
libpmem
libpmem-devel
libpmem-debug
libpmem2
149
Red Hat Enterprise Linux 9.3 9.3 Release Notes
libpmem2-devel
libpmem2-debug
libpmemblk
libpmemblk-devel
libpmemblk-debug
libpmemlog
libpmemlog-devel
libpmemlog-debug
libpmemobj
libpmemobj-devel
libpmemobj-debug
libpmempool
libpmempool-devel
libpmempool-debug
pmempool
daxio
pmreorder
pmdk-convert
libpmemobj++
libpmemobj++-devel
libpmemobj++-doc
Jira:RHELDOCS-16432[1]
RHEL 8 and RHEL 9 currently provide Berkeley DB (libdb) version 5.3.28, which is distributed under the
LGPLv2 license. The upstream Berkeley DB version 6 is available under the AGPLv3 license, which is
more restrictive.
The libdb package is deprecated as of RHEL 9 and might not be available in future major RHEL releases.
In addition, cryptographic algorithms have been removed from libdb in RHEL 9 and multiple libdb
dependencies have been removed from RHEL 9.
150
CHAPTER 10. DEPRECATED FUNCTIONALITY
Users of libdb are advised to migrate to a different key-value database. For more information, see the
Knowledgebase article Available replacements for the deprecated Berkeley DB (libdb) in RHEL .
Bugzilla:2111072
Some PKCS1 v1.5 modes are now deprecated in Go’s FIPS mode
Some PKCS1 v1.5 modes are not approved in FIPS-140-3 for encryption and are disabled. They will no
longer work in Go’s FIPS mode.
Bugzilla:2092016[1]
OpenDNSSec supports exporting Digital Signatures and authentication records using the SHA-1
algorithm. The use of the SHA-1 algorithm is no longer supported. With the RHEL 9 release, SHA-1 in
OpenDNSSec is deprecated and it might be removed in a future minor release. Additionally,
OpenDNSSec support is limited to its integration with Red Hat Identity Management. OpenDNSSec is
not supported standalone.
Bugzilla:1979521
To retrieve user and group information from local files with SSSD:
a. Explicitly configure a local domain with the id_provider=files option in the sssd.conf
configuration file.
[domain/local]
id_provider=files
...
[sssd]
enable_files_domain = true
151
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Jira:RHELPLAN-100639[1]
Jira:RHELPLAN-139805[1]
With this update, Directory Server uses only the nsslapd-rootdn parameter to map a system root entry
to a root DN entry. As a result, the nsslapd-ldapimaprootdn parameter is deprecated and the root DN
change does not break dsconf utility and access to the web console.
Bugzilla:2170494
Bugzilla:2098236
To improve the security, by default, SMB1 is disabled in the Samba server and client utilities.
Jira:RHELDOCS-16612[1]
10.11. DESKTOP
GTK 2 is now deprecated
The legacy GTK 2 toolkit and the following, related packages have been deprecated:
adwaita-gtk2-theme
gnome-common
gtk2
152
CHAPTER 10. DEPRECATED FUNCTIONALITY
gtk2-immodules
hexchat
Several other packages currently depend on GTK 2. These have been modified so that they no longer
depend on the deprecated packages in a future major RHEL release.
If you maintain an application that uses GTK 2, Red Hat recommends that you port the application to
GTK 4.
Jira:RHELPLAN-131882 [1]
LibreOffice is deprecated
The LibreOffice RPM packages are now deprecated and will be removed in a future major RHEL release.
LibreOffice continues to be fully supported through the entire life cycle of RHEL 7, 8, and 9.
As a replacement for the RPM packages, Red Hat recommends that you install LibreOffice from either
of the following sources provided by The Document Foundation:
Jira:RHELDOCS-16300 [1]
The following Motif packages have been deprecated, including their development and debugging
variants:
motif
openmotif
openmotif21
openmotif22
Red Hat recommends using the GTK toolkit as a replacement. GTK is more maintainable and provides
new features compared to Motif.
Jira:RHELPLAN-98983[1]
153
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The network teaming capabilities have been deprecated in RHEL 9. As a result, using the network RHEL
System Role on a RHEL 8 control node to configure a network team on RHEL 9 nodes, shows a warning
about the deprecation.
Bugzilla:1999770
10.14. VIRTUALIZATION
SecureBoot image verification using SHA1-based signatures is deprecated
Performing SecureBoot image verification using SHA1-based signatures on UEFI (PE/COFF)
executables has become deprecated. Instead, Red Hat recommends using signatures based on the
SHA2 algorithm, or later.
Bugzilla:1935497[1]
Also note that the current mechanism of creating VM snapshots has been deprecated, and Red Hat does
not recommend using VM snapshots in a production environment. However, a new VM snapshot
mechanism is under development and is planned to be fully implemented in a future minor release of
RHEL 9.
Jira:RHELDOCS-16948[1], Bugzilla:1621944
Bugzilla:1965079
Instead of qcow2-v2, Red Hat strongly recommends using qcow2-v3. To convert a qcow2-v2 image to a
later format version, use the qemu-img amend command.
Bugzilla:1951814
Jira:RHELPLAN-10304[1]
154
CHAPTER 10. DEPRECATED FUNCTIONALITY
The monolithic libvirt daemon, libvirtd, has been deprecated in RHEL 9, and will be removed in a future
major release of RHEL. Note that you can still use libvirtd for managing virtualization on your
hypervisor, but Red Hat recommends switching to the newly introduced modular libvirt daemons. For
instructions and details, see the RHEL 9 Configuring and Managing Virtualization document.
Jira:RHELPLAN-113995[1]
For Intel: models before Intel Xeon 55xx and 75xx Processor families (also known as Nehalem)
To check whether your VM is using a deprecated CPU model, use the virsh dominfo utility, and look for
a line similar to the following in the Messages section:
Bugzilla:2060839
Jira:RHELPLAN-153267[1]
Since RHEL 9.3, the Intel vGPU feature has been removed entirely.
Bugzilla:2206599[1]
10.15. CONTAINERS
Running RHEL 9 containers on a RHEL 7 host is not supported
Running RHEL 9 containers on a RHEL 7 host is not supported. It might work, but it is not guaranteed.
For more information, see Red Hat Enterprise Linux Container Compatibility Matrix .
Jira:RHELPLAN-100087[1]
155
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2069279[1]
Bugzilla:2106816
For more information, see Switching the network stack from CNI to Netavark .
Jira:RHELDOCS-16756[1]
Jira:RHELDOCS-17102 [1]
For changes to packages between RHEL 8 and RHEL 9, see Changes to packages in the Considerations
in adopting RHEL 9 document.
IMPORTANT
The support status of deprecated packages remains unchanged within RHEL 9. For more
information about the length of support, see Red Hat Enterprise Linux Life Cycle and
Red Hat Enterprise Linux Application Streams Life Cycle .
156
CHAPTER 10. DEPRECATED FUNCTIONALITY
adwaita-gtk2-theme
autocorr-af
autocorr-bg
autocorr-ca
autocorr-cs
autocorr-da
autocorr-de
autocorr-dsb
autocorr-el
autocorr-en
autocorr-es
autocorr-fa
autocorr-fi
autocorr-fr
autocorr-ga
autocorr-hr
autocorr-hsb
autocorr-hu
autocorr-is
autocorr-it
autocorr-ja
autocorr-ko
autocorr-lb
autocorr-lt
autocorr-mn
autocorr-nl
autocorr-pl
autocorr-pt
autocorr-ro
157
Red Hat Enterprise Linux 9.3 9.3 Release Notes
autocorr-ru
autocorr-sk
autocorr-sl
autocorr-sr
autocorr-sv
autocorr-tr
autocorr-vi
autocorr-vro
autocorr-zh
cheese
cheese-libs
clutter
clutter-gst3
clutter-gtk
cogl
daxio
dbus-glib
dbus-glib-devel
enchant
enchant-devel
eog
evolution
evolution-bogofilter
evolution-devel
evolution-help
evolution-langpacks
evolution-mapi
evolution-mapi-langpacks
evolution-pst
158
CHAPTER 10. DEPRECATED FUNCTIONALITY
evolution-spamassassin
festival
festival-data
festvox-slt-arctic-hts
flite
flite-devel
gedit
gedit-plugin-bookmarks
gedit-plugin-bracketcompletion
gedit-plugin-codecomment
gedit-plugin-colorpicker
gedit-plugin-colorschemer
gedit-plugin-commander
gedit-plugin-drawspaces
gedit-plugin-findinfiles
gedit-plugin-joinlines
gedit-plugin-multiedit
gedit-plugin-sessionsaver
gedit-plugin-smartspaces
gedit-plugin-synctex
gedit-plugin-terminal
gedit-plugin-textsize
gedit-plugin-translate
gedit-plugin-wordcompletion
gedit-plugins
gedit-plugins-data
gnome-common
gnome-photos
gnome-photos-tests
159
Red Hat Enterprise Linux 9.3 9.3 Release Notes
gnome-screenshot
gnome-themes-extra
gtk2
gtk2-devel
gtk2-devel-docs
gtk2-immodule-xim
gtk2-immodules
highcontrast-icon-theme
inkscape
inkscape-docs
inkscape-view
iptables-devel
iptables-libs
iptables-nft
iptables-nft-services
iptables-utils
libdb
libgdata
libgdata-devel
libpmem
libpmem-debug
libpmem-devel
libpmem2
libpmem2-debug
libpmem2-devel
libpmemblk
libpmemblk-debug
libpmemblk-devel
libpmemlog
160
CHAPTER 10. DEPRECATED FUNCTIONALITY
libpmemlog-debug
libpmemlog-devel
libpmemobj
libpmemobj-debug
libpmemobj-devel
libpmempool
libpmempool-debug
libpmempool-devel
libreoffice
libreoffice-base
libreoffice-calc
libreoffice-core
libreoffice-data
libreoffice-draw
libreoffice-emailmerge
libreoffice-filters
libreoffice-gdb-debug-support
libreoffice-graphicfilter
libreoffice-gtk3
libreoffice-help-ar
libreoffice-help-bg
libreoffice-help-bn
libreoffice-help-ca
libreoffice-help-cs
libreoffice-help-da
libreoffice-help-de
libreoffice-help-dz
libreoffice-help-el
libreoffice-help-en
161
Red Hat Enterprise Linux 9.3 9.3 Release Notes
libreoffice-help-eo
libreoffice-help-es
libreoffice-help-et
libreoffice-help-eu
libreoffice-help-fi
libreoffice-help-fr
libreoffice-help-gl
libreoffice-help-gu
libreoffice-help-he
libreoffice-help-hi
libreoffice-help-hr
libreoffice-help-hu
libreoffice-help-id
libreoffice-help-it
libreoffice-help-ja
libreoffice-help-ko
libreoffice-help-lt
libreoffice-help-lv
libreoffice-help-nb
libreoffice-help-nl
libreoffice-help-nn
libreoffice-help-pl
libreoffice-help-pt-BR
libreoffice-help-pt-PT
libreoffice-help-ro
libreoffice-help-ru
libreoffice-help-si
libreoffice-help-sk
libreoffice-help-sl
162
CHAPTER 10. DEPRECATED FUNCTIONALITY
libreoffice-help-sv
libreoffice-help-ta
libreoffice-help-tr
libreoffice-help-uk
libreoffice-help-zh-Hans
libreoffice-help-zh-Hant
libreoffice-impress
libreoffice-langpack-af
libreoffice-langpack-ar
libreoffice-langpack-as
libreoffice-langpack-bg
libreoffice-langpack-bn
libreoffice-langpack-br
libreoffice-langpack-ca
libreoffice-langpack-cs
libreoffice-langpack-cy
libreoffice-langpack-da
libreoffice-langpack-de
libreoffice-langpack-dz
libreoffice-langpack-el
libreoffice-langpack-en
libreoffice-langpack-eo
libreoffice-langpack-es
libreoffice-langpack-et
libreoffice-langpack-eu
libreoffice-langpack-fa
libreoffice-langpack-fi
libreoffice-langpack-fr
libreoffice-langpack-fy
163
Red Hat Enterprise Linux 9.3 9.3 Release Notes
libreoffice-langpack-ga
libreoffice-langpack-gl
libreoffice-langpack-gu
libreoffice-langpack-he
libreoffice-langpack-hi
libreoffice-langpack-hr
libreoffice-langpack-hu
libreoffice-langpack-id
libreoffice-langpack-it
libreoffice-langpack-ja
libreoffice-langpack-kk
libreoffice-langpack-kn
libreoffice-langpack-ko
libreoffice-langpack-lt
libreoffice-langpack-lv
libreoffice-langpack-mai
libreoffice-langpack-ml
libreoffice-langpack-mr
libreoffice-langpack-nb
libreoffice-langpack-nl
libreoffice-langpack-nn
libreoffice-langpack-nr
libreoffice-langpack-nso
libreoffice-langpack-or
libreoffice-langpack-pa
libreoffice-langpack-pl
libreoffice-langpack-pt-BR
libreoffice-langpack-pt-PT
libreoffice-langpack-ro
164
CHAPTER 10. DEPRECATED FUNCTIONALITY
libreoffice-langpack-ru
libreoffice-langpack-si
libreoffice-langpack-sk
libreoffice-langpack-sl
libreoffice-langpack-sr
libreoffice-langpack-ss
libreoffice-langpack-st
libreoffice-langpack-sv
libreoffice-langpack-ta
libreoffice-langpack-te
libreoffice-langpack-th
libreoffice-langpack-tn
libreoffice-langpack-tr
libreoffice-langpack-ts
libreoffice-langpack-uk
libreoffice-langpack-ve
libreoffice-langpack-xh
libreoffice-langpack-zh-Hans
libreoffice-langpack-zh-Hant
libreoffice-langpack-zu
libreoffice-math
libreoffice-ogltrans
libreoffice-opensymbol-fonts
libreoffice-pdfimport
libreoffice-pyuno
libreoffice-sdk
libreoffice-sdk-doc
libreoffice-ure
libreoffice-ure-common
165
Red Hat Enterprise Linux 9.3 9.3 Release Notes
libreoffice-wiki-publisher
libreoffice-writer
libreoffice-x11
libreoffice-xsltfilter
libreofficekit
libsoup
libsoup-devel
libuser
libuser-devel
libwpe
libwpe-devel
mcpp
mod_auth_mellon
motif
motif-devel
pmdk-convert
pmempool
python3-pytz
qt5
qt5-assistant
qt5-designer
qt5-devel
qt5-doctools
qt5-linguist
qt5-qdbusviewer
qt5-qt3d
qt5-qt3d-devel
qt5-qt3d-doc
qt5-qt3d-examples
166
CHAPTER 10. DEPRECATED FUNCTIONALITY
qt5-qtbase
qt5-qtbase-common
qt5-qtbase-devel
qt5-qtbase-doc
qt5-qtbase-examples
qt5-qtbase-gui
qt5-qtbase-mysql
qt5-qtbase-odbc
qt5-qtbase-postgresql
qt5-qtbase-private-devel
qt5-qtbase-static
qt5-qtconnectivity
qt5-qtconnectivity-devel
qt5-qtconnectivity-doc
qt5-qtconnectivity-examples
qt5-qtdeclarative
qt5-qtdeclarative-devel
qt5-qtdeclarative-doc
qt5-qtdeclarative-examples
qt5-qtdeclarative-static
qt5-qtdoc
qt5-qtgraphicaleffects
qt5-qtgraphicaleffects-doc
qt5-qtimageformats
qt5-qtimageformats-doc
qt5-qtlocation
qt5-qtlocation-devel
qt5-qtlocation-doc
qt5-qtlocation-examples
167
Red Hat Enterprise Linux 9.3 9.3 Release Notes
qt5-qtmultimedia
qt5-qtmultimedia-devel
qt5-qtmultimedia-doc
qt5-qtmultimedia-examples
qt5-qtquickcontrols
qt5-qtquickcontrols-doc
qt5-qtquickcontrols-examples
qt5-qtquickcontrols2
qt5-qtquickcontrols2-devel
qt5-qtquickcontrols2-doc
qt5-qtquickcontrols2-examples
qt5-qtscript
qt5-qtscript-devel
qt5-qtscript-doc
qt5-qtscript-examples
qt5-qtsensors
qt5-qtsensors-devel
qt5-qtsensors-doc
qt5-qtsensors-examples
qt5-qtserialbus
qt5-qtserialbus-devel
qt5-qtserialbus-doc
qt5-qtserialbus-examples
qt5-qtserialport
qt5-qtserialport-devel
qt5-qtserialport-doc
qt5-qtserialport-examples
qt5-qtsvg
qt5-qtsvg-devel
168
CHAPTER 10. DEPRECATED FUNCTIONALITY
qt5-qtsvg-doc
qt5-qtsvg-examples
qt5-qttools
qt5-qttools-common
qt5-qttools-devel
qt5-qttools-doc
qt5-qttools-examples
qt5-qttools-libs-designer
qt5-qttools-libs-designercomponents
qt5-qttools-libs-help
qt5-qttools-static
qt5-qttranslations
qt5-qtwayland
qt5-qtwayland-devel
qt5-qtwayland-doc
qt5-qtwayland-examples
qt5-qtwebchannel
qt5-qtwebchannel-devel
qt5-qtwebchannel-doc
qt5-qtwebchannel-examples
qt5-qtwebsockets
qt5-qtwebsockets-devel
qt5-qtwebsockets-doc
qt5-qtwebsockets-examples
qt5-qtx11extras
qt5-qtx11extras-devel
qt5-qtx11extras-doc
qt5-qtxmlpatterns
qt5-qtxmlpatterns-devel
169
Red Hat Enterprise Linux 9.3 9.3 Release Notes
qt5-qtxmlpatterns-doc
qt5-qtxmlpatterns-examples
qt5-rpm-macros
qt5-srpm-macros
webkit2gtk3
webkit2gtk3-devel
webkit2gtk3-jsc
webkit2gtk3-jsc-devel
wpebackend-fdo
wpebackend-fdo-devel
xorg-x11-server-Xorg
170
CHAPTER 11. KNOWN ISSUES
To work around this problem, verify that the BaseOS and AppStream repositories are available to the
installation program or use the authselect Kickstart command during installation.
Bugzilla:1640697[1]
The reboot --kexec and inst.kexec commands do not provide a predictable system state
Performing a RHEL installation with the reboot --kexec Kickstart command or the inst.kexec kernel
boot parameters do not provide the same predictable system state as a full reboot. As a consequence,
switching to the installed system without rebooting can produce unpredictable results.
Note that the kexec feature is deprecated and will be removed in a future release of Red Hat Enterprise
Linux.
Bugzilla:1697896[1]
To work around this problem, do not run Anaconda on the production system. Instead, run Anaconda in a
temporary virtual machine to keep the SELinux policy unchanged on a production system. Running
anaconda as part of the system installation process such as installing from boot.iso or dvd.iso is not
affected by this issue.
Bugzilla:2050140
Local Media installation source is not detected when booting the installation from a USB
that is created using a third party tool
When booting the RHEL installation from a USB that is created using a third party tool, the installer fails
to detect the Local Media installation source (only Red Hat CDN is detected).
This issue occurs because the default boot option int.stage2= attempts to search for iso9660 image
format. However, a third party tool might create an ISO image with a different format.
When booting the installation, click the Tab key to edit the kernel command line, and change
the boot option inst.stage2= to inst.repo=.
171
Red Hat Enterprise Linux 9.3 9.3 Release Notes
When using a third party tool such as Rufus to create a bootable USB device, first regenerate
the RHEL ISO image on a Linux system, and then use the third party tool to create a bootable
USB device.
For more information on the steps involved in performing any of the specified workaround, see,
Installation media is not auto-detected during the installation of RHEL 8.3 .
Bugzilla:1877697[1]
To work around this problem, use the harddrive --partition=sdX --dir=/ command to install from USB
CD-ROM drive. As a result, the installation does not fail.
Jira:RHEL-4707
To workaround this problem, add the following script in the Kickstart file to format the disc before the
installation starts.
Note: Before performing the workaround, backup the data available on the disk. The wipefs command
formats all the existing data from the disk.
%pre
wipefs -a /dev/sda
%end
Jira:RHEL-4711
To work around this problem, ensure you configure an administrator user account or the root password
is set and the root account is unlocked. As a result, users can perform administrative tasks on the
installed system.
Bugzilla:2047713
New XFS features prevent booting of PowerNV IBM POWER systems with firmware older
than version 5.10
PowerNV IBM POWER systems use a Linux kernel for firmware, and use Petitboot as a replacement for
GRUB. This results in the firmware kernel mounting /boot and Petitboot reading the GRUB config and
booting RHEL.
172
CHAPTER 11. KNOWN ISSUES
The RHEL 9 kernel introduces bigtime=1 and inobtcount=1 features to the XFS filesystem, which
kernels with firmware older than version 5.10 do not understand.
To work around this problem, you can use another filesystem for /boot, for example ext4.
Bugzilla:1997832 [1]
RHEL for Edge installer image fails to create mount points when installing an rpm-ostree
payload
When deploying rpm-ostree payloads, used for example in a RHEL for Edge installer image, the installer
does not properly create some mount points for custom partitions. As a consequence, the installation is
aborted with the following error:
The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.
Use an automatic partitioning scheme and do not add any mount points manually.
Manually assign mount points only inside /var directory. For example, /var/my-mount-point),
and the following standard directories: /, /boot, /var.
Jira:RHEL-4741
NetworkManager fails to start after the installation when connected to a network but
without DHCP or a static IP address configured
Starting with RHEL 9.0, Anaconda activates network devices automatically when there is no specific ip=
or Kickstart network configuration set. Anaconda creates a default persistent configuration file for each
Ethernet device. The connection profile has the ONBOOT and autoconnect value set to true. As a
consequence, during the start of the installed system, RHEL activates the network devices, and the
networkManager-wait-online service fails.
Delete all connections using the nmcli utility except one connection you want to use. For
example:
Replace <connection_name> with the name of the connection you want to delete.
Disable the auto connect network feature in Anaconda if no specific ip= or Kickstart network
configuration is set.
173
Red Hat Enterprise Linux 9.3 9.3 Release Notes
c. Click Configure.
d. On the General tab, clear the Connect automatically with priority checkbox.
e. Click Save.
Bugzilla:2115783 [1]
Unable to load an updated driver from the driver update disc in the installation
environment
A new version of a driver from the driver update disc might not load if the same driver from the
installation initial RM disk has already been loaded. As a consequence, an updated version of the driver
cannot be applied to the installation environment.
As a workaround, use the modprobe.blacklist= kernel command line option together with the inst.dd
option. For example, to ensure that an updated version of the virtio_blk driver from a driver update disc
is loaded, use modprobe.blacklist=virtio_blk and then continue with the usual procedure to apply
drivers from the driver update disk. As a result, the system can load an updated version of the driver and
use it in the installation environment.
Jira:RHEL-4762
Configure the network, for example using the nmcli tool, as a part of the %pre script.
Use the installer boot options to configure the network for the %pre script.
As a result, it is possible to use the network for tasks in the %pre section and the Kickstart installation
process completes.
Bugzilla:2173992
Enabling the FIPS mode is not supported when building rpm-ostree images with RHEL image
builder
Currently, there is no support to enable the FIPS mode when building rpm-ostree images with RHEL
image builder.
Jira:RHEL-4655
Images built with the stig profile remediation fails to boot with FIPS error
FIPS mode is not supported by RHEL image builder. When using RHEL image builder customized with
the xccdf_org.ssgproject.content_profile_stig profile remediation, the system fails to boot with the
following error:
174
CHAPTER 11. KNOWN ISSUES
Enabling the FIPS policy manually after the system image installation with the fips-mode-setup --
enable command does not work, because the /boot directory is on a different partition. System boots
successfully if FIPS is disabled. Currently, there is no workaround available.
NOTE
You can manually enable FIPS after installing the image by using the fips-mode-setup --
enable command.
Jira:RHEL-4649
As a workaround, to see the expected results, ignore the absence of user inputs in the console and
press Enter when you finish adding inputs.
Jira:RHEL-4737
11.2. SECURITY
OpenSSL does not detect if a PKCS #11 token supports the creation of raw RSA or RSA-
PSS signatures
The TLS 1.3 protocol requires support for RSA-PSS signatures. If a PKCS #11 token does not support raw
RSA or RSA-PSS signatures, server applications that use the OpenSSL library fail to work with an RSA
key if the key is held by the PKCS #11 token. As a result, TLS communication fails in the described
scenario.
To work around this problem, configure servers and clients to use TLS version 1.2 as the highest TLS
protocol version available.
Bugzilla:1681178[1]
OpenSSL incorrectly handles PKCS #11 tokens that does not support raw RSA or RSA-PSS
signatures
The OpenSSL library does not detect key-related capabilities of PKCS #11 tokens. Consequently,
establishing a TLS connection fails when a signature is created with a token that does not support raw
RSA or RSA-PSS signatures.
To work around the problem, add the following lines after the .include line at the end of the
crypto_policy section in the /etc/pki/tls/openssl.cnf file:
SignatureAlgorithms =
RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2
175
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:1685470 [1]
To work around this problem, do not copy files to a destination that is the same as the source location
using this syntax.
Bugzilla:2056884
The OSCAP Anaconda add-on does not fetch tailored profiles in the graphical installation
The OSCAP Anaconda add-on does not provide an option to select or deselect tailoring of security
profiles in the RHEL graphical installation. Starting from RHEL 8.8, the add-on does not take tailoring
into account by default when installing from archives or RPM packages. Consequently, the installation
displays the following error message instead of fetching an OSCAP tailored profile:
To work around this problem, you must specify paths in the %addon org_fedora_oscap section of your
Kickstart file, for example:
xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml
As a result, you can use the graphical installation for OSCAP tailored profiles only with the
corresponding Kickstart specifications.
Jira:RHEL-1824
176
CHAPTER 11. KNOWN ISSUES
# cd /usr/share/scap-security-guide/ansible
3. Run the relevant Ansible playbook using environment variables that define the path to the
additional Ansible collections:
# ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-
playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-
playbook-cis_server_l1.yml
Replace cis_server_l1 with the ID of the profile against which you want to remediate the
system.
NOTE
Jira:RHEL-1800
Jira:RHELPLAN-157225[1]
Jira:RHEL-11867[1]
Jira:RHEL-1518[1]
177
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Jira:RHEL-520[1]
Default SELinux policy allows unconfined executables to make their stack executable
The default state of the selinuxuser_execstack boolean in the SELinux policy is on, which means that
unconfined executables can make their stack executable. Executables should not use this option, and it
might indicate poorly coded executables or a possible attack. However, due to compatibility with other
tools, packages, and third-party products, Red Hat cannot change the value of the boolean in the
default policy. If your scenario does not depend on such compatibility aspects, you can turn the boolean
off in your local policy by entering the command setsebool -P selinuxuser_execstack off.
Bugzilla:2064274
When applied to SSH servers, each of these rules configures an option (ClientAliveCountMax and
ClientAliveInterval) that no longer behaves as previously. As a consequence, OpenSSH no longer
disconnects idle SSH users when it reaches the timeout configured by these rules. As a workaround,
these rules have been temporarily removed from the DISA STIG for RHEL 9 and DISA STIG with GUI for
RHEL 9 profiles until a solution is developed.
Bugzilla:2038978
To work around this problem, do not use GnuPG options that involve SHA-1. As a result, you will prevent
GnuPG from lowering the default system security by using the insecure SHA-1 signatures.
Bugzilla:2070722
178
CHAPTER 11. KNOWN ISSUES
rpm_verify_hashes
rpm_verify_permissions
rpm_verify_ownership
file_permissions_unauthorized_world_writable
no_files_unowned_by_user
dir_perms_world_writable_system_owned
file_permissions_unauthorized_suid
file_permissions_unauthorized_sgid
file_permissions_ungroupowned
dir_perms_world_writable_sticky_bits
For more details and more workarounds, see the related Knowledgebase article.
Bugzilla:2161499
BZ#1834716
Jira:RHELDOCS-16574[1]
179
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2073510
Bugzilla:2056318
If you cannot use one of the recommended solutions, install the initscripts package.
Bugzilla:2018112 [1]
To manage services, use the systemctl commands or install the chkconfig package manually.
For more information about systemd, see Introduction to systemd. For instructions on how to use the
systemctl utility, see Managing system services with systemctl .
Bugzilla:2053598[1]
Setting the console keymap requires the libxkbcommon library on your minimal install
In RHEL 9, certain systemd library dependencies have been converted from dynamic linking to dynamic
loading, so that your system opens and uses the libraries at runtime when they are available. With this
change, a functionality that depends on such libraries is not available unless you install the necessary
library. This also affects setting the keyboard layout on systems with a minimal install. As a result, the
localectl --no-convert set-x11-keymap gb command fails.
Jira:RHEL-6105
The %vmeff metric from the sysstat package displays incorrect values
180
CHAPTER 11. KNOWN ISSUES
The sysstat package provides the %vmeff metric to measure the page reclaim efficiency. The values of
the %vmeff column returned by the sar -B command are incorrect because sysstat does not parse all
relevant /proc/vmstat values provided by later kernel versions. To work around this problem, you can
calculate the %vmeff value manually from the /proc/vmstat file. For details, see Why the sar(1) tool
reports %vmeff values beyond 100 % in RHEL 8 and RHEL 9?
Jira:RHEL-12009
To prevent external attackers from accessing the SLP service, disable SLP on all systems running on
untrusted networks, such as those directly connected to the internet. Alternatively, to work around this
problem, configure firewalls to block or filter traffic on UDP and TCP port 427.
Jira:RHEL-6995[1]
As a result, certain DNSSEC records signed with the SHA-1, RSA/SHA1, and RSASHA1-NSEC3-SHA1
digest algorithms fail to verify in Red Hat Enterprise Linux 9 and the affected domain names become
vulnerable.
To work around this problem, upgrade to a different signature algorithm, such as RSA/SHA-256 or
elliptic curve keys.
For more information and a list of top-level domains that are affected and vulnerable, see the DNSSEC
records signed with RSASHA1 fail to verify solution.
Bugzilla:2070495
named fails to start if the same writable zone file is used in multiple zones
BIND does not allow the same writable zone file in multiple zones. Consequently, if a configuration
includes multiple zones which share a path to a file that can be modified by the named service, named
fails to start. To work around this problem, use the in-view clause to share one zone between multiple
views and make sure to use different paths for different zones. For example, include the view names in
the path.
Note that writable zone files are typically used in zones with allowed dynamic updates, secondary zones,
or zones maintained by DNSSEC.
Bugzilla:1984982
181
Red Hat Enterprise Linux 9.3 9.3 Release Notes
The libotr library and toolkit for off-the-record (OTR) messaging provides end-to-end encryption for
instant messaging conversations. However, the libotr library does not conform to the Federal
Information Processing Standards (FIPS) due to its use of the gcry_pk_sign() and gcry_pk_verify()
functions. As a result, you cannot use the libotr library in FIPS mode.
Bugzilla:2086562
11.7. NETWORKING
Using the XDP multi buffer mode with the mlx5 driver and a MTU greater than 3498 bytes
requires disabling RX Striding RQ
Running an eXpress Data Path (XDP) script with multi buffer mode on a host that matches all of the
following conditions fails:
The Maximum Transmission Unit (MTU) value is greater than 3498 bytes.
The receive striding receive queue (RX Striding RQ) feature is enabled on the Mellanox
interface.
If all conditions apply, the script fails with a link set xdp fd failed error. To run the XDP script on a host
with a higher MTU, disable RX Striding RQ on the Mellanox interface:
As a result, you can use the XDP multi buffer mode on interfaces that use the mlx5 driver and have an
MTU value greater than 3498 bytes.
Jira:RHEL-6496[1]
Bugzilla:2000616[1]
Bugzilla:2013650[1]
182
CHAPTER 11. KNOWN ISSUES
Bugzilla:2082303
The mlx5 driver fails while using the Mellanox ConnectX-5 adapter
In Ethernet switch device driver model (switchdev) mode, the mlx5 driver fails when configured with
the device managed flow steering (DMFS) parameter and ConnectX-5 adapter supported hardware. As
a consequence, you can see the following error message:
To work around this problem, use the software managed flow steering (SMFS) parameter instead of
DMFS.
Jira:RHEL-9897[1]
Jira:RHEL-15404[1]
Cannot display features, because xdp-loader was compiled against an old version of libbpf without
support for querying features.
No workaround is available. As a result, you cannot use the xdp-loader features command to display
interface features.
Jira:RHEL-3382[1]
11.8. KERNEL
The kdump mechanism in kernel causes OOM errors on the 64K kernel
The 64K kernel page size on the 64-bit ARM architecture uses more memory than the 4KB kernel.
Consequently, kdump causes a kernel panic and memory allocation fails with out of memory (OOM)
errors. As a work around, manually configure the crashkernel value to 640 MB. For example, set the
crashkernel= parameter as crashkernel=2G- :640M.
As a result, the kdump mechanism does not fail on the 64K kernel in the described scenario.
Bugzilla:2160676 [1]
Customer applications with dependencies on kernel page size might need updating when
moving from 4k to 64k page size kernel
183
Red Hat Enterprise Linux 9.3 9.3 Release Notes
RHEL is compatible with both 4k and 64k page size kernels. Customer applications with dependencies
on a 4k kernel page size might require updating when moving from 4k to 64k page size kernels. Known
instances of this include jemalloc and dependent applications.
The jemalloc memory allocator library is sensitive to the page size used in the system’s runtime
environment. The library can be built to be compatible with 4k and 64k page size kernels, for example,
when configured with --with-lg-page=16 or env JEMALLOC_SYS_WITH_LG_PAGE=16 (for
jemallocator Rust crate). Consequently, a mismatch can occur between the page size of the runtime
environment and the page size that was present when compiling binaries that depend on jemalloc. As a
result, using a jemalloc-based application triggers the following error:
Use the appropriate build configuration or environment options to create 4k and 64k page size
compatible binaries.
Build any user space packages that use jemalloc after booting into the final 64k kernel and
runtime environment.
For example, you can build the fd-find tool, which also uses jemalloc, with the cargo Rust package
manager. In the final 64k environment, trigger a new build of all dependencies to resolve the mismatch in
the page size by entering the cargo command:
Bugzilla:2167783[1]
Upgrading to the latest real-time kernel with dnf does not install multiple kernel versions in
parallel
Installing the latest real-time kernel with the dnf package manager requires resolving package
dependencies to retain the new and current kernel versions simultaneously. By default, dnf removes the
older kernel-rt package during the upgrade.
As a workaround, add the current kernel-rt package to the installonlypkgs option in the /etc/yum.conf
configuration file, for example, installonlypkgs=kernel-rt.
The installonlypkgs option appends kernel-rt to the default list used by dnf. Packages listed in
installonlypkgs directive are not removed automatically and therefore support multiple kernel versions
to install simultaneously.
Note that having multiple kernels installed is a way to have a fallback option when working with a new
kernel version.
Bugzilla:2181571 [1]
The Delay Accounting functionality does not display the SWAPIN and IO% statistics columns
by default
The Delayed Accounting functionality, unlike early versions, is disabled by default. Consequently, the
iotop application does not show the SWAPIN and IO% statistics columns and displays the following
warning:
184
CHAPTER 11. KNOWN ISSUES
The Delay Accounting functionality, using the taskstats interface, provides the delay statistics for all
tasks or threads that belong to a thread group. Delays in task execution occur when they wait for a
kernel resource to become available, for example, a task waiting for a free CPU to run on. The statistics
help in setting a task’s CPU priority, I/O priority, and rss limit values appropriately.
As a workaround, you can enable the delayacct boot option either at run time or boot.
Note that this command enables the feature system wide, but only for the tasks that you start
after running this command.
kernel.task_delayacct = 1
For more information, see How to set sysctl variables on Red Hat Enterprise Linux .
As a result, the iotop application displays the SWAPIN and IO% statistics columns.
Bugzilla:2132480[1]
Hardware certification of the real-time kernel on systems with large core-counts might
require passing the skew-tick=1 boot parameter
Large or moderate sized systems with numerous sockets and large core-counts can experience latency
spikes due to lock contentions on xtime_lock, which is used in the timekeeping system. As a
consequence, latency spikes and delays in hardware certifications might occur on multiprocessing
systems. As a workaround, you can offset the timer tick per CPU to start at a different time by adding
the skew_tick=1 boot parameter.
3. Verify the new settings by displaying the kernel parameters you pass during boot.
cat /proc/cmdline
Note that enabling skew_tick=1 causes a significant increase in power consumption and, therefore, it
185
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Note that enabling skew_tick=1 causes a significant increase in power consumption and, therefore, it
must be enabled only if you are running latency sensitive real-time workloads.
Jira:RHEL-9318[1]
The kdump mechanism fails to capture the vmcore file on LUKS-encrypted targets
When running kdump on systems with Linux Unified Key Setup (LUKS) encrypted partitions, systems
require a certain amount of available memory. When the available memory is less than the required
amount of memory, the systemd-cryptsetup service fails to mount the partition. Consequently, the
second kernel fails to capture the crash dump file on the LUKS-encrypted targets.
As a workaround, query the Recommended crashkernel value and gradually increase the memory size
to an appropriate value. The Recommended crashkernel value can serve as reference to set the
required memory size.
# kdumpctl estimate
# reboot
Jira:RHEL-11196[1]
The kdump service fails to build the initrd file on IBM Z systems
On the 64-bit IBM Z systems, the kdump service fails to load the initial RAM disk ( initrd) when znet
related configuration information such as s390-subchannels reside in an inactive NetworkManager
connection profile. Consequently, the kdump mechanism fails with the following error:
Configure a network bond or bridge by re-using the connection profile that has the znet
configuration information:
Copy the znet configuration information from the inactive connection profile to the active
connection profile:
186
CHAPTER 11. KNOWN ISSUES
b. Update the active profile with configuration information from the inactive connection:
#!/bin/bash
inactive_connection=enc600
active_connection=bridge-slave-enc600
for name in nettype subchannels options; do
field=802-3-ethernet.s390-$name
val=$(nmcli --get-values "$field"connection show "$inactive_connection")
nmcli connection modify "$active_connection" "$field" $val"
done
# kdumpctl restart
Bugzilla:2064708
The iwl7260-firmware breaks Wi-Fi on Intel Wi-Fi 6 AX200, AX210, and Lenovo ThinkPad P1
Gen 4
After updating the iwl7260-firmware or iwl7260-wifi driver to the version provided by RHEL 9.1 and
later, the hardware gets into an incorrect internal state. reports its state incorrectly. Consequently, Intel
Wifi 6 cards may not work and display the error message:
An unconfirmed workaround is to power off the system and back on again. Do not reboot.
Bugzilla:2129288[1]
The weak-modules script provided by the kmod package determines which modules are kABI-
compatible with installed kernels. However, while checking modules' kernel compatibility, weak-
modules processes modules symbol dependencies from higher to lower release of the kernel for which
they were built. As a consequence, modules with inter-dependencies built against different kernel
releases might be interpreted as non-compatible, and therefore the weak-modules script fails to work
in this scenario.
To work around the problem, build or put the extra modules against the latest stock kernel before you
install the new kernel.
Bugzilla:2103605[1]
187
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Anaconda fails to login iSCSI server using the no authentication method after unsuccessful
CHAP authentication attempt
When you add iSCSI discs using CHAP authentication and the login attempt fails due to incorrect
credentials, a relogin attempt to the discs with the no authentication method fails. To workaround this
problem, close the current session and login using the no authentication method.
Bugzilla:1983602[1]
By default, Native NVMe multipathing is enabled in RHEL 9. For more information, see Enabling
multipathing on NVMe devices.
Bugzilla:2033080[1]
As a result, complex virtual device stacks are correctly deactivated during shutdown and do not produce
error messages.
Bugzilla:2011699[1]
Disabling quota accounting is no longer possible for an XFS filesystem mounted with
quotas enabled
Starting with RHEL 9.2, it is no longer possible to disable quota accounting on an XFS filesystem which
has been mounted with quotas enabled.
To work around this issue, disable quota accounting by remounting the filesystem, with the quota option
removed.
Bugzilla:2160619[1]
Bugzilla:2185048
188
CHAPTER 11. KNOWN ISSUES
the NVMe/FC device to connect. With this workaround along with the NVMe/FC devices connecting in
time, the Kickstart installation proceeds without issues.
Jira:RHEL-8164[1]
Jira:RHEL-8466[1]
Jira:RHEL-8354
Bugzilla:2157708
The --ssl-fips-mode option in MySQL and MariaDB does not change FIPS mode
The --ssl-fips-mode option in MySQL and MariaDB in RHEL works differently than in upstream.
In RHEL 9, if you use --ssl-fips-mode as an argument for the mysqld or mariadbd daemon, or if you use
ssl-fips-mode in the MySQL or MariaDB server configuration files, --ssl-fips-mode does not change
FIPS mode for these database servers.
Instead:
If you set --ssl-fips-mode to ON, the mysqld or mariadbd server daemon does not start.
If you set --ssl-fips-mode to OFF on a FIPS-enabled system, the mysqld or mariadbd server
daemons still run in FIPS mode.
This is expected because FIPS mode should be enabled or disabled for the whole RHEL system, not for
specific components.
Therefore, do not use the --ssl-fips-mode option in MySQL or MariaDB in RHEL. Instead, ensure FIPS
mode is enabled on the whole RHEL system:
Preferably, install RHEL with FIPS mode enabled. Enabling FIPS mode during the installation
189
Red Hat Enterprise Linux 9.3 9.3 Release Notes
ensures that the system generates all keys with FIPS-approved algorithms and continuous
monitoring tests in place. For information about installing RHEL in FIPS mode, see Installing the
system in FIPS mode.
Alternatively, you can switch FIPS mode for the entire RHEL system by following the procedure
in Switching the system to FIPS mode .
Bugzilla:1991500
Jira:RHEL-4902
The DEFAULT:SHA1 subpolicy has to be set on RHEL 9 clients for PKINIT to work against
AD KDCs
The SHA-1 digest algorithm has been deprecated in RHEL 9, and CMS messages for Public Key
Cryptography for initial authentication (PKINIT) are now signed with the stronger SHA-256 algorithm.
However, the Active Directory (AD) Kerberos Distribution Center (KDC) still uses the SHA-1 digest
algorithm to sign CMS messages. As a result, RHEL 9 Kerberos clients fail to authenticate users by using
PKINIT against an AD KDC.
To work around the problem, enable support for the SHA-1 algorithm on your RHEL 9 systems with the
following command:
Bugzilla:2060798
The PKINIT authentication of a user fails if a RHEL 9 Kerberos agent communicates with a
non-RHEL-9 and non-AD Kerberos agent
If a RHEL 9 Kerberos agent, either a client or Kerberos Distribution Center (KDC), interacts with a non-
RHEL-9 Kerberos agent that is not an Active Directory (AD) agent, the PKINIT authentication of the
user fails. To work around the problem, perform one of the following actions:
Set the RHEL 9 agent’s crypto-policy to DEFAULT:SHA1 to allow the verification of SHA-1
signatures:
Update the non-RHEL-9 and non-AD agent to ensure it does not sign CMS data using the
SHA-1 algorithm. For this, update your Kerberos client or KDC packages to the versions that use
SHA-256 instead of SHA-1:
190
CHAPTER 11. KNOWN ISSUES
Note that for other operating systems, it is the krb5-1.20 release that ensures that the agent signs CMS
data with SHA-256 instead of SHA-1.
See also The DEFAULT:SHA1 subpolicy has to be set on RHEL 9 clients for PKINIT to work against AD
KDCs.
Jira:RHEL-4875
Since FIPS compliance is a process that involves both technical and organizational agreements, consult
your FIPS auditor before enabling the AD-SUPPORT subpolicy to allow technical measures to support
AES SHA-1 HMAC encryption types, and then install RHEL IdM:
Bugzilla:2057471
Heimdal client fails to authenticate a user using PKINIT against RHEL 9 KDC
By default, a Heimdal Kerberos client initiates the PKINIT authentication of an IdM user by using Modular
Exponential (MODP) Diffie-Hellman Group 2 for Internet Key Exchange (IKE). However, the MIT
Kerberos Distribution Center (KDC) on RHEL 9 only supports MODP Group 14 and 16.
To work around this problem, ensure that the Heimdal client uses MODP Group 14. Set the
pkinit_dh_min_bits parameter in the libdefaults section of the client configuration file to 1759:
[libdefaults]
pkinit_dh_min_bits = 1759
As a result, the Heimdal client completes the PKINIT pre-authentication against the RHEL MIT KDC.
Jira:RHEL-4889
IdM in FIPS mode does not support using the NTLMSSP protocol to establish a two-way
cross-forest trust
Establishing a two-way cross-forest trust between Active Directory (AD) and Identity Management
(IdM) with FIPS mode enabled fails because the New Technology LAN Manager Security Support
Provider (NTLMSSP) authentication is not FIPS-compliant. IdM in FIPS mode does not accept the RC4
191
Red Hat Enterprise Linux 9.3 9.3 Release Notes
NTLM hash that the AD domain controller uses when attempting to authenticate.
Jira:RHEL-12154 [1]
Jira:RHEL-12143 [1]
To work around the problem, generate SIDs by running the following command as an IdM administrator
on another IdM replica in the topology:
Afterward, if users still cannot log in, examine the Directory Server error log. You might have to adjust ID
ranges to include user POSIX identities.
See the When upgrading to RHEL9, IDM users are not able to login anymore Knowledgebase solution for
more information.
Jira:RHELPLAN-157939[1]
Migrated IdM users might be unable to log in due to mismatching domain SIDs
If you have used the ipa migrate-ds script to migrate users from one IdM deployment to another, those
users might have problems using IdM services because their previously existing Security Identifiers
(SIDs) do not have the domain SID of the current IdM environment. For example, those users can
retrieve a Kerberos ticket with the kinit utility, but they cannot log in. To work around this problem, see
the following Knowledgebase article: Migrated IdM users unable to log in due to mismatching domain
SIDs.
Jira:RHELPLAN-109613[1]
MIT krb5 user fails to obtain an AD TGT because of incompatible encryption types
generating the user PAC
In MIT krb5 1.20 and later packages, a Privilege Attribute Certificate (PAC) is included in all Kerberos
tickets by default. The MIT Kerberos Distribution Center (KDC) selects the strongest encryption type
available to generate the KDC checksum in the PAC, which currently is the AES HMAC-SHA2
encryption types defined in RFC8009. However, Active Directory (AD) does not support this RFC.
Consequently, in an AD-MIT cross-realm setup, an MIT krb5 user fails to obtain an AD ticket-granting
ticket (TGT) because the cross-realm TGT generated by MIT KDC contains an incompatible KDC
checksum type in the PAC.
To work around the problem, set the disable_pac parameter to true for the MIT realm in the [realms]
section of the /var/kerberos/krb5kdc/kdc.conf configuration file. As a result, the MIT KDC generates
tickets without PAC, which means that AD skips the failing checksum verification and an MIT krb5 user
can obtain an AD TGT.
192
CHAPTER 11. KNOWN ISSUES
Bugzilla:2016312
Potential risk when using the default value for ldap_id_use_start_tls option
When using ldap:// without TLS for identity lookups, it can pose a risk for an attack vector. Particularly a
man-in-the-middle (MITM) attack which could allow an attacker to impersonate a user by altering, for
example, the UID or GID of an object returned in an LDAP search.
Currently, the SSSD configuration option to enforce TLS, ldap_id_use_start_tls, defaults to false.
Ensure that your setup operates in a trusted environment and decide if it is safe to use unencrypted
communication for id_provider = ldap. Note id_provider = ad and id_provider = ipa are not affected
as they use encrypted connections protected by SASL and GSSAPI.
If it is not safe to use unencrypted communication, enforce TLS by setting the ldap_id_use_start_tls
option to true in the /etc/sssd/sssd.conf file. The default behavior is planned to be changed in a future
release of RHEL.
Jira:RHELPLAN-155168[1]
Adding a RHEL 9 replica in FIPS mode to an IdM deployment in FIPS mode that was
initialized with RHEL 8.6 or earlier fails
The default RHEL 9 FIPS cryptographic policy aiming to comply with FIPS 140-3 does not allow the use
of the AES HMAC-SHA1 encryption types' key derivation function as defined by RFC3961, section 5.1.
This constraint is a blocker when adding a RHEL 9 Identity Management (IdM) replica in FIPS mode to a
RHEL 8 IdM environment in FIPS mode in which the first server was installed on a RHEL 8.6 system or
earlier. This is because there are no common encryption types between RHEL 9 and the previous RHEL
versions, which commonly use the AES HMAC-SHA1 encryption types but do not use the AES HMAC-
SHA2 encryption types.
You can view the encryption type of your IdM master key by entering the following command on the
server:
To work around the problem, enable the use of AES HMAC-SHA1 on the RHEL 9 replica:
WARNING
This workaround might violate FIPS compliance.
As a result, adding the RHEL 9 replica to the IdM deployment proceeds correctly.
Note that there is ongoing work to provide a procedure to generate missing AES HMAC-SHA2-
encrypted Kerberos keys on RHEL 7 and RHEL 8 servers. This will achieve FIPS 140-3 compliance on the
RHEL 9 replica. However, this process will not be fully automated, because the design of Kerberos key
cryptography makes it impossible to convert existing keys to different encryption types. The only way is
to ask users to renew their passwords.
Jira:RHEL-4888
193
Red Hat Enterprise Linux 9.3 9.3 Release Notes
name. To work around the problem, this update provides a new parameter
dns_resolver_use_search_list. Set dns_resolver_use_search_list = false to avoid using the DNS
search list.
Bugzilla:1608496[1]
Installing a RHEL 7 IdM client with a RHEL 9.2+ IdM server in FIPS mode fails due to EMS
enforcement
The TLS Extended Master Secret (EMS) extension (RFC 7627) is now mandatory for TLS 1.2
connections on FIPS-enabled RHEL 9.2 and later systems. This is in accordance with FIPS-140-3
requirements. However, the openssl version available in RHEL 7.9 and lower does not support EMS. In
consequence, installing a RHEL 7 Identity Management (IdM) client with a FIPS-enabled IdM server
running on RHEL 9.2 and later fails.
If upgrading the host to RHEL 8 before installing an IdM client on it is not an option, work around the
problem by removing the requirement for EMS usage on the RHEL 9 server by applying a NO-
ENFORCE-EMS subpolicy on top of the FIPS crypto policy:
Note that this removal goes against the FIPS 140-3 requirements. As a result, you can establish and
accept TLS 1.2 connections that do not use EMS, and the installation of a RHEL 7 IdM client succeeds.
Jira:RHEL-4955
When the nsslapd-numlisteners attribute value is more than 2, Directory Server fails
If the nsslapd-numlisteners attribute value is higher than 2, Directory Server might close the listening
file descriptor instead of the accepted file descriptor. As a result, after some time, Directory Server
stops listening on some ports and fails.
Jira:RHEL-17178[1]
11.12. DESKTOP
VNC is not running after upgrading to RHEL 9
After upgrading from RHEL 8 to RHEL 9, the VNC server fails to start, even if it was previously enabled.
To work around the problem, manually enable the vncserver service after the system upgrade:
As a result, VNC is now enabled and starts after every system boot as expected.
Bugzilla:2060308
To work around this problem, use one of the following solutions to create users:
194
CHAPTER 11. KNOWN ISSUES
Run the installation in VNC mode and resize the VNC window.
Jira:RHEL-11924[1]
As a consequence, you cannot use certain features of applications that use WebKitGTK to display web
pages, such as the following:
Jira:RHEL-4157
Additionally, Wayland is enabled but the desktop session uses X.org by default if the version of the
NVIDIA driver is lower than 510.
Jira:RHELPLAN-119001[1]
Jira:RHELPLAN-119852 [1]
Jira:RHELPLAN-121049 [1]
195
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Bugzilla:2123859
Jira:RHEL-1172
11.15. VIRTUALIZATION
Installing a virtual machine over https or ssh in some cases fails
Currently, the virt-install utility fails when attempting to install a guest operating system (OS) from an
ISO source over a https or ssh connection - for example using virt-install --cdrom
https://example/path/to/image.iso. Instead of creating a virtual machine (VM), the described operation
ends unexpectedly with an internal error: process exited while connecting to monitor message.
Similarly, using the RHEL 9 web console to install a guest operating system fails and displays an
Unknown driver 'https' error if you use an https or ssh URL, or the Download OS function.
To work around this problem, install qemu-kvm-block-curl and qemu-kvm-block-ssh on the host to
enable https and ssh protocol support. Alternatively, use a different connection protocol or a different
installation source.
Bugzilla:2014229
When you pass through an NVIDIA GPU device to a RHEL virtual machine (VM)
Jira:RHELPLAN-117234[1]
The Milan VM CPU type is sometimes not available on AMD Milan systems
On certain AMD Milan systems, the Enhanced REP MOVSB (erms) and Fast Short REP MOVSB ( fsrm)
feature flags are disabled in the BIOS by default. Consequently, the Milan CPU type might not be
available on these systems. In addition, VM live migration between Milan hosts with different feature flag
settings might fail. To work around these problems, manually turn on erms and fsrm in the BIOS of your
host.
Bugzilla:2077767[1]
196
CHAPTER 11. KNOWN ISSUES
A hostdev interface with failover settings cannot be hot-plugged after being hot-
unplugged
After removing a hostdev network interface with failover configuration from a running virtual machine
(VM), the interface currently cannot be re-attached to the same running VM.
Jira:RHEL-7337
Jira:RHEL-7335
Host network cannot ping VMs with VFs during live migration
When live migrating a virtual machine (VM) with a configured virtual function (VF), such as a VMs that
uses virtual SR-IOV software, the network of the VM is not visible to other devices and the VM cannot
be reached by commands such as ping. After the migration is finished, however, the problem no longer
occurs.
Jira:RHEL-7336
Bugzilla:2005173[1]
Jira:RHEL-11366
Windows Server 2016 VMs sometimes stops working after hot-plugging a vCPU
Currently, assigning a vCPU to a running virtual machine (VM) with a Windows Server 2016 guest
operating system might cause a variety of problems, such as the VM terminating unexpectedly,
becoming unresponsive, or rebooting.
Bugzilla:1915715
This problem is caused by a limitation in the vTPM device. The vTPM device has a hard-coded limit on
the maximum number of opened file descriptors. Since multiple file descriptors are opened for every
new queue, the internal vTPM limit can be exceeded, causing the VM to fail.
To work around this problem, choose one of the following two options:
197
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Keep the vTPM device enabled, but use less than 250 queues.
Jira:RHEL-13335 [1]
However, this error message does not impact the functionality of the VM and can be ignored. For
details, see the Red Hat KnoweldgeBase .
Bugzilla:2149989 [1]
Some Windows guests fail to boot after a v2v conversion on hosts with AMD EPYC CPUs
After using the virt-v2v utility to convert a virtual machine (VM) that uses Windows 11 or a Windows
Server 2022 as the guest OS, the VM currently fails to boot. This occurs on hosts that use AMD EPYC
series CPUs.
Bugzilla:2168082[1]
Restarting the OVS service on a host might block network connectivity on its running VMs
When the Open vSwitch (OVS) service restarts or crashes on a host, virtual machines (VMs) that are
running on this host cannot recover the state of the networking device. As a consequence, VMs might be
completely unable to receive packets.
This problem only affects systems that use the packed virtqueue format in their virtio networking stack.
To work around this problem, use the packed=off parameter in the virtio networking device definition
to disable packed virtqueue. With packed virtqueue disabled, the state of the networking device can, in
some situations, be recovered from RAM.
Jira:RHEL-333
To work around this problem, wait at least 10 seconds before resuming the post-copy migration or
switch to another port for migration recovery.
Jira:RHEL-7096
sched: CPU #4's llc-sibling CPU #3 is not on the same node! [node: 1 != 0]. Ignoring dependency.
WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:415 topology_sane.isra.0+0x6b/0x80
198
CHAPTER 11. KNOWN ISSUES
To work around this issue, do not use AMD EPYC CPUs for NUMA node configurations.
Bugzilla:2176010
NFS failure during VM migration causes migration failure and source VM coredump
Currently, if the NFS service or server is shut down during virtual machine (VM) migration, the source
VM’s QEMU is unable to reconnect to the NFS server when it starts running again. As a result, the
migration fails and a coredump is initiated on the source VM. Currently, there is no workaround available.
Bugzilla:2058982
Bugzilla:2073872
virsh blkiotune --weight command fails to set the correct cgroup I/O controller value
Currently, using the virsh blkiotune --weight command to set the VM weight does not work as
expected. The command fails to set the correct io.bfq.weight value in the cgroup I/O controller
interface file. There is no workaround at this time.
Bugzilla:1970830
Starting a VM with an NVIDIA A16 GPU sometimes causes the host GPU to stop working
Currently, if you start a VM that uses an NVIDIA A16 GPU passthrough device, the NVIDIA A16 GPU
physical device on the host system in some cases stops working.
To work around the problem, reboot the hypervisor and set the reset_method for the GPU device to
bus:
Jira:RHEL-7212[1]
Jira:RHEL-2815[1]
On virtual machines (VMs) that use Windows guest operating systems, the system in some cases
199
Red Hat Enterprise Linux 9.3 9.3 Release Notes
On virtual machines (VMs) that use Windows guest operating systems, the system in some cases
becomes unresponsive when under high I/O load. When this happens, the system logs a viostor Reset
to device, \Device\RaidPort3, was issued error.
Jira:RHEL-1609[1]
Windows 10 VMs with certain PCI devices might become unresponsive on boot
Currently, a virtual machine (VM) that uses a Windows 10 guest operating system might become
unresponsive during boot if a virtio-win-scsi PCI device with a local disk back end is attached to the
VM. To work around the problem, boot the VM with the multi_queue option enabled.
Jira:RHEL-1084[1]
The repair function of virtio-win-guest-tool for the virtio-win drivers does not work
Currently, when using the Repair button of virtio-win-guest-tool for a virtio-win driver, such as the
Virtio Balloon Driver, the button has no effect. As a consequence, the driver cannot be reinstalled after
being removed on the guest.
Jira:RHEL-1517[1]
Windows 11 VMs with a memory balloon device set might close unexpectedly during reboot
Currently, rebooting virtual machines (VMs) that use a Windows 11 guest operating system and a
memory balloon device in some cases fails with a DRIVER POWER STAT FAILURE blue-screen error.
Jira:RHEL-935[1]
Migrating a Windows 11 or Windows Server 2022 VM under high network load sometimes
fails
When live-migrating a virtual machine (VM) that uses Windows Server 2022 or Windows 11 as the guest
operating system, the migration might become unresponsive or terminate unexpectedly if the network
is impacted by high packed loss.
Jira:RHEL-2316[1]
error: Requested operation is not valid: QEMU reports migration is still running
Jira:RHEL-7115
The virtio balloon driver sometimes does not work on Windows 10 VMs
Under certain circumstances, the virtio-balloon driver does not work correctly on virtual machines (VMs)
that use a Windows 10 guest operating system. As a consequence, such VMs might not use their
assigned memory efficiently.
Jira:RHEL-12118
200
CHAPTER 11. KNOWN ISSUES
Currently, when a virtio file system (virtiofs) is configured on a virtual machine (VM) that uses a Windows
guest operating system, the performance of virtiofs in the VM is significantly worse than in VMs that use
Linux guests.
Jira:RHEL-1212[1]
Jira:RHEL-869
PROCESSOR_START_TIMEOUT
Jira:RHEL-1220
To work around this problem, update the virtio drivers by using Windows Device Manager.
Jira:RHEL-574[1]
After restoring the VM from a snapshot, the VM cannot boot, and instead enters emergency
mode.
To work around these problems, do the following in emergency mode of the VM:
3. Reboot the VM
201
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Alternatively, to prevent the issue from occurring, do the following before cloning a VM or creating a VM
snapshot:
2. Reboot the VM
Bugzilla:2059545[1]
For details and workaround instructions, see the VMware Knowledge Base.
Bugzilla:2037657[1]
RHEL instances on Azure fail to boot if provisioned by cloud-init and configured with an
NFSv3 mount entry
Currently, booting a RHEL virtual machine (VM) on the Microsoft Azure cloud platform fails if the VM
was provisioned by the cloud-init tool and the guest operating system of the VM has an NFSv3 mount
entry in the /etc/fstab file.
Bugzilla:2081114[1]
Setting static IP in a RHEL virtual machine on a VMware host does not work
Currently, when using RHEL as a guest operating system of a virtual machine (VM) on a VMware host,
the DatasourceOVF function does not work correctly. As a consequence, if you use the cloud-init utility
to set the VM’s network to static IP and then reboot the VM, the VM’s network will be changed to
DHCP.
Jira:RHEL-12122
Large VMs might fail to boot into the debug kernel when the kmemleak option is enabled
When attempting to boot a RHEL 9 virtual machine (VM) into the debug kernel, the booting might fail
with the following error if the machine kernel is using the kmemleak=on argument.
This problem affects mainly large VMs because they spend more time in the boot sequence.
To work around the problem, edit the /etc/fstab file on the machine and add extra timeout options to
the /boot and /boot/efi mount points. For example:
202
CHAPTER 11. KNOWN ISSUES
systemd.mount-timeout=600 0 0
Jira:RHELDOCS-16979[1]
11.17. SUPPORTABILITY
Timeout when running sos report on IBM Power Systems, Little Endian
When running the sos report command on IBM Power Systems, Little Endian with hundreds or
thousands of CPUs, the processor plugin reaches its default timeout of 300 seconds when collecting
huge content of the /sys/devices/system/cpu directory. As a workaround, increase the plugin’s timeout
accordingly:
For a permanent change, edit the [plugin_options] section of the /etc/sos/sos.conf file:
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800
The example value is set to 1800. The particular timeout value highly depends on a specific system. To
set the plugin’s timeout appropriately, you can first estimate the time needed to collect the one plugin
with no timeout by running the following command:
Bugzilla:1869561 [1]
11.18. CONTAINERS
Running systemd within an older container image does not work
Running systemd within an older container image, for example, centos:7, does not work:
# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup -
-rm -ti centos:7 /usr/lib/systemd/systemd
203
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Jira:RHELPLAN-96940[1]
204
APPENDIX A. LIST OF TICKETS BY COMPONENT
Component Tickets
audit Jira:RHELPLAN-161087
bacula Jira:RHEL-6856
bind Bugzilla:1984982
cockpit Bugzilla:2203361
cockpit-appstream Bugzilla:2030836
cockpit-machines Bugzilla:2173584
crash Bugzilla:2170283
createrepo_c Bugzilla:2056318
cups-filters Bugzilla:2229784
205
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Component Tickets
cyrus-sasl Bugzilla:1995600
debugedit Bugzilla:2177302
device-mapper-persistent- Bugzilla:2175198
data
edk2 Bugzilla:1935497
fence-agents Bugzilla:2187327
fuse3 Bugzilla:2188182
gcc-toolset-13 Bugzilla:2171919
gcc-toolset-13-annobin Bugzilla:2171923
gcc-toolset-13-binutils Bugzilla:2171926
gcc-toolset-13-gcc Bugzilla:2172093
gcc-toolset-13-gdb Bugzilla:2172096
gfs2-utils Bugzilla:2170017
gimp Bugzilla:2047161
206
APPENDIX A. LIST OF TICKETS BY COMPONENT
Component Tickets
grub2 Bugzilla:2184069
gssproxy Bugzilla:2181465
gtk3 Jira:RHEL-11924
iproute Jira:RHEL-428
java-17-openjdk Bugzilla:2186647
jmc-core Bugzilla:1980981
kdump-anaconda-addon Jira:RHEL-11196
207
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Component Tickets
kernel-rt Bugzilla:2181571
kmod Bugzilla:2103605
kmod-kvdo Jira:RHEL-8354
libabigail Bugzilla:2186931
libotr Bugzilla:2086562
libpfm Bugzilla:2185652
libxcrypt Bugzilla:2034569
llvm-toolset Bugzilla:2178796
lvm2 Bugzilla:2038183
mysql Bugzilla:1991500
nfs-utils Bugzilla:2081114
nginx-1.22-module Bugzilla:2170808
208
APPENDIX A. LIST OF TICKETS BY COMPONENT
Component Tickets
nodejs Bugzilla:2186717
nss Bugzilla:2157950
nvme-cli Bugzilla:2159929
nvme-stas Bugzilla:1893841
open-vm-tools Bugzilla:2037657
opencryptoki Bugzilla:2160061
opensc Jira:RHEL-280
openslp Jira:RHEL-6995
osbuild Jira:RHEL-4655
pause-container Bugzilla:2106816
pcsc-lite-ccid Bugzilla:2209457
209
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Component Tickets
perl-HTTP-Tiny Bugzilla:2228412
pki-core Bugzilla:2084181
postfix Bugzilla:2134789
python-greenlet Bugzilla:2149497
python3.11-lxml Bugzilla:2157708
redis Bugzilla:2129826
restore Bugzilla:1997366
210
APPENDIX A. LIST OF TICKETS BY COMPONENT
Component Tickets
rpm Bugzilla:2157836
rsyslog Jira:RHELPLAN-160541
s390utils Bugzilla:1932480
samba Bugzilla:2190415
setools Bugzilla:2231801
sevctl Bugzilla:2104857
sos Bugzilla:1869561
squid-container Bugzilla:2178953
stratisd Bugzilla:2041558
sysstat Jira:RHEL-12009
systemtap Bugzilla:2186934
tang Bugzilla:2188743
tigervnc Bugzilla:2060308
tuned Bugzilla:2113900
211
Red Hat Enterprise Linux 9.3 9.3 Release Notes
Component Tickets
ubi9-micro-container Bugzilla:2223028
unbound Bugzilla:2070495
valgrind Bugzilla:2124346
virt-v2v Bugzilla:2168082
webkit2gtk3 Jira:RHEL-4157
which Bugzilla:2181974
212
APPENDIX A. LIST OF TICKETS BY COMPONENT
Component Tickets
213
Red Hat Enterprise Linux 9.3 9.3 Release Notes
0.1-5
Wed Feb 28 2024, Gabriela Fialová (gfialova@redhat.com)
0.1-4
Wed Feb 7 2024, Lucie Vařáková (lvarakova@redhat.com)
0.1-3
Thu Feb 1 2024, Gabriela Fialová (gfialova@redhat.com)
0.1-2
Mon Jan 29 2024, Gabriela Fialová (gfialova@redhat.com)
0.1-1
Thu Jan 2025, Lenka Špačková (lspackova@redhat.com)
0.1-0
Wed Jan 10 2024, Gabriela Fialová (gfialova@redhat.com)
0.0-9
Tue Jan 2 2024, Gabriela Fialová (gfialova@redhat.com)
0.0-8
Thu Nov 23 2023, Gabriela Fialová (gfialova@redhat.com)
0.0-7
Wed Nov 22 2023, Gabriela Fialová (gfialova@redhat.com)
214
APPENDIX B. REVISION HISTORY
0.0-6
Tue Nov 21 2023, David Vozenilek (dvozenil@redhat.com)
0.0-5
Mon Nov 20 2023, Jana Heves (jsvarova@redhat.com)
0.0-4
Sun Nov 19 2023, Filip Hanzelka (fhanzelk@redhat.com)
0.0-3
Thu Nov 16 2023, Marek Suchánek (msuchane@redhat.com)
0.0-2
Thu Nov 16 2023, Lenka Špačková (lspackova@redhat.com)
0.0-1
Wed Nov 08 2023, Gabriela Fialová (gfialova@redhat.com)
0.0-0
Wed Sep 27 2023, Gabriela Fialová (gfialova@redhat.com)
Release of the Red Hat Enterprise Linux 9.3 Beta Release Notes.
215