Skip to content

deps(uv): jawnie zadeklaruj indeks PyPI (dependency confusion guard)#174

Merged
mpasternak merged 1 commit into
devfrom
security/uv-explicit-pypi-index
Apr 27, 2026
Merged

deps(uv): jawnie zadeklaruj indeks PyPI (dependency confusion guard)#174
mpasternak merged 1 commit into
devfrom
security/uv-explicit-pypi-index

Conversation

@mpasternak
Copy link
Copy Markdown
Member

Podsumowanie

PR 2/12 wdrażający rekomendacje z
lirantal/pypi-security-best-practices
praktyka #5: Prevent Dependency Confusion.

Co się zmienia

Dodaje jawny [[tool.uv.index]] block w pyproject.toml deklarujący
PyPI jako jedyny domyślny indeks. Komentarz objaśnia zasadę dodawania
przyszłych prywatnych indeksów (priority + explicit = true).

Dlaczego

  • Bez jawnej deklaracji uv używa pypi.org jako implicit default.
  • Gdy ktoś w przyszłości doda prywatny indeks, łatwo o pomyłkę kolejności
    → atakujący publikujący pakiet na PyPI o tej samej nazwie co wewnętrzny
    pakiet wygrywa resolution (klasyczne dependency confusion).
  • Jawna deklaracja + komentarz wymuszają świadomą decyzję.

Plan testowy

  • uv lock — bez zmian w uv.lock (pypi był juz default).
  • pre-commit run --files pyproject.toml — passed.
  • CI green.

🤖 Generated with Claude Code

Praktyka #5 z pypi-security-best-practices (prevent dependency confusion).

Bez jawnej deklaracji uv uzywa pypi.org jako implicit default. Po dodaniu
prywatnego indeksu w przyszlosci kazda komenda uv resolve mogla pulnac
publiczny pakiet o tej samej nazwie z wyzszej wersji - klasyczna wektor
dependency confusion attack (np. namepsace squat na nazwe internal pkg).

Po tej zmianie:
- pypi.org jest single source of truth, jawnie udokumentowany
- przyszly dev dodajacy prywatny indeks dostanie jasny sygnal jak ustawic
  index priority (musi go dodac PRZED [pypi] albo z explicit = true)
- uv.lock bez zmian (pypi byl juz domyslnym indeksem)

Komentarz w toml objasnia zasade dla przyszlych zmian.
@mpasternak mpasternak merged commit 9d2e72f into dev Apr 27, 2026
9 checks passed
@mpasternak mpasternak deleted the security/uv-explicit-pypi-index branch April 28, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant