CVE-2026-84714
WysokieCVSS 7.1Streszczenie
W automation-controller funkcja sanitize_jinja() używa wyrażeń regularnych, które zatrzymują się na pierwszym wewnętrznym znaku '}' lub '%', więc wyrażenie Jinja zawierające wewnętrzny nawias (np. pusty słownik) jest akceptowane, pozostając prawidłowym Jinja. Ponieważ sanitize_jinja() jest jedynym zabezpieczeniem kilku pól w czasie uruchamiania, użytkownik o niskich uprawnieniach może wstrzyknąć Jinja, którą ansible-core wykonuje w środowisku wykonawczym.
Ocena ryzyka
Umożliwia to wykonanie dowolnych poleceń w środowisku wykonawczym (z pominięciem listy dozwolonych modułów AD_HOC_COMMANDS) oraz ujawnienie sekretów należących do poświadczeń, których atakujący nie może odczytać.
Rekomendacja
Zaktualizuj Ansible Automation Platform automation controller do wersji zawierającej poprawkę lub zastosuj środki zaradcze zalecane przez producenta.
Inne podatności w Ansible Automation Platform automation controller
Zobacz wszystkie- CVE-2026-85475Wysokie
W Ansible Automation Platform automation controller konfiguracja logowania zewnętrznego (rsyslog) jest generowana przez interpolację ustawień kontrolowanych przez użytkownika do pliku konfiguracyjnego RainerScript bez neutralizacji składni. Uprzywilejowany użytkownik może wstrzyknąć dyrektywy rsyslog, w tym akcję omprog, powodując wykonanie dowolnych poleceń w komponencie rsyslog płaszczyzny kontrolnej.
- CVE-2026-84724Średnie
W podsystemie system-job Ansible Automation Platform automation-controller występuje wada wstrzykiwania argumentów. Endpoint uruchamiania szablonu system-job przechowuje zmienną "days" bez walidacji liczbowej, a dyspozytor spłaszcza listę argumentów polecenia zarządzającego w jeden ciąg ze spacjami, przez co spacje stają się dodatkowymi argumentami. Uwierzytelniony użytkownik z uprawnieniami superużytkownika może wstrzyknąć dowolne argumenty, w tym opcję ścieżki Pythona, do procesu awx-manage.
- CVE-2026-84721Średnie
W backendzie powiadomień e-mail Ansible Automation Platform automation-controller występuje wada server-side request forgery. Backend przekazuje dostarczony przez użytkownika host i port SMTP z szablonu powiadomienia bezpośrednio do klienta SMTP bez walidacji, że cel nie jest adresem wewnętrznym, loopback, link-local lub zarezerwowanym. Uwierzytelniony użytkownik z uprawnieniem organization notification-admin może utworzyć szablon wskazujący dowolny adres wewnętrzny i wywołać test, otwierając surowe połączenie TCP.
- CVE-2026-84720Średnie
W Ansible Automation Platform automation-controller kolumna bazy danych WorkflowJobNode.ancestor_artifacts, przechowująca surowe połączone artefakty set_stats propagowane między węzłami workflow, nie jest objęta prevent_search() i jest akceptowana do dowolnych wyszukiwań pól przez backend filtrów REST, mimo że jest pominięta w serializatorze API. Ponieważ kolumna jest zapisywana przed zastosowaniem maskowania no_log przez Ansible, użytkownik z prawem odczytu workflow może użyć liczby wyników jako wyroczni do odzyskania znak po znaku wartości oznaczonych jako no_log.
- CVE-2026-84718Średnie
W Ansible Automation Platform automation-controller w dostarczonej konfiguracji produkcyjnej kontroler ufa nagłówkowi X-Forwarded-For dostarczonemu przez klienta jako adresowi IP klienta, bez weryfikacji, że pochodzi z zaufanego proxy, i wybiera skrajną lewą (kontrolowaną przez atakującego) wartość nagłówka. Atakujący może sfałszować źródłowy adres IP zapisywany w logach audytu i dostępu kontrolera.
- CVE-2026-84717Średnie
W Ansible Automation Platform automation-controller nieuwierzytelniony odbiornik webhooków Bitbucket Data Center pomija weryfikację podpisu HMAC dla zdarzeń diagnostics:ping po wyszukaniu docelowego szablonu, zwracając HTTP 200 dla szablonu z skonfigurowanym webhookiem Bitbucket DC i HTTP 403 w przeciwnym razie. Nieuwierzytelniony zdalny atakujący może użyć tej różnicy odpowiedzi jako wyroczni do wyliczenia identyfikatorów szablonów zadań i szablonów zadań workflow z skonfigurowanymi webhookami Bitbucket DC, bez znajomości sekretu webhook_key.
- CVE-2026-84706Wysokie
W Ansible Automation Platform automation-controller wstrzykiwacz zmiennych środowiskowych niestandardowego typu poświadczeń sprawdza nazwy zmiennych względem listy blokad, która pomija zmienne przechwytujące proces, takie jak BASH_ENV, ENV, LD_PRELOAD, LD_LIBRARY_PATH, PYTHONSTARTUP i GIT_SSH_COMMAND. W połączeniu z wstrzykiwaczem plików poświadczeń uprzywilejowany użytkownik może zapisać kontrolowany przez atakującego skrypt w środowisku wykonawczym i wskazać na niego BASH_ENV.
- CVE-2026-84691Wysokie
W Red Hat Ansible Automation Platform automation-controller ustawienie formatujące komunikat logu dla błędów API 4XX jest szablonem formatu Pythona kontrolowanym przez administratora, renderowanym z obiektem użytkownika jako argumentem. Administrator może utworzyć szablon, który przechodzi od obiektu użytkownika do ustawień aplikacji i odczytuje klucz tajny Django oraz hasło do bazy danych, a sformatowana wiadomość jest zapisywana do loggera, który można przekazać do zewnętrznego agregatora logów.
- CVE-2026-84683Wysokie
W Red Hat Ansible Automation Platform automation-controller widok HTML standardowego wyjścia zadań, poleceń ad hoc, aktualizacji projektu i aktualizacji inwentarza escapuje metaznaki HTML, ale nie usuwa sekwencji ucieczki ANSI przed konwersją do HTML. Sekwencja hiperłącza ANSI OSC 8 w wyjściu jest rozwijana do kotwicy HTML, której href nie jest filtrowany pod kątem schematu ani escapowany, więc użytkownik o niskich uprawnieniach może osadzić link javascript: renderowany w odpowiedzi text/html bez Content-Security-Policy.
Oryginalny opis (angielski, źródło NVD)
A flaw was found in the automation-controller input-validation guard sanitize_jinja(). The function uses two regular expressions to reject user-supplied Jinja, but the patterns stop at the first interior '}' or '%' character, so a Jinja expression containing an inner brace (for example an empty dict) is accepted while remaining valid Jinja. Because sanitize_jinja() is the sole guard on several launch-time fields — ad-hoc command module_args, Machine-credential username / become_method / become_user, and inventory host names — a low-privileged user can inject Jinja that ansible-core evaluates in the execution environment. This enables execution of arbitrary commands in the execution environment (bypassing an administrator's AD_HOC_COMMANDS module allowlist) and disclosure of secrets belonging to credentials the attacker cannot read (by templating a co-attached credential's injected environment variables), across the credential access-control boundary.

