Lockfile'ını okuyan bağımlılık zafiyet taraması

Manifest ^4.17.0 der; lockfile ise gerçekte neyin kurulu olduğunu söyler. RepoVerse kurulu sürümleri — doğrudan ve dolaylı — OSV zafiyet veritabanına karşı kontrol eder ve hangi yükseltmenin en çok zafiyeti kapattığını söyler.

Anladığı lockfile'lar

Lockfile varsa kesin sürümler ondan gelir; yoksa bildirilen her aralığın tabanı kontrol edilir ve rapor bunu belirtir.

  • npm package-lock.json (v1, v2, v3) ve npm-shrinkwrap.json
  • yarn.lock (classic ve Berry) ve pnpm-lock.yaml
  • Python için Pipfile.lock ve poetry.lock
  • Rust için Cargo.lock, PHP için composer.lock, Ruby için Gemfile.lock

Doğrudan, dolaylı, geliştirme — ve ne üzerinden

Senin bildirdiğin zafiyetli bir paket bir sürüm yükseltmesidir; başka bir bağımlılığın getirdiği paket ise o bağımlılığın yükseltilmesidir. Rapor hangisi olduğunu söyler, dolaylı bir paketi getiren doğrudan bağımlılığı adlandırır ve yalnızca geliştirmede kullanılan paketleri işaretler; böylece önce production riski okunur. Dolaylı geliştirme araçları sorguya hiç girmez.

Kendi sürüm hattın için düzeltme

Birden fazla bakımı süren hattı olan paketlerin zafiyetleri hat başına bir düzeltme listeler. Gösterilen düzeltilmiş sürüm gerçekten kullandığın hattakidir — 1.1.11'deki biri için 1.1.12, 5.x'e atlama değil — ve her paket, ona karşı tüm zafiyetleri kapatan tek bir yükseltme hedefi alır; düzeltme yoksa paketin değiştirilmesi gerektiğine dair bir not. Kullanımdan kaldırılmış ve uzun süredir bakımı yapılmayan npm paketleri de işaretlenir.

Sorular

Hangi zafiyet veritabanını kullanıyor?
GitHub Security Advisories'i, Python, Rust, Go ve RubyGems zafiyet veritabanlarını ve diğerlerini kesin paket sürümlerine göre bir araya getiren OSV.dev'i.
Dolaylı bağımlılıkları kontrol ediyor mu?
Evet, lockfile'dan. Her dolaylı paket, onu hangi doğrudan bağımlılığın getirdiğini gösterir. Yalnızca geliştirmede kullanılan dolaylı paketler gönderilmedikleri için atlanır.
Repomda lockfile yoksa ne olur?
Bildirilen her aralığın kabul ettiği en düşük sürüm kontrol edilir ve aralık tabanı olarak işaretlenir; çünkü gerçekte sahip olduğun sürüm zaten düzeltilmiş olabilir. Bir lockfile commit etmek sonucu kesinleştirir.

İlgili

Güncellendi 2026-10-11