Chapter 4. New features
This part describes new features and major enhancements introduced in Red Hat Enterprise Linux 9.9.
4.1. Installer and image creation Copy linkLink copied to clipboard!
bootcrebased to version 1.16.4The
bootcpackage, which enables building and managing bootable container images, has been rebased to upstream version 1.16.4. This version provides important fixes and enhancements, most notably the following:-
The handling of merging files in the
/etcdirectory is improved. -
The
initramfstool correctly handles pre-existing/run/systemd/volatile-rootsymlinks. -
The
composefsimplementation includes multiple changes and updates to thecomposefs-rslibrary. - Unified Kernel Image (UKI) cleanup behavior is enhanced.
- Privilege dropping for container pulls is removed to improve reliability.
-
The
sd-bootcomponent uses the--random-seedflag only onsystemdversion 257 or later, which resolves compatibility issues on systems running earlier versions ofsystemd. -
Registry authentication discovery is restored for
composefsdirect pull operations. Previously, direct pulls failed to locate registry credentials correctly.
-
The handling of merging files in the
4.2. Security Copy linkLink copied to clipboard!
- Keylime rebased to 7.14.3
The Keylime packages are rebased to upstream version 7.14.3, which includes the following enhancements and bug fixes:
- Confidential VM evidence verification
-
Introduces API version 2.5 and the
/verify/evidenceendpoint to verify AMD Secure Encrypted Virtualization-Secure Nested Paging (SEV-SNP) attestation evidence. - API version negotiation
- Adds automatic REST API version negotiation to the tenant component to maintain compatibility across different verifier versions.
- SANs in generated TLS certificates
- TLS certificates automatically generated by the verifier include Subject Alternative Names (SANs) to allow strict hostname verification during TLS handshakes.
- Runtime socket path location
-
Updates default socket locations for Keylime components to
/run/keylime/. - Database session and migration fixes
- Resolves database session leaks, fixes MySQL migration script incompatibilities, and prevents race conditions during agent deletion operations.
- New manual pages
-
Adds man pages for
keylime_verifier(8),keylime_registrar(8),keylime_agent(8),keylime_push_model_agent(8), andkeylime-policy(1).
keylime-agent-rustrebased to 0.2.10The
keylime-agent-rustpackage is rebased to upstream version 0.2.10. With this update, the agent hashes qualifying data for the Trusted Platform Module (TPM) during Initial Attestation Key (IAK) certification.
fapolicydrebased to 2.0.1The
fapolicydpackages are rebased to upstream version 2.0.1 and provide many important enhancements and bug fixes over the previously available 1.4.3 version. Most notably:- Transactional policy and trust database updates
-
Rule reloads are transactional, and trust database reloads use generation tracking. If rule verification or database rebuild fails,
fapolicydpreserves the last valid state and does not apply an incomplete policy. Additional updates tofagenrulesand internal Lightning Memory-Mapped Database (LMDB) handling reduce race conditions during live updates. - Parallel decision processing
-
A new
decision_threadsconfiguration option enablesfapolicydto process permission evaluation events across multiple worker threads. This improves throughput on multi-core systems. Provided per-worker queue and cache statistics help administrators with thread count tuning. - Enhanced operational visibility and metrics
- New metrics and timing reports track rule hits, default allow decisions, reply failures, cache effectiveness, attribute lookups, queue delays, and decision latency. Reports also display active configuration, ruleset, and trust database generations. Aggregated and per-worker measurements make workload imbalance and capacity problems easier to diagnose.
- Improved policy authoring and validation
-
Policy authoring supports explicit
glob:path patterns and double-quoted values for file paths containing spaces. The--check-rulesand--lintoptions validate policies before deployment and provide diagnostic details . Additionally, packages can extend the%languagesMIME set without replacing distribution default definitions. - Automatic trust database management
-
The
db_max_size=autosetting is used as default, which allowsfapolicydto dynamically resize LMDB when package sets and reload requirements change. Status reports provide resize and compaction guidance, and thefapolicyd-cli --compact-trustdbcommand helps administrators to rebuild oversized databases safely. This reduces manual tuning and prevents reload failures caused by an undersized map. systemdhealth monitoring and service recovery-
With this update, service monitoring integrates
systemdreadiness and watchdog notifications tied to actual decision worker progress. If a decision worker stops responding,fapolicydlogs the failure and terminates, which allowssystemdto automatically restart the service according to the service policy. This improves unattended recovery and gives service managers a more accurate view of daemon health. - Trust database indexing for interpreted scripts
-
With this update, the RPM trust database back end indexes non-executable application script files owned by installed packages, such as KDE
Logout.qmlandpolkitJavaScript files. By registering these files in the trust database during package inspection,fapolicydno longer blocks desktop session actions such as Sleep, Restart, and Shutdown.
fagenrulesvalidates rule syntax before afapolicydreloadWith this update, the
fagenrulesscript uses thefapolicyd-cli --check-rulescommand to validate the compiled ruleset before a service reload. This prevents service failures caused by invalid configuration files.As a result, if validation fails,
fagenrulesaborts the reload operation, outputs diagnostic details, and preserves the active policy.
fapolicydprovides a sample rule for NFS daemon library accessfapolicydprovides a sample rule in the/usr/share/fapolicyd/sample-rules/41-nfsd.rulesfile. You can use this rule to allownfsdto access shared library files hosted on NFS-exported directories.To apply the rule, copy the sample rule file:
# cp /usr/share/fapolicyd/sample-rules/41-nfsd.rules /etc/fapolicyd/rules.d/Load the updated rules into
fapolicyd:# fagenrules --load
opencryptokirebased to version 3.27.0The
opencryptokipackages, which implement the PKCS #11 cryptographic token interface, are rebased to upstream version 3.27.0. This version provides bug fixes and enhancements over the previous version. Notable changes by token type and component include:- General changes across tokens
-
Base support for the PKCS #11 version 3.2 specification, which includes the
C_VerifySignatureAPI family (Init,Update,Final) and the key encapsulation APIsC_EncapsulateKeyandC_DecapsulateKey - Key encapsulation and decapsulation for RSA-PKCS, RSA-OAEP, and ECDH mechanisms across the Soft, ICA, CCA, and EP11 tokens
-
Support for PKCS #11 version 3.0 Edwards and Montgomery key types across all tokens and the
p11sakutility -
Support for the
CKM_PUB_KEY_FROM_PRIV_KEYmechanism across the Soft, ICA, CCA, and EP11 tokens - A configurable limit for the maximum number of supported token objects
-
Base support for the PKCS #11 version 3.2 specification, which includes the
- Soft token
- Support for post-quantum cryptography (PQC) ML-DSA and ML-KEM key types and mechanisms - requires OpenSSL 3.5 or later, or a configured OQS provider
-
Support for DH-PKCS key encapsulation and decapsulation,
CKM_ECDH1_COFACTOR_DERIVE, andCKM_ECDH_AES_KEY_WRAPwith Montgomery keys -
Support for
CKM_ECDH_X_AES_KEY_WRAPandCKM_ECDH_COF_AES_KEY_WRAPkey wrap mechanisms
- EP11 token
- Support for PQC ML-DSA and ML-KEM key types and mechanisms - requires EP11 host library version 4.2 or later, and a CEX8P crypto card with firmware version 9.6 or later on IBM z17, or version 8.39 or later on IBM z16
- Support for DH-PKCS key encapsulation and decapsulation
- CCA token
- Support for PQC ML-DSA key types and mechanisms - requires CCA version 8.4 or later
- Support for RSA public exponents 5, 17, and 257
- ICA token
-
Support for
CKM_ECDH_AES_KEY_WRAPwith Montgomery keys -
Support for
CKM_ECDH_X_AES_KEY_WRAPandCKM_ECDH_COF_AES_KEY_WRAPkey wrap mechanisms
-
Support for
p11sakutility- Support for PKCS #11 version 3.2 ML-DSA and ML-KEM key types
-
Support for key wrap with the
CKM_ECDH_X_AES_KEY_WRAPandCKM_ECDH_COF_AES_KEY_WRAPmechanisms -
A new option for the
list-keycommand to display EP11 session IDs
Jira:RHEL-136096[1]
- New package:
sequoia-sq This update introduces the
sequoia-sqpackage, which provides thesqcommand-line tool to read and inspect OpenPGP certificates. As a result, you can inspect default RHEL RPM signing keys directly from the terminal.Jira:RHEL-188914[1]
- OpenSSL startup certificate self-check removed
This update changes how OpenSSL validates certificates. The internal check of a service’s own certificate chain at startup is no longer performed, as it is the peer’s responsibility to verify the chain during the handshake. Ensure that peer systems, clients or servers, are correctly configured to perform standard certificate chain validation to maintain security.
cryptsetup luksDumpcorrectly reports hash algorithm for Clevis slotsBefore this update, when a LUKS device was formatted by using the
--hash sha512option and subsequently bound by using theclevis luks bindcommand, thecryptsetup luksDumpcommand incorrectly reportedSHA-256instead of the configuredSHA-512hash algorithm. With this update, thecryptsetup luksDumpcommand correctly reports the hash algorithm used during a LUKS device formatting.
- SELinux policy supports BIND packages with suffixes
With this update, the SELinux policy supports BIND packages with suffixes, ensuring daemons from all installed BIND packages start in the correct SELinux context.
As a result, you can install multiple BIND packages required for a smooth upgrade of the
freeipa-server-dnspackage.
- Custom SELinux context
hid_sensor_device_tavailable for HID-SENSOR devices With this update, the
hid_sensor_device_t, a custom SELinux context, is available for HID-SENSOR devices. It differentiates HID-SENSOR devices from USB devices to ensure correct labeling, improved access control, and STIG compliance.Jira:RHEL-166739[1]
- Enhanced
rsyslogstatistics integration with Zabbix and granularimkafkametrics The
rsyslogpackage supports native Zabbix Low-Level Discovery (LLD) format for theimpstatsmodule and provides more granular metrics for theimkafkamodule. These enhancements eliminate the need for additional processing when you integratersyslogstatistics with Zabbix monitoring systems. As a result, Zabbix can consumersyslogstatistics directly, andimkafkametrics provide finer operational detail.Jira:RHEL-140914[1]
- GnuTLS TLS driver in
rsyslogenforces CRL expiration The GnuTLS Transport Layer Security (TLS) stream driver in
rsyslogchecks whether configured Certificate Revocation List (CRL) files have expired. When a CRL file is past its validity period, the driver refuses to accept new TLS connections. This enhancement aligns the GnuTLS driver behavior with the OpenSSL driver, which already enforced CRL expiration. As a result, administrators using the GnuTLS driver with thedefaultNetstreamDriverCRLFileparameter can ensure that expired CRLs prevent TLS connections.Jira:RHEL-169794[1]
- The
rsyslog omelasticsearchmodule supports configurable TLS parameters With this update, the
omelasticsearchmodule provides thetls.tlsversion,tls.ciphersuites, andtls.keyexchangegroupsconfiguration parameters. You can use these parameters to configure TLS protocol versions, cipher suites, and key exchange groups when forwarding logs to Elasticsearch over TLS. This update also includes support for post-quantum cryptography (PQC) compatible key exchange algorithms.Jira:RHEL-193506[1]
- Pre-configured systemd timer for automated AIDE integrity checks
The
aidepackage includes theaide-check.timersystemd timer unit for automated integrity checks. With this timer, administrators can schedule periodic Advanced Intrusion Detection Environment (AIDE) integrity checks with CPU quota limits, without requiring custom cron jobs. As a result, administrators can configure AIDE automation by using standardsystemdtimer controls.Jira:RHEL-178121[1]
aidesupports drop-in configuration files in the/etc/aide.ddirectoryThe
aidepackage supports drop-in configuration files placed in the/etc/aide.ddirectory. The default/etc/aide.confconfiguration file automatically includes*.conffiles from/etc/aide.d. This enhancement enables administrators to add custom Advanced Intrusion Detection Environment (AIDE) rules without modifying the main configuration file. As a result, you/administrators can manage AIDE customizations separately from the base configuration.Jira:RHEL-178122[1]
- OpenSCAP rebased to 1.3.16
The OpenSCAP packages have been rebased to upstream version 1.3.16. This version provides bug fixes and various enhancements. For additional information, see the OpenSCAP release notes.
Jira:RHEL-278223[1]
- SCAP Security Guide rebased to 0.1.82
For additional information, see the SCAP Security Guide release notes.
4.3. Software management Copy linkLink copied to clipboard!
reposyncsupports a new--min-buildtimeoptionBefore this update, synchronizing large repositories could be expensive because they could contain multiple versions of the same package built over time. With this release, the
reposyncutility supports a new--min-buildtime <YYYY-MM-DD>option. As a result, you can synchronize only a subset of the packages that were built since the specified timestamp.Jira:RHEL-119475[1]
- DNF preserves POSIX ACLs on the rotating
dnf.logfile The DNF utility copies POSIX access control lists (ACLs) from the existing
/var/log/dnf.logfile to a new, empty log file during rotation. As a result, custom permissions granted to specific users survive the log rotation process.
4.4. Infrastructure services Copy linkLink copied to clipboard!
cyrus-imapdreconstructgains the--fix-uidvalidityoptionBefore this update, the
reconstructcommand could not repair UIDVALIDITY mismatches between the mailbox index (cyrus.index) and the mailboxes database (mailboxes.db), causing mail transfer failures. With this update, thereconstructcommand includes a new--fix-uidvalidityoption that detects and corrects such mismatches.By default,
reconstructupdates the index to match the database; when combined with-M, the command updates the database to match the index instead. This option is specific to the Red Hat build of Cyrus IMAP.Jira:RHEL-76907[1]
- PHP 8.4 available
RHEL 9.9 includes PHP 8.4. This version provides notable enhancements and bug fixes over version 8.3, most notably the following:
- Property hooks support computed properties that IDEs and static analysis tools understand natively.
- Asymmetric visibility controls the scope to write to a property independently from the scope to read the property.
-
The
#[\Deprecated]attribute makes the existing deprecation mechanism available to user-defined functions, methods, and class constants. -
A new DOM API is available within the
Domnamespace, which includes standards-compliant support for parsing HTML5 documents. -
The
BcMath\Numberobject enables object-oriented usage and standard mathematical operators when working with arbitrary precision numbers. -
The
array_find(),array_find_key(),array_any(), andarray_all()functions are available. -
You can access properties and methods of a newly instantiated object without wrapping the
newexpression in parentheses.
- SystemTap rebased to version 5.5
SystemTap has been rebased to version 5.5 and includes the following changes:
-
The
@enum()script construct resolves enumeration values in probed programs. -
String-concatenation chains that use the
.operator provide improved compilation and execution performance. -
The
stap-serverdinfrastructure includes several security improvements.
Jira:RHEL-169427[1]
-
The
elfutilsincludes several enhancements across debugging and analysis toolsThe
elfutilstools and libraries include the following changes:-
debuginfodsupports the--home-redirectand--home-htmloptions to redirect document root requests to a custom URL or serve a custom HTML file. -
debuginfodsupports the--max-depthoption to limit scanner depth and Metadata queries indebuginfodsupport lookup by build ID. Thelibdebuginfodlibrary includes thedebuginfod_default_progressfnfunction. -
debuginfod-findhonors the DEBUGINFOD_PROGRESS environment variable when invoked without the-voption. -
elflintrecognizes.debug_*.dwosections,.relro_paddingsections, SHT_AARCH64_ATTRIBUTES, SHT_LLVM_LTO, and SHT_LLVM_ADDRSIG. -
elflintacceptsR_X86_64_DTPOFF64inET_RELfiles and includes additional lints forPT_LOAD,PT_INTERP, andPT_PHDRsegments. -
libdwincludes language constants for Erlang, Elixir, and Gleam. It also processes sections in DWARF package (.dwp) files when the.debug_dwpsection is present. -
libdwflimproves handling of Linux kernel object files with non-zerosh_addrfields. -
libdwfl_stacktracesupports AArch64 and 32-bit ARM architectures. The interface remains experimental and might be subject to API or ABI changes. -
libelfincludes new manual pages forgelf.hfunctions and resolves assertion failures ingelf_getmoveandgelf_update_moverelated to ELF class handling. -
libelfhandles binaries with 65280 or more sections when section zero headers are not loaded. readelfimproves support for DWARF package (.dwp) file sections and provides improved output formatting for.gcc_except_table.The experimental
stacktracetool is scheduled for removal in the next release and will be replaced by the upcomingeu-stackproftool.
Jira:RHEL-169428[1]
-
- Valgrind rebased to version 3.27.1
The
valgrindpackage has been rebased from version to 3.27.1. The enhancements improve platform support on IBM Z systems, extend application introspection capabilities through new client requests, add support for recent Linux memory-management features to provide additional debugging and analysis options in Helgrind.This update includes the following notable changes:
-
Added the
VALGRIND_REPLACES_MALLOCclient request that supports applications to determine whether the active Valgrind tool replaces themalloc()implementation. -
Added the
VALGRIND_GET_TOOLNAMEclient request that returns the name of the currently running Valgrind tool. -
Added support for Linux lightweight guard pages created with
madvise(MADV_GUARD_INSTALL). -
The minimum value accepted by the
--num-callersoption is2. -
On IBM Z (
s390x) systems, support for machine models older than z196 has been removed. -
On IBM Z (
s390x) systems, support has been added for new z/Architecture features introduced in the 15th edition. This supports running of binaries compiled with-march=arch15or-march=z17and support for MSA extensions 10 through 13. -
In Helgrind, a new
--show-events=0|1|2options have been added to control tracing of internal synchronization, threading, and memory events. -
In Helgrind, a new
--track-destroy=no|yes|alloptions have been added to detect missingpthread_mutex_destroy()andpthread_rwlock_destroy()calls.
Jira:RHEL-169431[1]
-
Added the
4.5. Networking Copy linkLink copied to clipboard!
bindrebased to 9.16.50The
bindpackage is rebased to upstream version 9.16.50. This update provides bug fixes and enhancements, including the following key changes:-
Adds
RESOLVER.ARPAto the built-in empty zones. -
Adds the new
reuseportandupdate-quotaconfiguration options. -
Deprecates the
auto-dnssecoption, which is removed in BIND 9.20.0. Migrate todnssec-policyinstead. -
Adds support for parsing and validating the
dohpathservice parameter in SVCB records. - Exposes the EDNS Client-Subnet (ECS) option to DLZ modules.
- Deprecates the Differentiated Services Code Point (DSCP) feature and outputs a warning when used.
- Significantly improves catalog zone performance.
-
Displays a warning when using zones with
dnssec-policywithout explicit configuration of dynamic DNS orinline-signing.
-
Adds
- The
ip linkcommand supports displaying the HSR protocol version With this update of the
iproutepackage, theip linkcommand supports displaying the High-availability Seamless Redundancy (HSR) protocol version configured on an interface. This improvement simplifies the verification of the HSR version in fault-tolerant Ethernet network environments.Jira:RHEL-134979[1]
- RHEL supports TCP-AO in networking sockets
With this enhancement, RHEL supports the TCP Authentication Option (TCP-AO) as specified in RFC 5925. This feature provides a secure alternative to the TCP-MD5 (RFC 2385) extension, which is vulnerable to cryptographic collision attacks due to known weaknesses in the MD5 algorithm.
System administrators and application developers can now deprecate TCP-MD5 and transition to the more secure TCP-AO authentication method. You can configure TCP-AO by using standard socket APIs, specifically the
setsockopt()system call, to bind TCP-AO keychains to active or listening sockets.For more information, see the
/usr/share/doc/kernel-doc-<version>/Documentation/networking/tcp_ao.rstfile provided by thekernel-docpackage.Jira:RHEL-142637[1]
- The
sendmail-milterpackage is available in the RHEL 9 AppStream repository The
sendmail-milterpackage has moved from the CodeReady Linux Builder (CRB) repository to the RHEL 9 AppStream repository. As a result, you can install thesendmail-milterpackage without enabling the CRB repository.
- The
nmcliutility can configure interfaces as managed or unmanaged With this enhancement, you can use the
nmcli device set <interface> managed --permanent <option>command to permanently configure whether NetworkManager manages an interface. You can use the following options:-
no: The interface is unmanaged, but its current kernel state is preserved. -
down: The interface is unmanaged, and its kernel state is immediately set to down. -
yes: The interface is managed, but its current kernel state is preserved. -
up: The interface is managed, and its kernel state is immediately set to up. reset: NetworkManager clears the management status of the interface and returns to defaults or more general configuration rules that might apply.If you do not require the flexibility to match multiple interfaces by certain criteria, such as wildcards, prefer
nmcliover creating a device section in the NetworkManager configuration files.
Jira:RHEL-157392[1]
-
- Nmstate supports IPIP, IP6IP6, IPIP6, and SIT interfaces
With this enhancement, you can use Nmstate to configure the following tunnel interfaces:
- IPv4 over IPv4 (IPIP)
- IPv4 over IPv6 (IPIP6)
- IPv6 over IPv6 (IP6IP6)
Simple Internet Transition (SIT)
In the Nmstate YAML file, you can configure all properties that NetworkManager supports for these interfaces, such as flow label, flags, and encapsulation limit.
- The
zl3073xDPLL driver supports precise phase synchronization The
zl3073xDigital Phase Locked Loop (DPLL) driver now supports reference-synchronization (ref-sync) pairing. With this feature, you can pair a high-frequency clock source with a separate, low-frequency synchronization signal, such as 1PPS or 8 kHz, by using hardware device tree settings.As a result, you can achieve highly accurate phase alignment in timing-sensitive environments where clock and sync sources are provided separately. The driver automatically handles frequency validation and manages reference priorities if a source disconnects, simplifying configuration and preventing errors.
Jira:RHEL-167274[1]
zl3073xDPLL driver rebased to version 7.1The
zl3073xDigital Phase Locked Loop (DPLL) driver has been upgraded to upstream version 7.1. The most notable changes are:- Runtime detection: The driver dynamically detects chip variants and channel counts. This eliminates the need for compile-time hardware selection and simplifies deployment.
- Temperature monitoring: Supported chip models include die temperature monitoring capabilities to enable critical diagnostics and device health assessments.
- Frequency tracking: New frequency tracking metrics improve troubleshooting and observability of clock synchronization infrastructure.
- State management: A structured caching system enhances internal state management and streamlines support for future chip variants.
Jira:RHEL-172939[1]
4.6. Kernel Copy linkLink copied to clipboard!
Red Hat Enterprise Linux 9.9 is distributed with the kernel version 5.14.0-741.11.1.
- New
kernelsysctl parameters to control memory reclaim aggressiveness Before this update, under sustained memory pressure, applications could remain on the memory direct reclaim path, reclaiming only small amounts of memory while severely degrading system performance and delaying or preventing the
kernelfrom invoking the out-of-memory (OOM) killer. With this enhancement, thekernelprovides two new sysctl parameters that adjust memory reclaim aggressiveness, giving you control over when the OOM killer is invoked under sustained memory pressure.The available sysctl parameters are:
-
sysctl_dr_prio_dropprovides a way to bail out earlier from the direct reclaim path by reducing the number of loops taken when scanning over pages. The normal reclaim path scansDEF_PRIORITYtimes (12 times), andsysctl_dr_prio_dropdecrements from that counter. The default value is0and can be increased up to12. sysctl_mem_cgroup_reclaim_retriesadjusts memory reclaim aggressiveness by controlling the number of reclaim retries within a cgroup. The default value is16and can be decreased down to0.As a result, when memory cannot be reclaimed efficiently, the
kernelinvokes the OOM killer as expected, preventing the reclaim path from stalling.
Jira:RHEL-100912[1]
-
- The CentOS Stream kernel enables Runtime Verification monitors
Before this update, the Runtime Verification (RV) monitors were compile-disabled for the CentOS Stream kernel. With this update, the kernel enables RV monitors, including the
schedandrtappmonitors, to improve kernel functionality and reduce latency for real-time applications.Jira:RHEL-116707[1]
- Custom eBPF program execution in the RTLA framework
With this update, the Real-Time Linux Analysis (RTLA) framework supports the execution of custom extended Berkeley Packet Filter (eBPF) programs, enabling low-latency responses to threshold overflows. You can also use a custom eBPF program to process timer latency in real time.
Jira:RHEL-153391[1]
- The
ima-evm-utilspackage enforces IMA appraisal on previously unevaluated file systems Before this update, the Integrity Measurement Architecture (IMA) policy did not appraise executables on certain file systems, such as
/proc,/sysfs, and/tmp. This gap allowed therootuser to execute modified executables on those file systems without IMA verification.With this update, the IMA policy appraises all execution attempts on these file systems, which reduces the attack surface. The only exception is temporary executable memory mapping, which the policy still allows to support libraries, such as
libffithat require it.As a result, IMA integrity enforcement is now more comprehensive, and modified executables on previously unevaluated file systems are no longer permitted to run without proper appraisal.
Jira:RHEL-153545[1]
rtla timerlatauto-analysis displays stack traces for EFI callsBefore this update, the
rtla timerlatauto-analysis (AA) tool omitted stack trace entries for kernel functions that could not be converted into symbols as well as any succeeding stack entries. With this release, a command-line option is available to control how the tool handles addresses for unknown functions, allowing the user to skip unknown addresses rather than stopping on them, or, alternatively, display all unknown addresses. As a result, you can identify latency spikes during automated tests more effectively.Jira:RHEL-155232[1]
- Kernel Samepage Merging can now deduplicate only zero pages
With this enhancement, the
kernelpackage provides a newredhat_only_zero_pagessysfs parameter for Kernel Samepage Merging (KSM). When you enable this parameter, KSM merges only pages whose content matches the zero page and skips all other pages during scanning. As a result, you can use KSM to combine zero-filled memory pages across the system without the overhead of deduplicating pages that have other content.This option is useful in the following scenarios:
- Virtualization hosts that run Microsoft Windows guests, which commonly fill large amounts of memory with zeros.
-
Systems that boot with the
init_on_free=1kernel parameter, which fills freed memory with zeros.
To enable the option, set the /sys/kernel/mm/ksm/redhat_only_zero_pages parameter to 1.
This option is also available in RHEL 10. As a result, OpenShift Virtualization nodes keep the same KSM behavior when you migrate them from RHEL 9-based Red Hat Enterprise Linux CoreOS (RHCOS) to RHEL 10-based RHCOS.
+ Jira:RHEL-185517[1]
libzpcversion 2 packages are availableRHEL introduces the
libzpc-providerandlibzpc-toolspackages to support security features on new IBM Z systems. Version 2 oflibzpcuses OpenSSL to provide these capabilities.Jira:RHEL-186086[1]
- MPAM support for virtual machines on ARM
This update adds support for Memory System Resource Partitioning and Monitoring (MPAM) on 64-bit ARM systems (also known as AArch64). With this feature, you can use the
resctrlfile system to monitor and allocate L3 cache and memory bandwidth on MPAM-compatible hardware, such as NVIDIA Grace-based systems. As a result, you can optimize workload performance, including the performance of virtual machines with assigned GPUs on 64-bit ARM hosts that use Grace-Hopper or Grace-Blackwell hardware.Jira:RHEL-164227[1]
4.7. Boot loader Copy linkLink copied to clipboard!
grub2provides support for booting from NVMe over Fibre Channel devices on IBM Power SystemsWith this release, the
grub2bootloader adds support for NVMe over Fibre Channel (NVMeoFC) on theppc64learchitecture. Previously,grub2could not discover or boot from NVMe namespaces presented over a Fibre Channel fabric, which limited the storage configurations available for the boot device on IBM Power Systems.As a result, you can now install and boot Red Hat Enterprise Linux from NVMeoFC-attached storage on IBM Power Systems. This support also includes booting from multiple NVMe boot paths, enabling multipath boot configurations for NVMeoFC devices.
Jira:RHEL-15853[1]
4.8. File systems and storage Copy linkLink copied to clipboard!
libaiorebased to version 0.3.112With this update, the
libaiolibrary is rebased to version 0.3.112 or later. This update reintroduces the asynchronous polling feature to improve I/O performance in database-centric workloads. This change restores feature and performance parity between RHEL 8 and RHEL 9.Jira:RHEL-192174[1]
4.9. High availability and clusters Copy linkLink copied to clipboard!
- New
pcscommands simplify the cluster node renaming workflow Before this update, renaming a cluster node required numerous manual configuration edits across multiple files.
This update adds thepcs cluster node rename-corosyncandpcs cluster node rename-cibcommands to automate and streamline the renaming process.As a result, you can rename cluster nodes with significantly fewer manual interventions, which reduces the risk of misconfiguration.
pcsvalidates resource and fencing operations during updates and additionsBefore this update, commands such as
pcs resource update … opandpcs resource op adddid not validate operation names or option values against the resource agent. As a consequence,pcssilently accepted unsupported operations or invalid values, which could lead to cluster misconfigurations.This update introduces strict validation checks to resource and stonith configuration update commands. If you specify an operation name that the agent does not support,
pcsreturns an error, though you can override this check using the--forceoption. Invalid option values (such asroleoron-fail) now trigger non-overridable errors, matching the existing behavior ofpcs resource create. Ifpcscannot load the agent metadata, it displays a warning but allows the command to proceed to avoid breaking existing automation workflows.Additionally, the
name=<value>syntax inpcs resource op addandpcs resource update … opis deprecated. You must pass the operation name as the first argument.Jira:RHEL-176268[1]
- The
sybaseASEresource agent requires explicitsybase_aseconfiguration The
sybaseASEresource agent requires you to explicitly configure thesybase_aseparameter instead of auto-detecting it from theSYBASE.envfile. This change was implemented to prevent probe operation failures whensybase_homeis a cluster-managed filesystem that is not yet mounted. As a result, monitor and stop operations return correct status codes even when thesybase_homefilesystem is unavailable during resource probing.Jira:RHEL-182808[1]
- The nfsserver resource agent monitors critical NFSv4 components
The
nfsserverresource agent actively monitors therpc.mountdandnfsdcldprocesses in addition to thenfs-server.serviceunit. This enhancement was implemented to prevent silent service degradation when these critical NFSv4 components terminate unexpectedly while the parentnfs-server.serviceremains active. As a result, the Pacemaker cluster detects component failures and initiates recovery actions, eliminating the need for manual systemd drop-in configurations to bind service lifecycles.Jira:RHEL-184272[1]
- Token-based authentication for the
fence_vmware_restfence agent The
fence_vmware_restfence agent supports token-based authentication as an alternative to password-based authentication. This feature was implemented to improve security by eliminating the need to store passwords in fence device configuration. As a result, you can configure passwordless authentication by using the--token-scriptparameter to specify a script that retrieves authentication tokens from the VMware vCenter API.Jira:RHEL-193739[1]
4.10. Compilers and development tools Copy linkLink copied to clipboard!
gdbpackage rebased to version 17.2With this release, the GNU Debugger (
gdb) is rebased to upstream version 17.2. This update provides multiple bug fixes and enhancements over the previously available version.Notable enhancements include the following:
- Added support for x86-64 Control-flow Enforcement Technology (CET) shadow stacks.
- Added support for debugging Linux programs that use AArch64 Guarded Control Stacks (GCS).
-
Extended the record feature to support the RISC-V
rv64gcarchitecture. -
Added built-in Thread-Local Storage (TLS) support on Linux as a fallback when
libthread_dbis not available, on thex86_64,aarch64,ppc64,s390x, andriscvarchitectures. -
Added the
-stoppedand-runningoptions to theinfo threadscommand to limit the list of displayed threads. -
Improved linker namespace support, including the
$_linker_namespaceand$linker_namespace_countconvenience variables. -
Enhanced the Python API, and added support for the
completionsrequest in the Debugger Adapter Protocol (DAP). Added support for emoji in output, which you can control with the new
set style emojicommand.This update also includes the following incompatible changes:
- Support for Python versions earlier than 3.4 is removed.
-
Support for the
stabsdebugging format and thea.out/dbxobject format is deprecated and will be removed ingdb18. -
Support for user-level statically defined tracing (UST) in
gdbserveris removed.
Jira:RHEL-126211[1]
- LLVM Toolset rebased to version 22.1.8
llvm-toolsetis rebased to upstream LLVM 22.1.8 in Red Hat Enterprise Linux 9.9. This update provides new features, bug fixes, and performance improvements over the previously shipped version.Notable changes include the following:
-
The
llvm-toolsetpackage is rebased from the LLVM 21.x release series to the LLVM 22.1.8 release series. -
Fixed an issue on the IBM Z (s390x) architecture that caused data corruption after the
concat_vectors(trunc(scalar), undef)operation. -
Fixed an issue where the
clang-22compiler crashed when building systemd. - Backported important fixes from the upstream LLVM project.
Removed the
llvm21compatibility package from the buildroot.For a complete list of changes, see the upstream LLVM release notes.
-
The
rustrebased to version 1.97The
rustpackage is updated to version 1.97. This update applies changes from upstream Rust versions 1.93 through 1.97, providing multiple bug fixes, enhancements, and security fixes over the previous version.With this update, Rust switches to the v0 symbol mangling format. This change is not visible to most users. However, if you are debugging, using a sampling profiler such as
perf, or using any other tool that inspects binaries, the raw symbol names differ and might not print in the demangled form. The v0 format provides more accurate demangling of symbols, notably for generic types. Thegcc-toolset-12package and later versions support this format, butperfon RHEL 9 does not.Other notable changes are:
-
The new
core::rangetypes (Range,RangeFrom, andRangeInclusive) now implement theCopytrait. These are distinct from the long-standing range types incore::ops, which do not implementCopy. Unlike the older types, the newcore::rangetypes are not iterators directly, but are convertible into iterators throughIntoIterator. -
The
<[T]>::array_windowsmethod provides fixed-length sliding windows over slices with compile-time known sizes, improving SIMD optimization opportunities. -
The
assert_matches!anddebug_assert_matches!macros are now available in the standard library, producing more informative failure output thanassert!(matches!(..)). -
The
cfg_select!macro provides a built-in alternative to thecfg-ifcrate for compile-time configuration matching. -
The
if letguards are now supported inmatchexpressions, allowing pattern-based conditionals within match arms. -
Cargo now supports TOML 1.1 for the
Cargo.tomlproject manifest and the.cargo/config.tomlconfiguration file.
-
The new
- The
gcc-toolset-16package is available -
GCC Toolset 16 is a compiler toolset that provides recent stable versions of development tools. It is available as an Application Stream, delivered as a Software Collection in the AppStream repository. You can install the toolset by using the
gcc-toolset-16package, which pulls in the complete tool suite as a dependency.
GCC Toolset 16 installs to the /opt/rh/gcc-toolset-16/ directory. As a result, you can use it alongside the system version of GCC without changing the default compiler.
To install and use GCC Toolset 16, run the following commands:
-
To install the toolset, enter the
dnf install gcc-toolset-16command. -
To run a tool from the toolset, enter the
gcc-toolset-16-env bashcommand. -
To start a shell session in which the toolset versions of the tools take precedence, enter
scl enable gcc-toolset-16 bash.
GCC 16 introduces changes that can require updates to existing code. Notable changes are:
-
The default language version for C++ compilation changes from
-std=gnu{pp}17to-std=gnu{pp}20. Code that requires an older standard must set it explicitly. -
The
jsonformat for-fdiagnostics-format=is removed. Use the SARIF format for machine-readable diagnostics instead. -
The ABI of
std::variantis updated for C++20 conformance. -
std::generate_canonicalis updated to match the latest specification. -
Template and other diagnostics are displayed with nested indentation by default. To restore the previous output, use
-fno-diagnostics-show-nesting. - On the AArch64 architecture, PC-relative literal loads are deprecated.
-
On the 64-bit x86 architecture, several deprecated ISA features are removed from the
-march=options.
For more information about porting your code, see Porting to GCC 16.
- New
gcc-toolset-16-gccpackage in GCC Toolset 16 -
The
gcc-toolset-16-gccpackage is available in RHEL 9.9 as part of GCC Toolset 16 and provides version 16.2.1 of the GNU Compiler Collection (GCC). GCC Toolset is a Red Hat offering that provides more recent versions of development tools alongside the versions that ship with the base RHEL system. The GCC Toolset tools are available as an Application Stream and do not replace the default system compiler.
To install the gcc-toolset-16-gcc package, run the dnf install gcc-toolset-16 command. This metapackage also installs the matching gcc-toolset-16-binutils package.
This update of GCC provides many bug fixes and enhancements over the version in the previous GCC Toolset.
General improvements:
- Link-Time Optimization (LTO) handles top-level assembly statements more effectively.
- The vectorizer gains enhancements for in-loop reduction parallelism and for loops whose iteration count cannot be determined at compile time.
- Speculative devirtualization is extended to general indirect function calls.
-
New experimental HTML diagnostic output is available through the
-fdiagnostics-add-output=experimental-htmloption. - The SARIF diagnostic format provides improved metadata and nested location tracking.
- The static analyzer adds basic C++ support, including Named Return Value Optimization and exception handling.
The C language:
-
The
counted_byattribute is extended to pointer-type members for better compile-time and runtime bounds checking of flexible array members. -
The new
_Maxofand_Minofoperators determine the maximum and minimum representable values of integer types at compile time. - Compound literals with empty initializers can have a variable size.
The C++ language:
-
The default C++ standard changes from
-std=gnu++17to-std=gnu++20. Code that requires an earlier standard should specify it explicitly, for example by using-std=gnu++17. -
GCC 16 adds support for several C++26 features, including Reflection, Expansion statements, Contracts, and
constexprexceptions. -
The
libstdc++library adds C++26 components such asstd::simd,std::inplace_vector,std::optional<T&>, andstd::copyable_function, and marks the C++20 components as supported. - GCC 16 adds support for several C++23 features, including a change to the scope of lambda trailing return types, explicit lifetime management, and character encoding of diagnostic text.
-
Experimental support for C++20 modules is improved. The new
--compile-std-moduleoption builds the standard library header unit and thestdandstd.compatmodules before compiling the specified source files. C++20 modules support remains experimental and is enabled by using the-fmodulesoption.
The Fortran language:
-
Coarrays are supported through native shared-memory multithreading, including the
TEAMfeature. -
GCC 16 adds support for the
REDUCEintrinsic, theGENERICstatement, and selected Fortran 2023 features such as thesinpiintrinsic and thesplitsubroutine.
Architecture-specific improvements:
-
On AMD and Intel 64-bit systems, GCC 16 adds support for AMD Zen 6 processors (
-march=znver6) and Intel Wildcat Lake and Nova Lake processors. - On the 64-bit ARM architecture, GCC 16 adds support for the Armv9.6-A architecture and new CPUs, and Function Multi Versioning (FMV) is fully supported.
On the 64-bit IBM Z architecture, GCC 16 adds support for the
_BitInt(N)and_Float16types.
- New
gcc-toolset-16-binutilspackage is available With this enhancement, the
gcc-toolset-16-binutilspackage is available as part of GCC Toolset 16. This package provides version 2.46 of the GNU binary utilities, including theldlinker, theasassembler, and utilities such asobjdump,readelf,nm, andstripfor creating, inspecting, and modifying object files, archives, and other binaries.This version of the binary utilities provides the following notable enhancements:
- The utilities add support for new instructions in the AMD, Arm, and RISC-V architectures.
- The utilities add support for version 3 of the SFrame stack trace format
-
You can display the contents of Global Offset Tables (GOT) by using the
readelftool. - Improved linker tagging support
- Improved performance of string and memory functions on AMD Zen 5 processors
The
glibcpackage provides 512-bit EVEX instruction variants of several string and memory functions by default on supported AMD Zen 5 processors. This change takes full advantage of the native 512-bit execution units on newer AMD hardware to increase execution throughput and can reduce execution time by up to 64 percent. The affected functions includestrchr,strlen,strnlen,strrchr,strchrnul, andmemchr.In addition, a new runtime tunable,
glibc.cpu.x86_cpu_features.preferred, is available. You can use this tunable to manually control the hardware feature preference.Jira:RHEL-175520[1]
4.11. Identity Management Copy linkLink copied to clipboard!
- Performance of user lookups for users with large group memberships has been improved
Previously, when an LDAP user belonged to a large number of groups, for example 5,000 or more, user lookup operations such as
id <username>took several minutes or timed out completely. This issue occurred because SSSD handled local database operations and group membership caching inefficiently during lookups.With this update, SSSD includes multiple performance optimizations for user lookups and group membership handling. While these improvements apply to all configurations, they are most noticeable in RFC 2307 environments without nested groups. As a result, user lookups for users with thousands of group memberships complete faster and no longer time out.
- SSSD supports mapping Active Directory AMA SIDs to authentication indicators
With this enhancement, SSSD introduces the
pam_gssapi_indicators_applyconfiguration option. SSSD uses this option to map Security Identifiers (SIDs) from a Kerberos ticket Privilege Attribute Certificate (PAC) to authentication indicators duringpam_sss_gssrequests. This provides support for Active Directory Authentication Mechanism Assurance, which uses SIDs to track authentication methods such as smart card logins.Administrators can define mapping rules in
sssd.confusingSID:<SID>:<authentication_indicator>triples. As a result, applications relying onpam_sss_gss.socan enforce access restrictions based on Active Directory authentication methods in the same way as IdM.Jira:RHEL-152067[1]
- python-qrcode rebased to 8.0
The
python-qrcodepackages have been rebased to upstream version 8.0. This version provides important fixes and enhancements, most notably the following:- Support for Python 3.11 and 3.12 is available.
-
The
typing_extensionsruntime dependency is removed.
- Passwordless authentication mechanisms are available in GDM (Technology Preview)
Identity Management (IdM) administrators can configure the GNOME Display Manager (GDM) login screen to display multiple authentication mechanisms. In addition to existing smart card authentication, administrators can enable new passwordless methods, such as external identity providers (EIdP) and FIDO2-compatible passkeys. Enable the
with-switchable-authfeature inauthselectand configure the System Security Services Daemon (SSSD) to allow users to choose their preferred credential directly at login.Passwordless authentication aligns with zero trust architecture by replacing static passwords with cryptographic proof that verifies both user identity and device integrity for each access request. For detailed configuration instructions, see Enabling authentication mechanism selection in GDM by using SSSD.
Jira:RHEL-156519[1]
openldaprebased to 2.6.13The
openldappackages, which provide Lightweight Directory Access Protocol (LDAP) client utilities and libraries, have been rebased to upstream version 2.6.13. This rebase includes the following fixes from the intervening upstream releases:-
The
libldaplibrary prevents out-of-bounds memory access when parsing schema definitions. -
The
liblberlibrary avoids a potential null pointer dereference if memory allocation fails when replacing a value. -
The
libldaplibrary rejects empty attribute types in LDAP Data Interchange Format (LDIF) input and correctly handles NUL bytes when parsing schema definitions and LDIF input. -
The
ldap_result()function correctly handles theLDAP_MSG_RECEIVEDmode. -
The
libldaplibrary correctly handles failures when configuring OpenSSL cipher suites or performing digest operations.
Jira:RHEL-157475[1]
-
The
- python-jwcrypto rebased to 1.5.7
The
python-jwcryptopackages have been rebased to upstream version 1.5.7. This version provides important fixes and enhancements, most notably the following:- Ed25519 and Ed448 signature algorithm support is available.
- JWE general serialization syntax support is available.
- HMAC key length enforcement is applied for improved security hardening.
389-ds-baserebased to 2.9.0The
389-ds-basepackages, which provide the 389 Directory Server, have been rebased to upstream version 2.9.0. This version provides the following fixes and enhancements:- Directory Server threads have names visible to operating system diagnostic tools.
- Work queue metrics help administrators identify processing backlogs.
- Lightweight Directory Access Protocol (LDAP) bind operations handle escaped interior spaces in distinguished names correctly.
- The healthcheck tool limits MemberOf index recommendations to backends within the plug-in scope.
- Directory Server shuts down cleanly when deferred MemberOf updates are in progress.
- Directory Server threads have OS-visible names for diagnostics
Directory Server uses
pthread_setname_npto assign OS-level names to allns-slapdthreads. The server designates worker threads asworker-0throughworker-Nand applies descriptive names likelistener,repl-prot, andrepl-inc-resto other threads. All names stay within the 15-character Linux limit. This enhancement enables support engineers and administrators to identify thread purpose directly in tools such aspstack,top -H, andperfoutput without correlating thread IDs against internal data structures.Jira:RHEL-174525[1]
python-ldaprebased to 3.4.7The
python-ldappackages, which provide a Python application programming interface (API) for Lightweight Directory Access Protocol (LDAP) servers, have been rebased to upstream version 3.4.7. This rebase includes the following fixes from the intervening upstream releases:-
The
python-ldaplibrary validates theattrlistparameter before use to prevent memory errors caused by type mismatches. -
The
ReconnectLDAPObjectclass reconnects afterUNAVAILABLE,CONNECT_ERROR, andTIMEOUTerrors, improving recovery during server restarts. -
The
ldap.filter.escape_filter_charsfunction requiresstrinput whenescape_mode=1and correctly escapes filter values. -
The
ldap.dn.escape_dn_charsfunction correctly escapes NUL characters as\00in distinguished names. -
The
extop.ddsmodule correctly handlesrequestNameandrequestValue. -
The
ldifandldap.schemamodules close sockets when they finish using them.
Jira:RHEL-183876[1]
-
The
python-pyasn1rebased to 0.6.4The
python-pyasn1packages, which provide tools for encoding and decoding Abstract Syntax Notation One (ASN.1) data in Python, have been rebased to upstream version 0.6.4. This version provides the following security fixes:- Object identifier and relative object identifier decoders process identifiers in linear time, avoiding excessive processor use from specially crafted input.
- Decoders reject long-form tag identifiers longer than 20 octets, preventing excessive processor and memory use.
-
Conversion of ASN.1
REALvalues with large decimal exponents to Python floating-point values avoids excessive processor and memory use.
Jira:RHEL-211095[1]
- The LMDB backend in Directory Server is fully supported
The Lightning Memory-Mapped Database (LMDB) backend in
389-ds-base, available as a Technology Preview before this update, is fully supported starting with RHEL 9.9. As a result, you can use the LMDB backend for Directory Server databases in production environments with full support.
iparebased to 4.13.4The
ipapackages, which provide centralized Identity Management (IdM) services for managing users, hosts, authentication, and access policies, have been rebased to upstream version 4.13.4. This version provides important fixes and enhancements, most notably the following:- Passwordless authentication methods remain available when a user’s password has expired. Password-based methods still enforce password expiration.
-
The
ipa-otpdauthentication service no longer crashes during passkey authentication. -
The
ipa-migratetool skips replication-conflict entries instead of failing while importing them. -
The
ipa-migratetool migrates Domain Name System (DNS) locations and users' Secure Shell (SSH) public keys. - Identity Management (IdM) server installation avoids an approximately two-minute delay.
Jira:RHEL-238684[1]
- The
ipauserandipagroupAnsible modules support a new query state for lookups The
ipauserandipagroupmodules in theansible-freeipapackage support a newquerystate that retrieves information about Identity Management (IdM) users and groups without modifying them. You can control which fields the query returns by using thequery_paramoption, which acceptsBASEfor the essential fields,ALLfor the complete field set,PKEY_ONLYfor primary keys only, or a custom list of specific field names. As a result, you can register the output and consume it later in the same playbook to drive conditional tasks, build reports, or audit existing entries.
4.12. SSSD Copy linkLink copied to clipboard!
authselectdisables group merging by defaultThe
authselectutility disables group merging by default. Most deployments do not require group merging, and disabling it prevents group lookups from contacting every identity provider to improve system performance.If your environment requires the system to combine group records from multiple Name Service Switch (NSS) sources, you must enable the feature by running the
authselect enable-feature with-group-mergingcommand.Previously,
authselectenabled group merging by default. This forced all group lookups to contact local files, SSSD, and systemd, which caused severe performance degradation under certain conditions.Jira:RHEL-94650[1]
4.13. The web console Copy linkLink copied to clipboard!
cockpitrebased to version 366The
cockpitpackages are rebased to upstream version 366, which provides important bug fixes and enhancements over the previous version. Notable changes include:- The web console adds Wi-Fi support to the Networking page, where you can manage wireless interfaces and connections without command-line utilities.
- When you create a new network interface, the web console no longer activates the interface by default. Instead, the web console redirects you to the detail page for the new interface. This change ensures that you can fully configure the interface, such as a VLAN interface, before you manually activate it.
- The
MaxConcurrentConnectionsconfiguration option is available With the release of the RHSA-2026:98463 advisory, you can configure
MaxConcurrentConnectionsin the[WebService]section of the/etc/cockpit/cockpit.conffile to restrict concurrent HTTP connections on the web console port. Connection attempts that exceed the specified limit are rejected immediately before the server processes inbound traffic. This helps protect the system against denial-of-service (DoS) and socket exhaustion.The default limit is
500. Unlike theMaxStartupsoption, which limits concurrent unauthenticated login attempts,MaxConcurrentConnectionsdrops excess connections at the HTTP layer.Jira:RHELDOCS-22919[1]
4.14. Red Hat Enterprise Linux System Roles Copy linkLink copied to clipboard!
- The
timesync_ntp_serverslist supports authentication keys The
timesync_ntp_serverslist includes a newkeyparameter that specifies an authentication key for a Network Time Protocol (NTP) server. The key value includes the key ID, an optional type, and the key string, as described in the chrony.conf file documentation. To secure the key, encrypt it by using Ansible Vault. As a result, you can ensure that time synchronization between managed hosts and NTP servers is authenticated.Jira:RHEL-145210[1]
- The
podmanRHEL system role supports restarting Quadlet services when dependent files or secrets change With this update, the
podmanRHEL system role provides two new parameters,restartsandrestarts_on, that enable Quadlet services to automatically restart when their file or secret dependencies change. You can use these parameters to manage service restarts:-
restarts: Add this parameter to a file or secret item to specify which services to restart when that file changes. restarts_on: Add this parameter to a container to specify which files or secrets trigger a restart of the associated service.As a result, this enhancement ensures that configuration changes or updated secrets, such as passwords, tokens, or keys, take effect without requiring manual intervention. The Quadlet services restart automatically when the files and secrets they depend on are changed.
Jira:RHEL-145225[1]
-
sshdsupports theGSSAPIAllowS4U2SelfandGSSAPIProxyS4U2ServicesoptionsWith this update, the
sshdRHEL system role supports theGSSAPIAllowS4U2SelfandGSSAPIProxyS4U2Servicesconfiguration options. As a result, you can set the RHEL system role variables to manage Kerberos S4U credential delegation settings in thesshd_configfile across managed hosts.Jira:RHEL-167858[1]
- The
auditdRHEL system role automates audit logging management This update introduces a new
auditdRHEL system role, which uses Ansible to automate management of the Linux Audit daemon. You can configure daemon settings in/etc/audit/auditd.conf, and deploy persistent audit rules to/etc/audit/rules.d/.With this system role, you can standardize audit logging across your infrastructure without writing custom playbooks or service workaround scripts. As a result, service reloads and policy updates run safely across managed systems without interrupting management workflows or violating daemon lifecycle constraints.
- The
trustee_serverandtrustee_clientRHEL system roles are available RHEL 9.9 introduces the
trustee_serverandtrustee_clientRHEL system roles to automate the deployment of Trustee server components and the configuration of Trustee clients for confidential computing.The
trustee_serverrole uses Podman Quadlets to deploy the following server components:- Trustee Key Broker Service (KBS)
- Attestation Service (AS)
- Reference Value Provider Service (RVPS)
- Secret Registration Server, which verifies attestation-backed registration requests and stores disk encryption keys in the Trustee KBS
The
trustee_clientrole configures confidential virtual machines (CVMs) to authenticate against the Trustee server. The role configures the following client components:- Attestation Agent, which collects system measurements and generates attestation reports.
- Confidential Data Hub (CDH), which manages communication with the KBS to retrieve secrets and disk encryption keys.
- API Server REST, which provides a local interface for confidential workloads to request secrets.
Jira:RHEL-175618[1]
- The
firewallRHEL system role reloads thefirewalldservice only if actual changes are detected With this enhancement, the
firewallRHEL system role uses an in-memory backend to apply user-defined changes and compare the resulting configuration to the current configuration. Previously, the role recreated configuration files and reloaded thefirewalldservice during every execution to determine if the state had changed. This caused unnecessary service reloads in environments where the configuration had not actually been modified. With this update, the role calculates the configuration difference in memory. As a result, this enables correct operation in Ansible check and diff modes to ensure that thefirewalldservice is only reloaded when actual changes are detected.Jira:RHEL-176144[1]
crypto-policiesautomatically detects configuration changes and supports forced policy regenerationWith this enhancement, the
crypto-policiesRHEL system role uses theupdate-crypto-policies --checkcommand to verify whether the policy configuration has changed and automatically regenerates the policy if necessary. Additionally, if you modify the policy configuration outside of the system role, you can set thecrypto_policies_force_regeneratevariable totrueto force regeneration.As a result, you can modify policy files manually on your managed hosts and keep cryptographic policies fully synchronized.
Jira:RHEL-181360[1]
- The
certificateRHEL system role can manage the system certificate trust store With this enhancement, you can use the new
certificate_trustvariable of thecertificateRHEL system role to add certificates or to remove them from the system certificate trust store. As a result, you can automate which Certificate Authority (CA) certificates are trusted by RHEL applications that use the system-wide store.Jira:RHEL-210678[1]
- The
fapolicydsystem role replacesfapolicyd_add_trusted_filewithfapolicyd_add_trusted_paths With this update, the
fapolicydsystem role introduces thefapolicyd_add_trusted_pathsvariable, which supports both individual files and non-empty directories. This variable replaces and deprecatesfapolicyd_add_trusted_fileto eliminate naming ambiguity around supported path types.Jira:RHEL-219366[1]
4.15. Virtualization Copy linkLink copied to clipboard!
- Support for AMD SecureTSC in SEV-SNP guests
With this update, virtual machines (VMs) that run a RHEL 9 guest operating system and are configured with Secure Encrypted Virtualization with Secure Nested Paging (SEV-SNP) can also use the Secure Timestamp Counter (SecureTSC) feature. SecureTSC prevents the hypervisor from altering the guest’s TSC after booting, which secures guest operations that use the Read Time-Stamp Counter (RDTSC) and Read Time-Stamp Counter and Processor ID (RDTSCP) instructions.
Jira:RHEL-10048[1]
4.16. Supportability Copy linkLink copied to clipboard!
- The
sos uploadcommand supports the Red Hat Customer Portal GraphQL API The
sosutility uses the Red Hat Customer Portal GraphQL API to upload diagnostic archives and attachments to support cases.With this enhancement, the
sos uploadandsos report --uploadcommands interact directly with the updated Customer Portal backend, ensuring reliable and secure data transfer during support case engagement.Jira:RHEL-282625[1]
- You can generate uncompressed sos reports
With this update, you can generate uncompressed sos reports by using the
--compression-type=noneoption. This option uploads core dumps faster and quickly restores hosts to service.
- Optimizing
sos cleanutility performance With this update, the
sos cleanutility is optimized for improved performance.As a result, the improved SOS cleaner ensures faster execution without any regression in sanitization and enhances overall efficiency for end users.
4.17. Containers Copy linkLink copied to clipboard!
- The podman system service command supports TLS and mutual TLS (mTLS) encryption and client authentication for TCP sockets
Before this update, the Podman API service running over a TCP socket did not support native TLS encryption or client certificate authentication. As a consequence, securing TCP sockets to satisfy security compliance standards, such as CIS benchmarks, required configuring and maintaining external proxy software, such as HAProxy.
With this update, you can configure TLS and mTLS encryption and authentication directly through the
podman system servicecommand without external proxy software. This simplifies system architecture and enables secure remote API communication to security compliance standards.
podman-pysupports setting startup health check options during container creationBefore this update, you could configure a
startup health checkcommand during container creation only by using the Podman command-line interface (CLI).With this update, the
podman-pylibrary supports setting startup health check parameters when you create a container by using thecontainers.create()method. As a result, you can define startup health checks in Python automation without relying on the CLI.For more information, see Container create options
Jira:RHEL-140716[1]
- The container tools meta-packages have been updated
The updated Container Tools RPM meta-package, which includes the Podman, Buildah, and Skopeo is available. The buildah package has been updated to version 1.43.2, Skopeo has been updated to version 1.22.2, and Podman has been updated to version 5.8.5. The notable bug fixes and enhancements over the previous version are:
-
Support is removed for running checkpoint images with the
podman runcommand. Before this update, running a checkpoint image (any image with theio.podman.annotations.checkpoint.runtime.nameannotation) could disable all sandboxing, including specified sandboxing when the container was created. With this update,podman runno longer accepts checkpoint images because of the different security models of running images and running checkpoints. -
The
podman loadandpodman volume importcommands are hardened against crafted archives. Before this update, importing images that contained crafted layer tarballs or volumes that contained crafted symbolic links could overwrite files on the host. With this update, those import paths no longer authorise that overwrite. -
The
podman quadlet install --replacecommand correctly truncates the file that it replaces. Before this update, replacing a longer Quadlet file with a shorter one could leave leftover content from the original file. With this update, the replaced file is truncated so that only the new content remains. -
Containers that are based on a malicious image no longer inherit host environment variables through malformed
Enventries. Before this update, a crafted image could leak host environment variables into containers, including the use of the*glob to leak many variables without knowing their exact names. With this update, those malformedEnventries do not leak host environment variables. -
Podman virtual machines on macOS that use the
libkrunprovider are no longer shut down unexpectedly by host port-scanning activity that unintentionally commands the VM to power off. -
The remote Podman client
podman savecommand on Linux succeeds when you use the-f oci-diror-f docker-dirformat options. Before this update, those formats caused the command to fail.
-
Support is removed for running checkpoint images with the
- New container images are available
The
ubi9/dotnet-110,ubi9/dotnet-110-aspnetandubi9/dotnet-110-runtimeare now available in the Red Hat Container Registry. The notable enhancements for each image are:-
ubi9/dotnet-110: You can use this container image as a base platform to build and run various .NET 11.0 applications. It includes the .NET 11.0 software development kit (SDK). .NET is a general-purpose development platform with automatic memory management and modern programming languages. -
ubi9/dotnet-110-aspnet: You can use this container image as a base image to run pre-built, framework-dependent ASP.NET Core applications. It includes the ASP.NET Core 11.0 Runtime. -
ubi9/dotnet-110-runtime: You can use this container image as a base image to run pre-built, framework-dependent .NET applications. It includes the .NET 11.0 Runtime. To run framework-dependent ASP.NET Core applications, use theubi9/dotnet-110-aspnetcontainer image instead. -
rhel-9/gcc-toolset-16-toolchain: The container image provides a base image with essential libraries and tools for building C and C++ applications.
Jira:RHELDOCS-22303[1]
-
- Backend of
bootc-image-buildermigrated toimage-builder-cli With this update, the
bootc-image-builderutility usesimage-builder-clias its backend. This update aligns the tool with upstream releases to deliver faster feature updates and security fixes while maintaining backward compatibility with your existing commands and workflows.Jira:RHELDOCS-22243[1]