Debian Patches
Status for ironic/1:29.0.5-0+deb13u3
| Patch | Description | Author | Forwarded | Bugs | Origin | Last update |
|---|---|---|---|---|---|---|
| adds-alembic.ini-in-MANIFEST.in.patch | Fixes MANIFEST.in so that alembic.ini is packaged | Thomas Goirand <zigo@debian.org> | no | 2016-03-22 | ||
| fix-initial_grub_cfg.template.patch | Fix initial_grub_cfg.template The default grub.cfg happen /srv/tftp, but tftp-hpa is, in Debian, already doing a chroot in there. |
Thomas Goirand <zigo@debian.org> | no | 2024-09-16 | ||
| do-not-print.patch | Do not print Without this patch, we're getting: . File "/<<PKGBUILDDIR>>/ironic/tests/unit/api/base.py", line 115, in _request_json print(method.upper(), full_path, "WITH", params, "GOT", str(response)) BlockingIOError: [Errno 11] write could not complete without blocking . about 60 times (not always the same number of times...). =================================================================== |
Thomas Goirand <zigo@debian.org> | not-needed | 2023-10-05 | ||
| CVE-2026-44916_Use_sandbox_rendering_for_jinja2.patch | CVE-2026-44916: security: Use sandbox rendering for jinja2 Analysis revealed that a malicious attacker with sufficent access to request a node to be provisioned could supply a maliciously crafted kickstart template configuration, which would then be rendered in an unsafe form ultimately. . This is because the underlying render utility was modeled for rendering only admin-suppied files or the in-code tree files. Anaconda had to take this further by allowing the jinja utilized to be user supplied. . Anyhow, an attacker with sufficient access, an ironic deployment with the anaconda deploy interface, a node with the anaconda deployment interface set by an admin, and a malicious template could result in conductor internal data being rendered and if the infrastucture operator is allowing traffic egress for the provisioning network, could have sensitive internal data exfiled out of the environment. . The render helper has been changed to utilize a sandboxed environment. Attacks such as this now internally raise a Jinja2 SecurityError. diff --git a/ironic/common/utils.py b/ironic/common/utils.py index b126668..0182173 100644 |
Julia Kreger <juliaashleykreger@gmail.com> | yes | upstream | upstream, https://review.opendev.org/c/openstack/ironic/+/987776 | 2026-05-08 |
| CVE-2026-44919_move_file_url_validation_up_into_deploy_utils_main_path.patch | CVE-2026-44919: move file url validation up into deploy_utils main path An issue was discovered where we were executing checksums prior to doing file path guard logic. We've moved the check into the same area of the code where we do all other url checks for consistency. . This issue is tracked as CVE-2026-44919. . diff --git a/ironic/common/image_service.py b/ironic/common/image_service.py index c68be56..209f636 100644 |
Julia Kreger <juliaashleykreger@gmail.com> | yes | debian upstream | upstream, https://review.opendev.org/c/openstack/ironic/+/988357 | 2026-05-16 |
| CVE-2026-44917_disable-driver_info-level-pxe_template-override.patch | CVE-2026-44917:: disable driver_info level pxe_template override A vulnerability report was filed pointing out a flaw in the pxe_template override logic where a direct file path was supplied. The original usage context of this minimally documented feature was that an operator, i.e. the owner of the ironic deployment could leverage a direct file path to a template on disk. This should instead have utilized the file:/// URL provider, but research suggests this feature has largely not been used. . As a result, consensus has been reached amongst security maintainers for the Ironic project to disable and remove this functionality. . Where this issue became a vulnerability for Ironic was the evolution of the usage and Role Based Access Control model where we began to separate the overall operator of the system from the administrative manager of the system. . The resulting vector was that an authenticated and authorized user could potentially request a template a sensitive file to be sourced as the PXE template. This file would then be written to disk and utilized IF the ironic-conductor service could access it. The malicious authenticated and authorized user could then, if the environment was misconfigured, or operating with "flat" networking, it could be possible to guess the underlying file path on the tftpboot/httpboot network bootendpoints, and retrieve the rendered output before the deployment failed and the rendered output is removed. . This is tracked as CVE-2026-44917, and the underlying feature is expected to be removed during the 2027.2. diff --git a/ironic/conf/pxe.py b/ironic/conf/pxe.py index e4c912192..e84438a47 100644 |
Julia Kreger <juliaashleykreger@gmail.com> | yes | upstream | upstream, pre-OSSA mailing list | 2026-06-01 |
| CVE-2026-46447_Sanitize-kernel_append_parms.patch | CVE-2026-46447: Ensure kernel_append_params are valid kernel parameters By defining a kernel command line grammar and attemping to parse kernel_append_params. A successful parse indicates the input contained in kernel_append_params are valid kernel parameters. Unsuccessful parsing will raise and be rejected. . This parsing can be disabled through a new conductor configuration option: disable_kernel_parameter_parsing which is False by default. . Basic kernel parameter sanitization (ie filtering newlines) is always applied in kernel_append_params since they are never valid for inclusion. . Future patches should extend kernel parameter parsing to all areas of Ironic's code base in order to guarantee valid kernel parameters being passed along. . NOTE: This patch is back-ported from stable/2026.{1,2} and slightly weakens the kernel command line grammar by not including init arguments. Lark's stand-alone LALR(1) parser can't handle the ambiguity introduced. . This commit addresses CVE-2026-46447. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fc29f02e6..b5d616b3c 100644 |
Clif Houck <me@clifhouck.com> | yes | upstream | upstream, pre-OSSA mailing list | 2026-06-01 |
| CVE-2026-48681-directory_transversal_ISO9660_support.patch | CVE-2026-48681: directory transversal ISO9660 support A vulnerability was identified in Ironic's handling of ISO images where Ironic contains support to patch ISO9660 virtual media contents to include key data items like configuration drive data and other required metadata. . Anyhow, the issue here was the Ironic service was trusting that the submitted contents were valid, and a directory transversal attempt could be embedded within a modified configuration drive ISO contents submitted to Ironic. This is a case where an attacker would take a path in an ISO, and attempt to directly modify it to reach another path on the filesystem which was within the confines and path structure they were working with. i.e. while "../foo" is not a valid file or directory name in ISO9660, it can still be represented, injected, and read by the pycdlib library. . The code on all paths which perform this type of ISO content interaction have been patched to explicitly check the path for transversal attempts and internally raises an InvalidContent exception. . Impacted features: * Virtual Media ISO patching code path for pre-generated deployment ISOs as opposed to Ironic generated ISOs from a kernel/ramdisk. * Anaconda deployment interfacce where a user could impact the resulting pathing on the node being deployed at deploy time. . diff --git a/ironic/common/exception.py b/ironic/common/exception.py index 3d00882b3..23b3a23a0 100644 |
Julia Kreger <juliaashleykreger@gmail.com> | yes | upstream | upstream, pre-OSSA mailing list | 2026-06-01 |
| CVE-2026-46447_erata1_Fix_kernel_parameter_parsing_for_quoted_values_and_whitespace.patch | Fix kernel parameter parsing for quoted values and whitespace The kernel parameter validator introduced in commit c6c91d649 has three bugs in the KernelParameterTransformer class: 1. The quoted_value() method tries to access items[0].value but items[0] is already a plain string (returned by value_with_spaces transformer), not a lark Token. This causes all quoted parameter values (e.g. sshkey="ssh-rsa ... user@host") to fail with "'str' object has no attribute 'value'". 2. KernelParameter.__str__() uses self.value.value directly, bypassing ParameterValue.__str__() which wraps space-containing values in quotes. This breaks roundtrip rendering of quoted values. 3. parse() does not strip surrounding whitespace from the input, causing failures when config values have trailing spaces or newlines from template expansion or oslo.config. (cherry picked from commit a58fe7d548e3b874b7538d6272b2a73f3a0d4b94) (cherry picked from commit 87807ea7ce1424293ae6443de61fd4847a34619f) (cherry picked from commit 1908af6cd4ef02f9e33ba4ed6e8ffff8e0afbf79) |
Riccardo Pittau <elfosardo@gmail.com> | no | 2026-06-08 | ||
| CVE-2026-54421_Fix_sensitive_properties_returned_on_volume_targets.patch | [PATCH] Security: Fix sensitive properties returned on volume targets Ensure that volume target properties are properly redacted when the user lacks the 'baremetal:volume:view_target_properties' policy in patch() similar to get_one(). . Additionally, Ironic Core Security determined that the RBAC reliant control over who can see properties was insufficient, especially in standalone use cases, and such the field handling is now consistent with other sensitive field usage. . diff --git a/ironic/api/controllers/v1/volume_target.py b/ironic/api/controllers/v1/volume_target.py index 21ebcad..e7f477c 100644 |
Saad Zia <saad.zia@est.tech> | no | debian | https://review.opendev.org/c/openstack/ironic/+/992326 | 2026-06-16 |
| CVE-2026-43003_Add_an_agent_flag_to_disable_installing_boatloaders.patch | [PATCH] Add an agent flag to disable installing boatloaders Pipes the new agent flag (enable_bios_bootloader_install) to agents. This flag disables bootloader install (calls to grub-install) by default for security reasons. . Part of mitigation of CVE-2026-43003. . Changes to backported versions: The default flips to avoid breaking stable users of Ironic. While this is a less secure default, it allows operators to apply the patch without fear of breaking existing workloads. Operators who need the increased security posture should explicitly set [agent]/enable_bios_bootloader_install to False. diff --git a/ironic/api/controllers/v1/ramdisk.py b/ironic/api/controllers/v1/ramdisk.py index 8ae9e1f..2dcb263 100644 |
Clif Houck <me@clifhouck.com> | yes | debian upstream | upstream, https://review.opendev.org/c/openstack/ironic/+/993684 | 2026-06-18 |
| CVE-2026-44918-Prevent_rehoming_resources_to_nodes_with_different_owner.patch | CVE-2026-44918: Prevent rehoming resources to nodes with different owner Ironic has a few similar patterns where only the source node is verified during a create or update operation: 1. A node can be created with a parent from a different project 2. Node can be updated to have a parent from a different project 3. Ports, port groups, volume targets and volume connectors can be patched to be owned by a node from a different project. . This patch addresses all these cases and introduces a single helper to cover all of them. . Also makes sure that baremetal:node:get is checked even if the parent node ID is a UUID (it was missing before). diff --git a/ironic/api/controllers/v1/node.py b/ironic/api/controllers/v1/node.py index 65224abf2..6dee9ca0b 100644 |
Dmitry Tantsur <dtantsur@protonmail.com> | yes | debian upstream | pre-OSSA mailing list | 2026-06-26 |
| CVE-2026-54423-Add_operator_configurable_step_disallow_lists.patch | Add operator-configurable step disallow lists Add [api]disallow_deploy_steps, disallow_clean_steps, and disallow_service_steps config options. Steps are blocked at the API layer (with error) and filtered at the conductor layer (silently) to cover all paths: manual, automated, templates, and runbooks. . note(JayF) This backport contained some tests which depended on the changes to allow network_interfaces to have service steps. Those tests have been removed. . note(JayF) When backporting 2025.2->2025.1, we also had to remove an additional test which does not apply to this branch. diff --git a/ironic/api/controllers/v1/node.py b/ironic/api/controllers/v1/node.py index 65224ab..9ea4b7a 100644 |
Himanshu Roy <hroy@redhat.com> | yes | debian upstream | upstream, https://review.opendev.org/c/openstack/ironic/+/992732 | 2026-06-26 |
| CVE-2026-54423-block_vendor.send_raw.patch | security: block vendor.send_raw (CVE-2026-54423) A recent security report highlighted issues with the ability to invoke the ipmitool vendor pass-thru interface method of ``send_raw``. . Where in the step model, this becomes "$interface_name"."$method_name", hence, "vendor.send_raw". . This patch disables the method because standalone operators do not have the Role Based Access Control model to fallback on in order to prevent misuse of the interface. While the interface may still be useful, this disables the ability for standard API users to invoke the method by default. . NOTE(JayF): Resolved some conflicts in ironic/conf/api.py . diff --git a/ironic/conf/api.py b/ironic/conf/api.py index 450695a90..3e27c0b4f 100644 |
Julia Kreger <juliaashleykreger@gmail.com> | yes | debian upstream | pre-OSSA mailing list | 2026-06-12 |
| OSSN-0106_Add_api_enable_ramdisk_endpoints_config_option.patch | Add [api] enable_ramdisk_endpoints config option Adds a configuration option to disable the unauthenticated ramdisk agent API endpoints (lookup, heartbeat, continue_inspection) on a per-API-instance basis. This enables split-horizon deployments where a public-facing API cluster rejects agent traffic with HTTP 403 while a backend API cluster on the provisioning network continues to serve it. . The option is mutable and can be reloaded via SIGHUP. It works regardless of auth_strategy, unlike the existing policy-based approach which is only effective with Keystone authentication. . The security documentation has been updated to recommend this option as the primary mechanism for disabling ramdisk endpoints, with the policy approach documented as an alternative for Keystone deployments along with a warning about its limitations. =================================================================== |
Julia Kreger <juliaashleykreger@gmail.com> | yes | debian upstream | upstream, https://review.opendev.org/c/openstack/ironic/+/999897 | 2026-08-12 |
All known versions for source package 'ironic'
- 1:39.0.0-1 (sid)
- 1:35.0.1-10 (forky)
- 1:29.0.5-0+deb13u3 (trixie, trixie-security)
- 1:21.4.4-0+deb12u2 (bookworm-security)
- 1:21.4.4-0+deb12u1 (bookworm)
