Penligent Başlık

CVE-2025-62164 PoC: vLLM'nin Yerleştirmeleri Saldırı Yüzeyine Dönüştüren Tamamlamalar Veri Düzlemi Hatası

Yönetici Özeti

Büyük Dil Modeli (LLM) altyapısı olgunlaştıkça, saldırı yüzeyi geleneksel yönetim arayüzlerinden ("Kontrol Düzlemi") çıkarım verilerinin gerçek akışına ("Veri Düzlemi") kaymaktadır.

CVE-2025-62164 paradigma değiştiren bir güvenlik açığını temsil eder vLLMyüksek verimli LLM sunumu için endüstri standardı motor. Bu kusur, saldırganların LLM'yi /v1/completions uç noktasına kötü niyetli hızlı yerleştirmeler. Bir saldırgan PyTorch'un yükleme mantığındaki güvensiz serileştirme mekanizmalarından yararlanarak bellek bozulmasını tetikleyebilir, Hizmet Reddi (DoS) ve potansiyel Uzaktan Kod Çalıştırma (RCE) durumlarına yol açabilir - üstelik tüm bunları geçerli API anahtarlarına ihtiyaç duymadan (dağıtım yapılandırmasına bağlı olarak) yapabilir.

Bu analiz, teknik kök nedeni ortaya çıkarır, kavramsal bir Kavram Kanıtı (PoC) sağlar ve yapay zeka platformu mühendisleri için acil düzeltme adımlarını ana hatlarıyla belirtir.

CVE-2025-62164-PoC-vLLMs-Completions-Data-Plane-Bug

Saldırı Vektörü: Yerleştirmeler Neden Tehlikelidir?

Standart LLM etkileşimlerinde kullanıcılar metin gönderir. Ancak, vLLM gibi gelişmiş çıkarım motorları şunları destekler gömme girdileri (tensör verileri) doğrudan API aracılığıyla. Bu, performans optimizasyonu ve çok modlu iş akışları için tasarlanmıştır, ancak tehlikeli bir kapı açar: Doğrudan Nesne Serileştirme.

Güvenlik açığı, vLLM'nin bu gelen tensörleri nasıl işlediğinde yatmaktadır. Özellikle, motor kullanıcı tarafından sağlanan serileştirilmiş verilerin yapısına dolaylı olarak güvenmekte ve zararsız bir matematiksel temsil olduğunu varsaymaktadır.

Savunmasız Kod Yolu

Kritik kusur şu noktalarda mevcuttur vllm/entrypoints/renderer.py içinde _load_and_validate_embed fonksiyon.

Python

# Hassas mantığın basitleştirilmiş gösterimi
ithal meşale
içe aktar io
import pybase64

def _load_and_validate_embed(embed: bytes):
    # TEHLİKE: Güvenilmeyen ikili akışların serileştirilmesi
    tensor = torch.load(
        io.BytesIO(pybase64.b64decode(embed, validate=True)),
        weights_only=True, # Sahte güvenlik duygusu
        map_location=torch.device("cpu"),
    )
    tensör döndür

Bir yandan weights_only=True keyfi Python kodunun yürütülmesini (yaygın bir Pickle güvenlik açığı) önlemek için tasarlanmıştır. yeterli değil Belirli PyTorch tensör türleriyle çalışırken bellek bozulmasını önlemek için.

Teknik Derin Dalış: Seyrek Tensörlerden Yararlanma

CVE-2025-62164'ün çekirdeği, PyTorch'un güvenlik bayrakları ile PyTorch'un Seyrek Tensörler.

  1. PyTorch 2.8+ Vardiyası: PyTorch'un yeni sürümleri, performansı artırmak için seyrek tensörler için pahalı bütünlük kontrollerini atlamayı varsayılan olarak kabul eder.
  2. Bypass: Bir saldırgan hatalı biçimlendirilmiş bir "Sparse COO" (Koordinat Biçimi) tensörü oluşturabilir. Hatta weights_only=True, torch.load bu yapıyı serileştirecektir.
  3. Hafıza Bozulması: Seyrek tensörün indisleri yükleme sırasında beyan edilen boyuta göre doğrulanmadığından, sonraki işlemler (tensörü yoğun biçime dönüştürmek veya GPU belleğine taşımak gibi) bir Out-of-Bounds (OOB) Yazma.

Bu OOB yazma Python yorumlayıcısını hemen çökertir (DoS). Sofistike yığın püskürtme ve bellek düzeni manipülasyonu ile bu ilkel, komut işaretçisinin kontrolünü ele geçirmek için yükseltilebilir ve RCE elde edilebilir.

CVE-2025-62164 PoC Penligent

Kavram Kanıtı (PoC) Analizi

Yasal Uyarı: Bu PoC yalnızca eğitim ve savunma amaçlıdır.

1. Yükün Oluşturulması

Saldırgan, iç tutarlılık kısıtlamalarını ihlal eden serileştirilmiş bir PyTorch tensörü oluşturur.

Python

ithal meşale
içe aktar io
base64 içe aktar

def generate_exploit_payload():
    buffer = io.BytesIO()
    
    # Erişim üzerine OOB yazmayı tetiklemek için tasarlanmış bir Seyrek Tensör oluşturun
    # Belirli indisler tahsis edilen belleğin dışına işaret edecek şekilde hazırlanır
    # malformed_tensor = torch.sparse_coo_tensor(indices=..., values=..., size=...)
    
    # Gösterim için serileştirmeyi simüle ediyoruz
    # Gerçek bir saldırıda, bu tampon ikili pickle akışını içerir
    torch.save(malformed_tensor, buffer)
    
    JSON aktarımı için # Kodlama
    return base64.b64encode(buffer.getvalue()).decode('utf-8')

2. İstismar Talebi

Saldırgan bu yükü standart tamamlama uç noktasına gönderir.

POSTA http://target-vllm-instance:8000/v1/completions

JSON

{
  "model": "meta-llama/Llama-2-7b-hf",
  "prompt": {
    "embedding": ""
  },
  "max_tokens": 10
}

3. Sonuç

  • En iyi durum: vLLM işçi süreci bir segmentasyon hatasıyla karşılaşır ve çöker. Orkestratör (örn. Kubernetes) bunu yeniden başlatırsa, saldırgan isteği yeniden göndererek kalıcı bir hizmet reddi oluşturabilir.
  • En kötü durum: Bellek bozulması, işlev işaretçilerinin üzerine yazarak saldırganın kapsayıcı bağlamında kabuk kodu çalıştırmasına olanak tanır.

Etki Değerlendirmesi

  • Kullanılabilirlik (Yüksek): Bu, yürütülmesi önemsiz bir DoS'tur. Tek bir istek bir çıkarım düğümünü çökertebilir. Kümelenmiş ortamlarda, bir saldırgan tüm kümeyi bozmak için düğümler arasında yineleme yapabilir.
  • Gizlilik ve Bütünlük (Kritik): RCE elde edilirse, saldırgan ortam değişkenlerine (genellikle Hugging Face belirteçlerini, S3 anahtarlarını veya WandB anahtarlarını içerir) ve belleğe yüklenen özel model ağırlıklarına erişim kazanır.

İyileştirme ve Hafifletme

1. Hemen Yükseltme

Güvenlik açığı şurada yamanmıştır vLLM v0.11.1.

  • Eylem: Docker görüntülerinizi veya PyPI paketlerinizi hemen en son sürüme güncelleyin.
  • Mantık Düzelt: Yama, güvenli olmayan tensör biçimlerini bellek ayırıcı ile etkileşime girmeden önce reddeden katı doğrulama mantığı uygular.

2. Girdi Temizleme (WAF/Ağ Geçidi Seviyesi)

Hemen yükseltme yapamıyorsanız, ağ geçidindeki saldırı vektörünü engellemeniz gerekir.

  • Eylem: Gelen JSON gövdelerini incelemek için API Ağ Geçidinizi (Nginx, Kong, Traefik) yapılandırın.
  • Kural: Herhangi bir isteği engelle /v1/completions nerede istemi alanının içerdiği nesne gömme Anahtar.

3. Ağ Segmentasyonu

Çıkarım sunucunuzun doğrudan genel internete açık olmadığından emin olun. Erişim, girdileri sterilize eden ve kimlik doğrulama işlemlerini gerçekleştiren bir arka uç hizmeti tarafından sağlanmalıdır.

Sonuç

CVE-2025-62164, Yapay Zeka Güvenliği için bir uyandırma çağrısı niteliğindedir. Artık "Modellere" ve "Gömülmelere" atıl veriler olarak davranamayız. Yapay zeka çağında, veri̇ koddurve serileştirilmesi, ikili bir yürütülebilir dosyanın çalıştırılmasıyla aynı düzeyde inceleme gerektirir.

Yapay zeka altyapısı üzerinde Pen-test çalıştıran ekipler için (örneğin Penligent.ai), çıkarım motorlarında açık serileştirme uç noktalarının kontrol edilmesi artık görev kapsamının standart bir parçası olmalıdır.

Yazarın Notu: Yapay zeka altyapınızı güvende tutun. Girdileri her zaman doğrulayın, serileştirilmiş verilere asla güvenmeyin ve vLLM sürümlerinizi en son kararlı sürüme sabitleyin.

vLLM'nin Yerleştirmeleri Saldırı Yüzeyine Dönüştüren Veri Düzlemi Hatası
Gönderiyi paylaş:
İlgili Yazılar