TL;DR
12 Dwie podatności w MLflow (framework do zarządzania eksperymentami ML) zagrażają firmom korzystającym z tego narzędzia. 3 CVE-2026-33865 to Stored XSS w parsowaniu plików YAML, 4 CVE-2026-33866 to brak autoryzacji w endpoincie AJAX. Obie dotyczą 56 wszystkich wersji do 3.10.1 włącznie. Zagrożenie: przejęcie sesji, kradzież modeli, wykonanie operacji w imieniu użytkownika.
W skrócie: Jeśli Twoja organizacja używa MLflow do eksperymentów z modelami AI/ML — zaktualizuj natychmiast. Podatności są łatwe do exploitacji i wymagają jedynie uwierzytelnienia (w przypadku XSS) lub jego braku (w przypadku AJAX).
Wektor ataku 1: Stored XSS w artefaktach YAML
3 MLflow przechowuje modele w postaci artefaktów, które zawierają metadane w formacie YAML. Podatność polega na niezabezpieczonym parsowaniu tych plików — system nie filtruje złośliwego kodu osadzonego w strukturze YAML.
Scenariusz ataku:
7 Uwierzytelniony użytkownik (pracownik, kontrahent, osoba z dostępem do MLflow) przesyła złośliwy plik MLmodel zawierający osadzony kod JavaScript. Plik trafia do repozytorium artefaktów. 8 Gdy inny użytkownik wyświetli ten artefakt w interfejsie webowym, kod uruchomi się w kontekście jego przeglądarki — atakujący może przejąć sesję, ukraść tokeny dostępu, wykonać operacje w imieniu ofiary (np. pobrać inne modele, zmienić konfigurację eksperymentów lub eskalować dostęp).
9 CVSS score: 5.4 (MEDIUM) — jednak w praktyce zagrożenie jest wyższe, ponieważ sesja użytkownika w MLflow często ma dostęp do wrażliwych danych (modele, dane treningowe, konfiguracje infrastruktury).
Dla polskich firm ML/AI: Jeśli MLflow jest dostępny dla wielu pracowników (data scientists, inżynierów ML, product managerów), ryzyko jest wysokie — wystarczy jeden pracownik, który otworzy artefakt od niezaufanego źródła.
Wektor ataku 2: Brak autoryzacji w endpoincie AJAX
4 MLflow udostępnia endpoint AJAX do pobierania artefaktów modelu. 10 Ze względu na brak walidacji kontroli dostępu, użytkownik bez uprawnień do danego eksperymentu może bezpośrednio odpytać ten endpoint i pobrać artefakty modelu, do których nie powinien mieć dostępu.
Scenariusz ataku:
Atakujący (pracownik z niskim dostępem lub osoba z dostępem do sieci) wysyła zapytanie HTTP bezpośrednio do endpointu AJAX, podając ID eksperymentu. System nie sprawdza, czy użytkownik ma prawo dostępu — zwraca artefakty. Rezultat: kradzież modeli, danych treningowych, konfiguracji.
Ta podatność może nie wymagać nawet uwierzytelnienia w niektórych konfiguracjach — wystarczy dostęp do sieci wewnętrznej.
Wskaźniki kompromitacji
Jeśli podejrzewasz, że podatności były wykorzystane w Twojej infrastrukturze:
# Logi MLflow — szukaj:
- POST /api/2.0/mlflow/artifacts/get (bez autoryzacji)
- Przesyłania plików MLmodel z podejrzanym kodem w YAML
- Dostępy do artefaktów z kont, które normalnie ich nie przeglądają
# Logi przeglądarki (DevTools):
- Nieoczekiwane żądania AJAX do endpointów /api/
- Błędy CORS lub 403 (które mogą wskazywać na próby wykorzystania podatności)
# Logi serwera aplikacji:
- Niezwykłe zapytania do bazy danych modeli
- Eksport dużych ilości artefaktów w krótkim czasie
Co zrobić w 24-48h
Priorytet 1: Aktualizacja (24h)
-
Sprawdź wersję MLflow w Twojej infrastrukturze:
pip show mlflow | grep VersionJeśli wersja ≤ 3.10.1 — jesteś podatny.
-
Zaktualizuj do 3.11.0 lub wyższej:
pip install --upgrade mlflow>=3.11.0Jeśli MLflow jest zainstalowany w kontenerze/VM — przebuduj obraz i wdróż nową wersję.
-
Zrestartuj usługę MLflow po aktualizacji.
Priorytet 2: Audyt dostępu (24-48h)
- Przejrzyj logi dostępu do endpointu
/api/2.0/mlflow/artifacts/get - Zidentyfikuj użytkowników, którzy pobierali artefakty z eksperymentów, do których nie powinni mieć dostępu
- Sprawdź, czy ktoś przesyłał pliki MLmodel z podejrzanym kodem
Priorytet 3: Kontrola dostępu (48h)
- Ogranicz dostęp do MLflow — jeśli nie wszyscy pracownicy go potrzebują, wyłącz dostęp dla osób, które go nie używają
- Włącz 2FA (uwierzytelnianie dwuetapowe) dla kont z dostępem do MLflow
- Przejrzyj uprawnienia — upewnij się, że użytkownicy mają dostęp tylko do eksperymentów, które potrzebują
Priorytet 4: Monitoring (bieżący)
- Skonfiguruj alerty na niezwykłe dostępy do endpointów AJAX
- Monitoruj przesyłania plików MLmodel — flaguj te z podejrzanym kodem
- Śledź eksport dużych ilości artefaktów
Kontekst dla polskich firm
1112 CERT Polska koordynował ujawnianie tych podatności — to oznacza, że polska społeczność cyberbezpieczeństwa ma dostęp do informacji o zagrożeniu. Jeśli Twoja firma korzysta z MLflow w projektach AI/ML (coraz częstsze w polskich firmach fintech, e-commerce, insurtech), ryzyko jest realne.
Polskie regulacje (NIS2, RODO) wymagają, aby organizacje chroniły dane osobowe i infrastrukturę krytyczną. Jeśli MLflow przechowuje dane treningowe zawierające dane osobowe — podatność może stanowić naruszenie RODO. Jeśli MLflow jest częścią infrastruktury krytycznej — może to stanowić naruszenie NIS2.
Źródła
Zobacz też
- Alert: Luka XSS w Verint Verba zagraża danym administratorów
- WEBCON BPS: XSS w popularnym polskim systemie
- Krytyczna luka RCE w SzafirHost od KIR (CVE-2026-44088)
- UNC1151 atakuje polskie firmy przez Roundcube — luki w poczcie
Footnotes
-
CVE-2026-33865 opublikowana została 07 kwietnia 2026 — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
CVE-2026-33866 opublikowana została 07 kwietnia 2026 — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
CVE-2026-33865 to podatność typu Stored Cross-Site Scripting (XSS) w oprogramowaniu MLflow — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩ ↩2
-
CVE-2026-33866 to podatność pozwalająca na ominięcie autoryzacji w endpoincie AJAX MLflow — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩ ↩2
-
CVE-2026-33865 dotyczy wszystkich wersji MLflow do 3.10.1 włącznie — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
CVE-2026-33866 dotyczy wszystkich wersji MLflow do 3.10.1 włącznie — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
W CVE-2026-33865 uwierzytelniony użytkownik może przesłać złośliwy plik MLmodel, który uruchomi się gdy inny użytkownik wyświetli artefakt — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
Poprzez CVE-2026-33865 atakujący może przejąć sesję użytkownika lub wykonać operacje w jego imieniu — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
CVE-2026-33865 ma CVSS score 5.4 (MEDIUM) — https://nvd.nist.gov/vuln/detail/CVE-2026-33865 ↩
-
W CVE-2026-33866 użytkownik bez uprawnień może pobrać artefakty modelu z eksperymentu, do którego nie powinien mieć dostępu — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
Podatności w MLflow zostały zgłoszone do CERT Polska — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
-
Podatności w MLflow zostały zgłoszone przez Sławomira Zakrzewskiego z AFINE — https://cert.pl/posts/2026/04/CVE-2026-33865/ ↩
// Komentarze ...
Dodaj komentarz