Description
A flaw was found in Foreman’s Api::V2::SshKeysController, where the target user is resolved through Foreman::Controller::UserAware#find_user using User.find(params[:user_id]) without enforcing the required parent-user authorization check. An attacker with the create_ssh_keys permission can exploit this authorization bypass by submitting POST /api/v2/users/:user_id/ssh_keys with another user’s ID and injecting their own public SSH key into the targeted account. The injected key is subsequently propagated to hosts provisioned by that user, potentially allowing the attacker to authenticate to and gain SSH access to the victim’s managed hosts.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Red Hat | Red Hat Satellite 6.16 for RHEL 8 | — | — |
| Red Hat | Red Hat Satellite 6.16 for RHEL 9 | — | — |
| Red Hat | Red Hat Satellite 6.17 for RHEL 9 | — | — |
| Red Hat | Red Hat Satellite 6.18 for RHEL 9 | — | — |
| Red Hat | Red Hat Satellite 6.19 for RHEL 9 | — | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Red Hat Satellite Utils 6 | foreman +1 | 3.12.0.26-1.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite Utils 6 | rubygem-hammer_cli_foreman | 3.18.3-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite Utils 6 | rubygem-http-cookie | 1.1.6-2.el9sat | RHSA-2026:100120 |
| Red Hat Satellite Utils 6 | satellite +1 | 6.19.6-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite Maintenance 6 | ansible-core | 1:2.16.19-4.el9sat | RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite Capsule 6 | ansible-core +1 | 1:2.16.19-4.el9sat | RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite Capsule 6 | createrepo_c +2 | 1.2.6-1.el9pc | RHSA-2026:100120 |
| Red Hat Satellite Capsule 6 | foreman +2 | 3.12.0.26-1.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite Capsule 6 | python-pulp-rpm +1 | 3.26.9-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite Capsule 6 | python-pulpcore +1 | 3.49.39-5.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite Capsule 6 | python-pyjwt +2 | 2.15.1-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite Capsule 6 | python-pysequoia +1 | 0.1.35-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite Capsule 6 | python3.12-pulp-container | 2.26.19-2.el9pc | RHSA-2026:100120 |
| Red Hat Satellite Capsule 6 | python3.12-pulp-rpm | 3.29.12-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite Capsule 6 | python3.12-pulpcore | 3.73.45-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite Capsule 6 | python3.12-pyjwt +1 | 2.15.1-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite Capsule 6 | python3.12-pysequoia | 0.1.35-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite Capsule 6 | rubygem-http-cookie | 1.1.6-2.el9sat | RHSA-2026:100120 |
| Red Hat Satellite Capsule 6 | rubygem-smart_proxy_container_gateway | 3.5.1-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite Capsule 6 | rubygem-smart_proxy_dynflow | 0.9.3-2.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite Capsule 6 | satellite +3 | 6.19.6-1.el9sat | RHSA-2026:100120 |
Show 1 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Red Hat Satellite 6 | ansible-core +1 | 1:2.16.19-4.el9sat | RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | candlepin +1 | 4.4.26-2.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | createrepo_c +2 | 1.2.6-1.el9pc | RHSA-2026:100120 |
| Red Hat Satellite 6 | foreman +14 | 3.12.0.26-1.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | python-pulp-rpm +1 | 3.26.9-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite 6 | python-pulpcore +1 | 3.49.39-5.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite 6 | python-pyjwt +2 | 2.15.1-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite 6 | python-pysequoia +1 | 0.1.35-1.el8pc | RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite 6 | python3.12-pulp-container | 2.26.19-2.el9pc | RHSA-2026:100120 |
| Red Hat Satellite 6 | python3.12-pulp-rpm | 3.29.12-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite 6 | python3.12-pulpcore | 3.73.45-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite 6 | python3.12-pyjwt +1 | 2.15.1-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite 6 | python3.12-pysequoia | 0.1.35-1.el9pc | RHSA-2026:100120, RHSA-2026:99952 |
| Red Hat Satellite 6 | rubygem-crass | 1.0.8-1.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | rubygem-foreman_ansible | 17.0.5-2.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-foreman_remote_execution +1 | 16.5.3-3.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-foreman_rh_cloud | 13.2.12-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-foreman_theme_satellite | 16.2.5-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-hammer_cli_foreman | 3.18.3-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-http-cookie | 1.1.6-2.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-katello | 4.14.0.24-1.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | rubygem-puma | 6.4.3-2.el8sat | RHSA-2026:99952, RHSA-2026:99950, RHSA-2026:99949 |
| Red Hat Satellite 6 | rubygem-safemode | 1.5.0-3.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | rubygem-smart_proxy_container_gateway | 3.5.1-1.el9sat | RHSA-2026:100120 |
| Red Hat Satellite 6 | rubygem-smart_proxy_dynflow | 0.9.3-2.el8sat | RHSA-2026:100120, RHSA-2026:99952, RHSA-2026:99950 |
| Red Hat Satellite 6 | satellite +3 | 6.19.6-1.el9sat | RHSA-2026:100120 |
Advisories 4
- RHSA-2026:99949 Red Hat Security Advisory: Satellite 6.16.15 Async Update Red Hat Security Advisories (RHSA) · Nov 13, 2026
- RHSA-2026:100120 Red Hat Security Advisory: Satellite 6.19.6 Async Update Red Hat Security Advisories (RHSA) · Nov 13, 2026
- RHSA-2026:99950 Red Hat Security Advisory: Satellite 6.17.13 Async Update Red Hat Security Advisories (RHSA) · Nov 13, 2026
- RHSA-2026:99952 Red Hat Security Advisory: Satellite 6.18.11 Async Update Red Hat Security Advisories (RHSA) · Nov 13, 2026
References
- RHSA-2026:100120 vendor-advisory
- RHSA-2026:99949 vendor-advisory
- RHSA-2026:99950 vendor-advisory
- RHSA-2026:99952 vendor-advisory
- https://access.redhat.com/security/cve/CVE-2026-86324 vdb-entry
- RHBZ#2529291 issue-tracking