CVE-2026-19730: Incomplete Cleanup in Red Hat Red Hat Ansible Automation Platform 2
The 'podman quadlet install --replace' command opens the existing destination file with O_CREATE|O_WRONLY but omits O_TRUNC. When the initial reflink copy attempt fails (common on non-reflink-capable filesystems including many RHEL default XFS configurations), the fallback in ReflinkOrCopy uses io.Copy which performs a non-truncating write. If the original Quadlet is larger than the new Quadlet, the file is not truncated and content from the original is preserved. The command completes with no warning. There is no risk of information leakage as the user already had access to the Quadlet in order to replace it, and in most cases, this would only lead to invalid Quadlet files. However, security-related options from the end of the old Quadlet could be included in the new Quadlet, and if the truncation resulted in a valid Quadlet file, this could result in undesirable behavior. For example, running podman quadlet install --replace to remove a single line from the end of a Quadlet - including security-sensitive content, like AddCapability - will fail, and the option will continue to be used. Further, with Volume Quadlets, this can include additional mounts which can cause content to be unintentionally exposed into containers. If, later, the image is updated then compromised content might be leaked to an attacker. The vulnerable code paths are in pkg/domain/infra/abi/quadlet.go (lines 338-360, O_CREATE|O_WRONLY without O_TRUNC) and vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go (lines 12-19, non-truncating io.Copy fallback).
AI Analysis
Technical Summary
The vulnerability in Podman 5.8.x arises because the 'podman quadlet install --replace' command opens the destination file with O_CREATE|O_WRONLY but omits the O_TRUNC flag. When the reflink copy fails on non-reflink-capable filesystems (common in RHEL default XFS), the fallback uses io.Copy which does not truncate the file. If the original Quadlet file is larger than the new one, leftover content from the original remains, potentially including security-sensitive directives such as AddCapability or additional mounts. This can cause the Podman configuration to retain revoked host-access directives, leading to unintended behavior or exposure of host content inside containers. The flaw does not grant new privileges or leak information directly but fails to enforce configuration changes as intended. The vulnerable code is located in pkg/domain/infra/abi/quadlet.go and vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go. The issue was resolved in Podman 6.0.0 with patches available at the referenced GitHub commit.
Potential Impact
The vulnerability can cause Podman to retain security-sensitive options from previous Quadlet files when replacing them, potentially leading to unintended host resource exposure inside containers or continued use of revoked capabilities. There is no direct information leakage risk since the user must already have access to the Quadlet files to perform the replacement. The impact is limited to failure to enforce configuration changes, which may result in undesirable container behavior or exposure of host mounts. The CVSS score is 4.2 (medium), reflecting low confidentiality, integrity, and availability impacts with local attack vector, high attack complexity, and required user interaction.
Mitigation Recommendations
A fix is available and was implemented in Podman version 6.0.0. Users should upgrade to Podman 6.0.0 or later to resolve this issue. Alternatively, as a workaround, users can manually copy Quadlet files to the Quadlet directory or remove the destination file before running 'podman quadlet install' without the --replace option. These workarounds prevent the non-truncating write behavior. Refer to the official Red Hat advisory and the Podman GitHub commit (https://github.com/podman-container-tools/podman/commit/a38a9b7d20915c55e6f3c451101ae72d6da33742) for patch details.
CVE-2026-19730: Incomplete Cleanup in Red Hat Red Hat Ansible Automation Platform 2
Description
The 'podman quadlet install --replace' command opens the existing destination file with O_CREATE|O_WRONLY but omits O_TRUNC. When the initial reflink copy attempt fails (common on non-reflink-capable filesystems including many RHEL default XFS configurations), the fallback in ReflinkOrCopy uses io.Copy which performs a non-truncating write. If the original Quadlet is larger than the new Quadlet, the file is not truncated and content from the original is preserved. The command completes with no warning. There is no risk of information leakage as the user already had access to the Quadlet in order to replace it, and in most cases, this would only lead to invalid Quadlet files. However, security-related options from the end of the old Quadlet could be included in the new Quadlet, and if the truncation resulted in a valid Quadlet file, this could result in undesirable behavior. For example, running podman quadlet install --replace to remove a single line from the end of a Quadlet - including security-sensitive content, like AddCapability - will fail, and the option will continue to be used. Further, with Volume Quadlets, this can include additional mounts which can cause content to be unintentionally exposed into containers. If, later, the image is updated then compromised content might be leaked to an attacker. The vulnerable code paths are in pkg/domain/infra/abi/quadlet.go (lines 338-360, O_CREATE|O_WRONLY without O_TRUNC) and vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go (lines 12-19, non-truncating io.Copy fallback).
CVSS v3.1
Score 4.2medium
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Podman 5.8.x arises because the 'podman quadlet install --replace' command opens the destination file with O_CREATE|O_WRONLY but omits the O_TRUNC flag. When the reflink copy fails on non-reflink-capable filesystems (common in RHEL default XFS), the fallback uses io.Copy which does not truncate the file. If the original Quadlet file is larger than the new one, leftover content from the original remains, potentially including security-sensitive directives such as AddCapability or additional mounts. This can cause the Podman configuration to retain revoked host-access directives, leading to unintended behavior or exposure of host content inside containers. The flaw does not grant new privileges or leak information directly but fails to enforce configuration changes as intended. The vulnerable code is located in pkg/domain/infra/abi/quadlet.go and vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go. The issue was resolved in Podman 6.0.0 with patches available at the referenced GitHub commit.
Potential Impact
The vulnerability can cause Podman to retain security-sensitive options from previous Quadlet files when replacing them, potentially leading to unintended host resource exposure inside containers or continued use of revoked capabilities. There is no direct information leakage risk since the user must already have access to the Quadlet files to perform the replacement. The impact is limited to failure to enforce configuration changes, which may result in undesirable container behavior or exposure of host mounts. The CVSS score is 4.2 (medium), reflecting low confidentiality, integrity, and availability impacts with local attack vector, high attack complexity, and required user interaction.
Mitigation Recommendations
A fix is available and was implemented in Podman version 6.0.0. Users should upgrade to Podman 6.0.0 or later to resolve this issue. Alternatively, as a workaround, users can manually copy Quadlet files to the Quadlet directory or remove the destination file before running 'podman quadlet install' without the --replace option. These workarounds prevent the non-truncating write behavior. Refer to the official Red Hat advisory and the Podman GitHub commit (https://github.com/podman-container-tools/podman/commit/a38a9b7d20915c55e6f3c451101ae72d6da33742) for patch details.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- redhat
- Date Reserved
- 2026-08-13T13:07:39.303Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
- Vendor Advisory Urls
- [{"url":"https://access.redhat.com/security/cve/CVE-2026-19730","vendor":"Red Hat"}]
Threat ID: 6a7e08efbf8831d5399b798e
Added to database: 08/13/2026, 18:11:59 UTC
Last enriched: 08/13/2026, 18:27:59 UTC
Last updated: 08/13/2026, 18:56:57 UTC
Views: 4
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.