CVE-2026-71365
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
Znaleziono podatność na server-side request forgery (SSRF) w mechanizmie wywołań zwrotnych webhooków w AWX. Podczas przetwarzania webhooków GitHub pull request, AWX wyodrębnia URL wywołania zwrotnego statusu (pull_request.statuses_url) z ładunku webhooka bez walidacji hosta docelowego względem oczekiwanego dostawcy Git. Ten URL jest zapisywany w zmiennych dodatkowych zadania i później używany do wysyłania uwierzytelnionych aktualizacji statusu. Użytkownik z rolą administratora w szablonie zadania z włączonym webhookiem może odczytać klucz podpisywania webhooka szablonu, sfałszować podpisany ładunek webhooka GitHub z dowolnym statuses_url i spowodować, że AWX wyśle aktualizacje statusu na URL kontrolowany przez atakującego lub wewnętrzny. Żądanie aktualizacji statusu zawiera skonfigurowany Personal Access Token (PAT) Git w nagłówku Authorization, co prowadzi do wycieku poświadczeń do punktu końcowego wskazanego przez atakującego.
Ocena ryzyka
Atakujący może uzyskać dostęp do wewnętrznych zasobów sieciowych oraz wykraść tokeny dostępu do Git, co może prowadzić do naruszenia poufności danych, eskalacji uprawnień i dalszych ataków na infrastrukturę.
Rekomendacja
Zaktualizuj AWX do wersji, która zawiera poprawkę walidacji URL w webhookach. Dodatkowo ogranicz dostęp do szablonów z webhookami i monitoruj ruch wychodzący.
Oryginalny opis (angielski, źródło NVD)
A server-side request forgery (SSRF) vulnerability was found in AWX's webhook status callback mechanism. When processing GitHub pull request webhooks, AWX extracts the status callback URL (pull_request.statuses_url) from the incoming webhook payload without validating the target host against the expected Git provider. This URL is persisted in job extra variables and later used to send authenticated status updates. A user with admin role on a webhook-enabled job template can read the template's webhook signing key, forge a signed GitHub webhook payload with an arbitrary statuses_url, and cause AWX to POST status updates to an attacker-controlled or internal URL. The status update request includes the configured Git Personal Access Token (PAT) in the Authorization header, resulting in credential leakage to the attacker-specified endpoint.

