Composer'da Packagist PHP deposunu tehlikeye atan bir güvenlik açığı belirlendi

Birkaç gün önce kritik bir güvenlik açığının tespit edildiği haberi geldi en bağımlılık yöneticisi Oluşturmak (CVE-2021-29472), kaynak kodunu indirme yönünü belirleyen özel olarak oluşturulmuş bir URL değerine sahip bir paketi işlerken sistemde rastgele komutlar yürütmenize olanak tanır.

Sorun GitDriver, SvnDriver ve HgDriver bileşenlerinde kendini gösterir Git, Subversion ve Mercurial kaynak kontrol sistemleriyle birlikte kullanılır. Güvenlik açığı, Composer'ın 1.10.22 ve 2.0.13 sürümlerinde düzeltildi.

Özellikle, Composer'in 306.000 PHP geliştirici paketi içeren ve ayda 1.400 milyardan fazla indirme sunan varsayılan Packagist paket deposu özellikle etkilenir.

PHP ekosisteminde Composer, yazılım bağımlılıklarını yönetmek ve yüklemek için ana araçtır. Dünyanın dört bir yanındaki geliştirme ekipleri, yükseltme sürecini kolaylaştırmak ve uygulamaların tüm ortamlarda ve sürümlerde zahmetsizce çalışmasını sağlamak için bunu kullanır.

Deney, sorunla ilgili bilgi olması durumunda, saldırganların Packagist altyapısının kontrolünü ele geçirebileceğini ve bakımcıların kimlik bilgilerini ele geçirebileceğini veya paketlerin indirilmesini üçüncü taraf bir sunucuya yeniden yönlendirebileceğini ve paket varyantlarının değişikliklere sahip teslimatını ayarlayabileceğini gösterdi. kötü niyetli kullanıcıların bağımlılık kurulumu sırasında arka kapıyı değiştirmesi.

Son kullanıcılar için tehlike sınırlıdır composer.json içeriğinin genellikle kullanıcı tarafından tanımlanması ve genellikle güvenilir olan üçüncü taraf depolarına erişilirken kaynağa bağlantıların iletilmesi nedeniyle. Ana darbe Packagist.org deposuna ve Private Packagist hizmetine düştü, Composer'ı kullanıcılardan alınan verilerin aktarımı ile çağıran. Saldırganlar, özel hazırlanmış bir paketi bırakarak kodlarını Packagist sunucularında çalıştırabilirler.

Packagist ekibi, güvenlik açığını bildirimden sonraki 12 saat içinde çözdü güvenlik açığı. Araştırmacılar, 22 Nisan'da Packagist geliştiricileri özel olarak bilgilendirdiler ve sorun aynı gün düzeltildi. Güvenlik açığına yönelik bir düzeltmeyi içeren genel bir Composer güncellemesi 27 Nisan'da yayınlandı ve ayrıntılar 28 Nisan'da açıklandı. Packagist'in sunucularındaki günlüklerin denetimi, güvenlik açığıyla ilişkili herhangi bir şüpheli etkinliği ortaya çıkarmadı.

Argüman yerleştirme hataları, kod incelemeleri sırasında genellikle gözden kaçan ve kara kutu etkileşimlerinde tamamen göz ardı edilen gerçekten ilginç bir hata sınıfıdır.

Sorun, URL doğrulama kodundaki bir hatadan kaynaklanıyor kök composer.json dosyasında ve kaynak indirme bağlantılarında. Hata, Kasım 2011'den beri kodda mevcuttur. Packagist, belirli bir kaynak kontrol sistemine bağlı kalmadan kod indirmelerini yönetmek için özel katmanlar kullanır; bu, komut satırı argümanları ile "fromShellCommandline" çağırılarak çalıştırılır.

Sorunun özü, ProcessExecutor yönteminin URL'de herhangi bir ek çağrı parametresi belirtmenize izin vermesidir. Böyle bir kaçış GitDriver.php, SvnDriver.php ve HgDriver.php sürücülerinde eksikti. GitDriver.php saldırısı, "git ls-remote" komutunun yoldan sonra ek argümanlar belirtmeyi desteklememesi nedeniyle engellenmiştir.

HgDriver.php üzerinde bir saldırı, "-config" parametresini "hq" yardımcı programına geçirerek mümkün hale getirildi, bu da "alias.identify" yapılandırmasını değiştirerek herhangi bir komutun yürütülmesini organize etmeye izin veriyor.

Araştırmacılar, Packagist'e benzer bir URL'ye sahip bir test paketi göndererek, sunucularının AWS üzerindeki Packagist sunucularından birinden geçerli dizindeki dosyaların bir listesini içeren bir HTTP isteği almasını sağladı.

Bakımcıların, paketleyicinin kamuya açık örneğinde bu güvenlik açığından daha önce yararlanıldığına dair herhangi bir işaret tespit etmedikleri unutulmamalıdır.

Son olarak, daha fazla bilgi edinmek istiyorsanız, ayrıntılara başvurabilirsiniz. Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.