Parallels Desktop’ta ortaya çıkan bir güvenlik açığı, Mac üzerinde normal kullanıcı yetkisiyle çalışan bir kodun yerel hizmete bağlanarak root ayrıcalığı kazanmasına yol açabiliyor. JFrog’un duyurduğu ve ParaShells adını verdiği hata, ağ üzerinden değil, cihazın içinde zaten çalışıyor olması gereken yerel kodla istismar edilebiliyor; bu nedenle saldırı uzaktan tek başına yapılamıyor.
JFrog, açığı CVE-2026-90894 kimliğiyle izliyor ve bulguya 10 üzerinden 7,8 puan verdi. Şirketin açıklamasına göre düzeltme Parallels Desktop 27 sürümünde yer alıyor, ancak bu sürüm Intel işlemcili Mac’lere yüklenemiyor. Yani yamayı kurabilenler Apple silicon tabanlı modellerle sınırlı kalırken, Intel Mac kullananlar aynı çizgide açık taşıyan 26 serisinde kalıyor.
Hata nasıl çalışıyor
Parallels Desktop, Mac üzerinde Windows ve Linux sanal makineler çalıştırıyor. Ürün kurulduğunda, arka planda prl_disp_service adlı bir servis açıyor; bu servis root olarak çalışıyor çünkü ana makinede ağ yapılandırması yapıyor ve sanal makine paketlerini açıyor. Zafiyet de sanal makinenin içinde değil, doğrudan Mac tarafındaki bu servis katmanında bulunuyor. Yani risk altındaki sistem sanal makinenin kendisi değil, Mac’in ta kendisi.
JFrog’un test ettiği makinede servisin dinlediği soket tüm yerel süreçler için yazılabilir durumdaydı. Bu, Mac üzerinde çalışan herhangi bir programın servise bağlanabilmesi anlamına geliyor. Bağlantı sonrası gelen PrlSrv_LoginLocal çağrısı ise yalnızca çekirdeğin bağlantı kuran süreç için bildirdiği kimlik bilgilerini kontrol ediyor. Parallels’e özel bir kod imzası gerekmiyor ve yönetici olmayan bir hesapla da çalışıyor.
İstismar zinciri, sanal makine paketi kurulurken servis tarafından kullanılan açma komutunun biçiminden doğuyor. Servis, tek satırlık bir komut üretiyor: tar -xf "%1" -C "%2". Ardından bu metin Qt’nin QProcess::splitCommand işleviyle yeniden parçalara ayrılıyor. Sorun da burada başlıyor: komutun bir kısmını çağıran taraf belirliyor, çünkü yeni sanal makinenin hangi klasöre kurulacağını o seçiyor.
Klasör adının içine eklenen çift tırnak, tırnaklamayı erken kapatıyor. Böylece kullanıcı tarafından eklenen son bölüm, yolun parçası olmak yerine tar için ek seçeneklere dönüşüyor. JFrog’un kullandığı seçenek --use-compress-program oldu. Bu seçenek, macOS’teki tar arşivi önce başka bir programa aktarıyor; burada tar root olarak çalıştığı için o ikinci program da root yetkisiyle çalışıyor. Şirketin test betiği, parola istemeyen bir sudo kuralı yazarak root kabuğu açabildiğini gösterdi.
JFrog, saldırıyı Parallels Desktop 26.4.0 build 57513 üzerinde, Apple silicon çipli bir Mac’te gösterdi. Şirkete göre normal bir kurulum zaten saldırı için gereken her şeyi sağlıyor: ürün yüklü olacak, servis çalışacak, soketi açık olacak ve yerel düşük yetkili bir hesap bulunacak. Sanal makinenin çalışıyor olması gerekmiyor.
Şirket, tüm eski yapıları tek tek sınamadığını da açıkça söyledi. “Bu yazı için tüm eski build’leri yeniden test etmedik” diyen JFrog, okura “InstallAppliance extract template’ini ve world-writable dispatcher socket’i hâlâ aynı şekilde açığa çıkaran herhangi bir Desktop kurulumunu kapsam içinde değerlendirin” mesajını verdi.
JFrog ayrıca App Store sürümünün servisleri farklı şekilde başlatabileceğini, ancak temel riskin aynı tip problem olduğunu belirtti. Şirket, bu açıktan yararlanan bir saldırı gördüğünü söylemiyor. Parallels cephesinden de kamuya açık bir açıklama yok.
Araştırmacılar, yerel kusurun neden önemli olduğunu da şöyle gerekçelendirdi: bu makinelerde normal kullanıcı olarak çalışan kod oldukça yaygın. Kötü amaçlı bir Homebrew formülü, zehirlenmiş bir npm kurulum betiği ya da ele geçirilmiş bir derleme işi bu kapsama giriyor. Ortak bir laboratuvar ya da eğitim Mac’inde zayıf bir hesap da aynı riski doğuruyor.
Yama 27’de var, Intel Mac’ler beklemede
JFrog’un duyurusuna göre açığı gideren değişiklik Parallels Desktop 27’de yer alıyor. Şirketin danışma notunda 27.0.0 altındaki tüm sürümler etkilenmiş olarak listeleniyor; yazısında ise 27.0.0 düzeltmeli sürüm olarak geçiyor. CVE kaydı da 27.0.0’ı etkilenmeyen sürüm diye gösteriyor.
Tarih çizelgesi ise tam örtüşmüyor. JFrog’un kendi ifşa zaman çizelgesi, düzeltmenin 1 Eylül 2026’da 27.0.0 ile yayımlandığını söylüyor. Parallels’in sürüm notları ise 27.0.0’ı 25 Ağustos 2026’ya, 27.0.1’i ise 1 Eylül 2026’ya koyuyor. Bu nedenle en yeni sürümü kurmak, her iki yorumu da kapsıyor; çünkü 27.0.1 build 58670, bu iki tarihten de sonra yayımlandı.
Ancak Parallels, CVE-2026-90894 hakkında ayrıca bir açıklama yayımlamadı. Bu yüzden hangi yapının değişikliği içerdiğine dair doğrudan bir vendor kaydı bulunmuyor. Şirketin güvenlik düzeltmeleri listesi de Mayıs 2025’ten bu yana güncellenmediği için bu açığı içermiyor.
Parallels, güvenlik açıklarını ancak düzeltme kamuya açık biçimde yayımlandıktan sonra konuştuğunu söylüyor. Mevcut güvenlik düzeltmeleri listesi her açığı hangi sürümün kapattığını gösteren bir tablo içeriyor, fakat bu listedeki son inceleme Mayıs 2025’te kalmış durumda.
Parallels Desktop 27 yalnızca Apple silicon işlemcili Mac’lerde çalışıyor. Sistem gereksinimleri, işlemci tarafında Apple silicon’u, işletim sistemi tarafında ise macOS Sonoma 14.7 ve üzerini şart koşuyor. Ventura 13 gibi daha eski macOS sürümlerinde kurulum, ürünün eski bir yapısını devreye alıyor.
Intel Mac desteği 27. sürümle kaldırıldı. Şirket, bu değişikliğin kendi tercihinden değil Apple’ın yol haritasından kaynaklandığını söylüyor. macOS 26 Tahoe, Intel Mac’ler için derlenen son macOS sürümüydü; macOS 27 ise yalnızca Apple silicon için gelecek. Bu nedenle macOS 27 için hazırlanmış bir ürün Intel donanıma yüklenemiyor.
Intel kullanıcılarına Parallels Desktop 26’da kalmaları söyleniyor. Şirket 25 Ağustos’ta yayımladığı açıklamada, “Parallels Desktop 26 bugün Intel tabanlı Mac bilgisayarları tam olarak destekliyor ve bu değişmeyecek” dedi. Aynı metinde Intel kullanıcılarının 26 sürümünü kullanmaya devam edebileceği ve “gelecekteki güvenlik ve bakım güncellemelerini” bekleyebileceği de yazdı.
JFrog’a göre bu çizgide aranan düzeltme yok. Şirketin danışma notunda, “26.x hattında kalan makineler, 26.4.2 dahil, bu extract değişikliğine sahip değil” ifadesi yer alıyor. JFrog, 26.4.1 ya da 26.4.2’yi ayrıca test ettiğini söylemiyor; yazı da daha eski yapıları kontrol etmediğini açıkça belirtiyor.
Parallels’in 26 serisi sürüm notlarında da böyle bir yamadan söz edilmiyor. O hattaki en yeni yapı olan 26.4.2, 8 Eylül 2026’da yayımlandı ve notlarda yalnızca Enterprise sürümündeki bir dağıtım sorununa değinildi. Bu notlar genellikle kısa tutuluyor ve çoğu zaman yalnızca güncellemenin “genel kararlılık ve güvenlik sorunlarını ele aldığı” ifadesini içeriyor; bu nedenle belgelenmemiş bir düzeltmeyi dışlamıyorlar.
Sonuçta 27 sürümünü çalıştıramayan bir Mac için, JFrog’un tanımına göre düzeltilmiş bir yapı bulunmuyor. Parallels, değişikliğin 26 serisine gelip gelmeyeceğini söylemedi ve yayımladığı hiçbir materyal buna dair bir tarih vermiyor.
JFrog, bir Mac’in etkilenip etkilenmediğini kontrol etmek için iki salt-okunur komut öneriyor. İlki yüklü sürümü gösteriyor, ikincisi ise servis soketinin her yerel süreç tarafından erişilebilir olup olmadığını ortaya çıkarıyor:
defaults read "/Applications/Parallels Desktop.app/Contents/Info" CFBundleShortVersionString
ls -l /var/run/prl_disp_service.socket
Şirket, build 26.4.0’a yakın bir sürümde srwxrwxrwx görülen bir soketin, yamalı bir yapı doğrulanana kadar açık kabul edilmesi gerektiğini söylüyor. Bu iki komut yalnızca maruziyeti gösteriyor; kimsenin açığı kullanıp kullanmadığını ise göstermiyor.
Tüm makineler düzeltilmiş bir yapıya geçene kadar JFrog’un tavsiyesi, yerel oturum açabilen kişileri sınırlamak. Çünkü savunmasız bir kurulumda herhangi bir yerel hesap servise ulaşabiliyor. Araştırmacılar ayrıca kurum içindeki Parallels Desktop kurulu tüm Mac’lerin envanterinin çıkarılmasını öneriyor.
Güncellemeleri cihaz yönetimiyle dağıtan yöneticilerin de sürüm kurallarını önce kontrol etmesi gerekiyor. Parallels, yeni ana sürümleri otomatik iten bir politikanın Intel Mac’lere 27 sürümünü yüklemeye çalışacağını ve bunun başarısız olacağını söylüyor. Şirket, bu makinelerin 26 sürümünde tutulmasını istiyor.
Yayımlanan materyaller, yamalı bir sürümün kurulmasının saldırganın daha önce bıraktığı erişimi temizleyip temizlemediğini söylemiyor. JFrog, root yetkisi alan bir saldırganın launchd üzerinden kalıcı tutunma sağlayabileceğini, ürün güncellemesinin bunu otomatik olarak silmeyeceğini de not ediyor.
