Luka o krytyczności 9.6 w skali CVSS (Common Vulnerability Scoring System — skala 0-10 oceniająca powagę luki) została zidentyfikowana w popularnym pakiecie Pythona guardrails-ai 1. Złośliwa wersja biblioteki, dostępna w oficjalnym repozytorium przez około dwie godziny, mogła prowadzić do kradzieży kluczy API i tokenów deweloperskich 2. Incydent jest klasycznym przykładem ataku na łańcuch dostaw oprogramowania, gdzie zaufany kanał dystrybucji został tymczasowo skompromitowany 3.
Każdy użytkownik, który zainstalował pakiet guardrails-ai w wersji 0.10.1 bezpośrednio z repozytorium PyPI w dniu 11 maja 2026 roku, jest zagrożony 4. Mimo że utrzymujący projekt nie zaobserwowali dowodów na aktywną eksploatację luki ani eksfiltrację danych przez ich systemy, charakter zagrożenia wymaga natychmiastowej reakcji 5 6. Polskie zespoły deweloperskie, coraz częściej wykorzystujące frameworki AI, powinny potraktować ten alert jako sygnał do weryfikacji swoich zależności i procedur bezpieczeństwa.
TL;DR
- Produkt:
guardrails-ai, framework Pythona do budowy aplikacji AI 7. - Wektor: Atak na łańcuch dostaw. Publikacja złośliwej wersji
0.10.1w oficjalnym repozytorium Python Package Index (PyPI) 8 9. - Identyfikator: CVE-2026-45758, z wynikiem CVSS 9.6 (Krytyczny) 10 1.
- Wskaźnik kompromitacji: Instalacja pakietu
guardrails-ai==0.10.1w dniu 11 maja 2026 roku 11. - Kogo dotyczy: Deweloperzy i systemy CI/CD, które pobrały i zainstalowały złośliwą wersję pakietu w wąskim oknie czasowym.
- Główne ryzyko: Zdalne wykonanie kodu (RCE — Remote Code Execution) podczas instalacji, co może prowadzić do kradzieży poświadczeń: tokenów GitHub, kluczy chmurowych i innych kluczy API 12 13.
- Pierwszy ruch: Natychmiastowa weryfikacja zainstalowanych wersji
guardrails-aii rotacja wszystkich kluczy API oraz tokenów na maszynach, gdzie mogło dojść do instalacji 14.
Wektor ataku
Incydent związany z CVE-2026-45758 to atak na łańcuch dostaw oprogramowania 3. 11 maja 2026 roku, około godziny 18:00 czasu pacyficznego, nieznany sprawca opublikował w oficjalnym repozytorium PyPI złośliwą wersję pakietu guardrails-ai oznaczoną numerem 0.10.1 15. Pakiet ten zawierał osadzony złośliwy kod, sklasyfikowany jako CWE-506 (Embedded Malicious Code) 16. CWE (Common Weakness Enumeration) to system klasyfikacji typów błędów bezpieczeństwa w oprogramowaniu.
Mechanizm ataku był prosty i skuteczny. Każdy deweloper lub zautomatyzowany system (np. CI/CD), który w tym czasie wykonał polecenie pip install guardrails-ai==0.10.1, nieświadomie pobierał i uruchamiał złośliwy kod na swojej maszynie 17. Proces instalacji pakietu Pythona może uruchamiać skrypty setup.py, co jest częstym wektorem w tego typu atakach. Kod został zaprojektowany w celu eksfiltracji wrażliwych danych z komputera ofiary 18. Celem były przede wszystkim poświadczenia deweloperskie, takie jak:
- Osobiste tokeny dostępu do GitHuba (Personal Access Tokens, PATs).
- Klucze dostępu do dostawców chmury (AWS, Azure, GCP).
- Tokeny uwierzytelniające do rejestrów pakietów (np. PyPI, Docker Hub).
- Inne klucze API przechowywane w zmiennych środowiskowych lub plikach konfiguracyjnych 13.
Zalecenie audytu kont GitHub pod kątem nieautoryzowanych przepływów pracy lub repozytoriów sugeruje, że złośliwy kod mógł również próbować utrwalić dostęp lub rozprzestrzeniać się wewnątrz organizacji ofiary 19.
Na szczęście złośliwy pakiet został zidentyfikowany przez badaczy bezpieczeństwa w ciągu około dwóch godzin od publikacji 2. Niedługo potem administratorzy PyPI poddali repozytorium kwarantannie, uniemożliwiając dalsze pobieranie zainfekowanej wersji 20. Mimo krótkiego okna ekspozycji, każda instalacja w tym czasie powinna być traktowana jako pełna kompromitacja środowiska.
Wskaźniki kompromitacji
Jedynym wskaźnikiem kompromitacji (IoC — Indicators of Compromise) w tym przypadku jest fakt instalacji konkretnej wersji pakietu w określonym oknie czasowym. Nie zidentyfikowano publicznie adresów IP serwerów C2 (Command and Control — serwer kontrolujący zainfekowane maszyny) ani hashy plików powiązanych z tym atakiem.
Kluczowy wskaźnik:
- Nazwa pakietu:
guardrails-ai - Złośliwa wersja:
0.10.121 - Okno ataku: Instalacja wykonana 11 maja 2026 roku 4 11
Aby sprawdzić, czy system jest zagrożony, należy zweryfikować historię instalacji pakietów Pythona lub sprawdzić aktualnie zainstalowaną wersję poleceniem w terminalu:
pip show guardrails-ai
Jeśli wynik pokaże Version: 0.10.1, a logi systemowe, historia powłoki (history | grep 'pip install guardrails-ai') lub logi z systemu CI/CD wskazują na instalację w dniu 11 maja 2026, maszynę należy traktować jako skompromitowaną i natychmiast podjąć działania naprawcze.
Co zrobić w 24-48h
Zespoły, które mogły zainstalować złośliwą wersję, powinny przyjąć, że doszło do kompromitacji i postępować według poniższego planu. Rekomendowane podejście nie zastępuje pełnej analizy incydentu, ale stanowi pierwszą linię obrony.
-
Identyfikacja i izolacja.
- Przeprowadź audyt wszystkich środowisk deweloperskich i systemów CI/CD pod kątem obecności
guardrails-ai==0.10.1. - Każdą maszynę, na której zidentyfikowano złośliwy pakiet, należy natychmiast odizolować od sieci, aby zapobiec dalszemu wyciekowi danych lub komunikacji z serwerem C2.
- Przeprowadź audyt wszystkich środowisk deweloperskich i systemów CI/CD pod kątem obecności
-
Rotacja wszystkich poświadczeń.
- To krok o najwyższym priorytecie. Należy unieważnić i wygenerować na nowo wszystkie poświadczenia, do których zainfekowana maszyna mogła mieć dostęp 14.
- Lista obejmuje, ale nie ogranicza się do: kluczy SSH, tokenów GitHub/GitLab, kluczy dostępowych do AWS/Azure/GCP, kluczy API do usług zewnętrznych (Stripe, SendGrid, etc.), tokenów do repozytoriów pakietów.
- Dla polskich firm, gdzie często jedna stacja robocza dewelopera ma dostęp do wielu krytycznych zasobów, ten krok jest kluczowy. Wyciek poświadczeń może prowadzić do naruszenia ochrony danych, co podlega zgłoszeniu do Prezesa UODO zgodnie z RODO.
-
- Audyt dostępu i aktywności.
- Przeanalizuj logi dostępu do wszystkich usług, do których klucze mogły wyciec. Szukaj nietypowej aktywności, logowań z nieznanych adresów IP lub podejrzanych operacji API.
- Zgodnie z rekomendacją, przeprowadź szczegółowy audyt kont GitHub pod kątem nowo dodanych, nieautoryzowanych repozytoriów, przepływów pracy (GitHub Actions) lub dodanych kluczy SSH/deploy keys 19.
-
- Oczyszczenie i aktualizacja.
- Po wykonaniu powyższych kroków, należy całkowicie usunąć złośliwą wersję pakietu.
- Zainstaluj bezpieczną wersję, wykonując
pip install --upgrade guardrails-aiw celu pobrania najnowszej wersji (powyżej0.10.2) lubpip install guardrails-ai==0.10.0, aby cofnąć się do ostatniej znanej bezpiecznej wersji 22.
-
Wzmocnienie prewencji.
- Rozważ wdrożenie polityk bezpieczeństwa dla zależności (np.
pip-audit,safety) w procesach CI/CD. - Organizacje podlegające dyrektywie NIS2 powinny wykorzystać ten incydent do przeglądu i wzmocnienia swoich procedur zarządzania ryzykiem w łańcuchu dostaw oprogramowania. Dokumentacja podjętych kroków będzie kluczowa podczas audytu.
-
Źródła
- Rozważ wdrożenie polityk bezpieczeństwa dla zależności (np.
-
7 15 4 2 20 5 6 22 14 https://nvd.nist.gov/vuln/detail/CVE-2026-45758
-
10 1 12 8 9 17 3 11 18 13 19 https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/
-
21 16 23 https://radar.offseq.com/threat/cve-2026-45758-cwe-506-embedded-malicious-code-in—296c81fb
Źródła
Zobacz też
- CVE-2025-51427: RCE w ModelScope. Zagrożenie dla projektów AI
- Apache Camel: Krytyczna luka CVE-2026-47323 pozwala na RCE
- CVE-2026-0611: Krytyczna luka RCE w oprogramowaniu medycznym Sentinel
- PyTorch Lightning na PyPI zainfekowany kradzieżą poświadczeń
Footnotes
-
Luka ma wynik CVSS 9.6 (Krytyczny) i została publicznie ujawniona 5 czerwca 2026 roku. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 ↩3
-
Badacze bezpieczeństwa zidentyfikowali złośliwy pakiet w ciągu około 2 godzin od publikacji. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2 ↩3
-
Jest to klasyczny scenariusz ataku na łańcuch dostaw, gdzie integralność zaufanego kanału dystrybucji oprogramowania została tymczasowo naruszona. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 ↩3
-
Każdy użytkownik, który zainstalował
guardrails-ai==0.10.1z PyPI 11 maja 2026 roku, może być zagrożony. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2 ↩3 -
Utrzymujący Guardrails AI nie zaobserwowali żadnych żądań do infrastruktury Guardrails AI pochodzących ze złośliwej wersji 0.10.1. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2
-
Przegląd logów systemowych i dostępowych nie wykazał dowodów na eksfiltrację danych użytkowników przez systemy Guardrails AI. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2
-
Guardrails AI to framework Pythona, który pomaga w budowaniu aplikacji AI. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2
-
Główną przyczyną tej luki jest kompromitacja łańcucha dostaw dotycząca dystrybucji Python Package Index (PyPI) dla frameworka
guardrails-ai. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 -
Atakujący pomyślnie opublikował złośliwą wersję 0.10.1 do oficjalnego repozytorium PyPI. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2
-
CVE-2026-45758 szczegółowo opisuje krytyczną lukę w łańcuchu dostaw wpływającą na framework Guardrails AI Python. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2
-
Luka dotyczy tylko wersji 0.10.1
guardrails-aii tylko wtedy, gdy została zainstalowana 11 maja 2026 roku. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 ↩3 -
Bezpośrednim skutkiem jest potencjalne wykonanie kodu na maszynie użytkownika, prowadzące do kradzieży danych uwierzytelniających i nieautoryzowanego dostępu. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2
-
Obejmuje to GitHub Personal Access Tokens (PATs), klucze dostawców chmury, tokeny rejestrów pakietów i inne klucze API. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 ↩3
-
Osoby, które zainstalowały wersję 0.10.1, powinny zmienić wszelkie dane uwierzytelniające dostępne z ich maszyny (GitHub PATs, klucze dostawców chmury, tokeny rejestrów pakietów, klucze API) i przeprowadzić audyt swojego konta GitHub pod kątem nieautoryzowanych przepływów pracy lub repozytoriów. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2 ↩3
-
11 maja 2026 roku około godziny 18:00 czasu pacyficznego, atakujący opublikował złośliwą wersję
guardrails-ai(0.10.1) w PyPI. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2 -
Ta wersja zawierała osadzony złośliwy kod (CWE-506). — https://radar.offseq.com/threat/cve-2026-45758-cwe-506-embedded-malicious-code-in—296c81fb ↩ ↩2
-
Kiedy użytkownicy wykonali
pip install guardrails-ai==0.10.111 maja 2026 roku, złośliwy kod osadzony w pakiecie został pobrany i wykonany na ich lokalnej maszynie podczas procesu instalacji. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 -
Zalecenia doradcze silnie sugerują, że pakiet został zaprojektowany do eksfiltracji wrażliwych danych. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2
-
Porada, aby audytować konta GitHub pod kątem nieautoryzowanych przepływów pracy lub repozytoriów, wskazuje na potencjalne szersze kompromitacje środowisk deweloperskich i powiązanych usług. — https://www.thehackerwire.com/cve-2026-45758-guardrails-ai-malicious-pypi-package/ ↩ ↩2 ↩3
-
PyPI poddało repozytorium kwarantannie. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2
-
CVE-2026-45758 opisuje krytyczną lukę bezpieczeństwa związaną z publikacją złośliwej wersji (0.10.1) pakietu Pythona
guardrails-aiw PyPI. — https://radar.offseq.com/threat/cve-2026-45758-cwe-506-embedded-malicious-code-in—296c81fb ↩ ↩2 -
Użytkownicy powinni zaktualizować się do wersji 0.10.2 lub obniżyć wersję do 0.10.0, ponieważ obie są bezpieczne. — https://nvd.nist.gov/vuln/detail/CVE-2026-45758 ↩ ↩2
-
Złośliwy pakiet był aktywny przez około dwie godziny, zanim został poddany kwarantannie. — https://radar.offseq.com/threat/cve-2026-45758-cwe-506-embedded-malicious-code-in—296c81fb ↩
// Komentarze ...
Dodaj komentarz