CVE-2026-54916
WysokieCVSS 8.8Streszczenie
NetBox Device Type Library, zbiór definicji typów urządzeń do importu do NetBox, posiada podatność wynikającą z braku tests/init.py i braku --import-mode=importlib, co powoduje umieszczenie katalogu tests na początku sys.path podczas zbierania testów przez pytest. Nieuwierzytelniony współtwórca może dodać moduł taki jak tests/git.py przesłaniający GitPython lub tests/conftest.py, co prowadzi do wykonania dowolnego kodu na runnerze GitHub Actions.
Ocena ryzyka
Atakujący może wykonać dowolny kod na runnerze GitHub Actions, manipulować wynikami testów oraz uzyskać dostęp do tokenów lub zasobów sieciowych udostępnionych workflow. Może to prowadzić do kompromitacji repozytorium i infrastruktury CI/CD.
Rekomendacja
Zastosuj poprawkę z commita b0d9a3dadd0a0a9d3c93b0b2777559fd4bad1037. Dodatkowo rozważ dodanie tests/init.py i używanie --import-mode=importlib oraz ograniczenie uprawnień tokenów w workflow.
Inne podatności w NetBox Device Type Library
Zobacz wszystkie- CVE-2026-54918Średnie
NetBox Device Type Library w dotkniętych rewizjach repozytorium zawiera stałą NETBOX_DT_LIBRARY_URL w tests/test_configuration.py, która jest swobodnie modyfikowalna przez nieuwierzytelnionego autora pull requesta przed uruchomieniem testów walidacyjnych. Podczas zbierania pytest, tests/definitions_test.py przekazuje tę wartość do Repo.clone_from i create_remote("upstream").fetch(), co powoduje ślepe żądania Git smart-HTTP do wybranego przez atakującego hosta lub ładowanie kontrolowanych przez atakującego plików tests/known-*.json jako pamięci podręcznej walidacji. Ślepe żądanie nie może ustawić dowolnych nagłówków usługi metadanych ani zwrócić treści odpowiedzi, a ta ścieżka nie wykonuje zdalnych hooków Git, ale podstawione znane dane mogą ominąć walidację unikalności slug, modułu i szafy. Podatność naprawiono w commicie 8980c690097e92f5028c7e6df402b327d827ecd5.
- CVE-2026-54752Krytyczne
Biblioteka NetBox Device Type Library zawiera podatność deserializacji w narzędziu testowym, które ładuje pliki pickle kontrolowane przez autora pull requesta. Nieuwierzytelniony współtwórca może dostarczyć spreparowany plik pickle, co prowadzi do wykonania dowolnego kodu podczas uruchamiania testów pytest w GitHub Actions lub w procesie opiekuna projektu.
Oryginalny opis (angielski, źródło NVD)
NetBox Device Type Library is a collection of community-sourced device type definitions for import into NetBox. The absence of tests/init.py and the lack of --import-mode=importlib cause pytest prepend import mode to place the tests directory at the front of sys.path during collection. An unauthenticated contributor can add a module such as tests/git.py that shadows GitPython when tests/definitions_test.py executes from git import Git, Repo, or add tests/conftest.py for automatic collection-time execution. Python imports and runs the pull-request module before any test function, allowing arbitrary code execution on the GitHub Actions runner, test-result tampering, and access to tokens or network resources exposed to the workflow. This module-shadowing path is independent of the earlier pickle deserialization flaw and the separately tracked NETBOX_DT_LIBRARY_URL issue. This vulnerability is fixed by commit b0d9a3dadd0a0a9d3c93b0b2777559fd4bad1037.

