NASA’nın yer kontrol yazılımlarından AIT-GUI’deki kimlik doğrulama eksikliği, ağa erişebilen saldırganların uzay aracı ve enstrüman komutları göndermesine kadar uzanan ciddi bir açık olarak kayıtlara geçti. 9.4 CVSS puanı verilen ve GHSA-p9r8-2q67-fp86 kimliğiyle izlenen sorun, 13 Ağustos 2026’da yayımlanan uyarıda AIT-GUI 2.5.1 ve önceki sürümleri için geçerli gösterildi; aynı kayıt için henüz bir CVE numarası atanmadı.
AMMOS Instrument Toolkit, yer istasyonu yazılımı geliştirmek için kullanılan bir çerçeve. Sistem, cihazlara ve uzay araçlarına komut yollayan, telemetriyi geri toplayan altyapının parçası olarak çalışıyor. AIT-GUI ise bu yapının operatör konsolu görevini üstleniyor ve ilgili uç noktalar, operatörün verdiği komutları komut otobüsüne aktarıyor.
Cycode’un incelemesine göre açık, yalnızca bir web arayüzü hatası değil. AIT-GUI’nin web sunucusu, yapılandırmada verilen host değerini okuyup bunu kullanmak yerine bırakıyor ve dinleyiciyi varsayılan olarak 8080 portunda 0.0.0.0 adresine bağlıyor. Böylece arayüz ağdaki tüm arayüzlerden erişilebilir hale geliyor. Daha kritik tarafı ise durum değiştiren tüm rotaların kimlik doğrulaması, yetkilendirme ve cross-site request forgery, yani CSRF koruması olmadan açık bırakılması.
Uyarıda yer alan sınıflandırma CWE-306, CWE-352 ve CWE-22 olarak sıralandı. İlk ikisi eksik kimlik doğrulama ve CSRF’ye, üçüncüsü ise yol gezintisiyle dosya sistemi sınırlarının aşılmasına işaret ediyor. İki uç nokta, doğrulanmamış girdilerden doğrudan dosya yolu ürettiği için sorun yalnızca oturum açmadan komut çalıştırmakla sınırlı kalmıyor; yerel dosya sistemindeki beklenmeyen konumlara da uzanabiliyor.
İncelemeye göre ağa erişebilen ve porta ulaşabilen doğrulanmamış bir taraf, POST /cmd ile enstrüman ve uzay aracı komutları gönderebiliyor. Aynı kişi POST /script/run üzerinden sunucu tarafı betikleri çalıştırabiliyor; ayrıca yol gezintisi kullanarak amaçlanan dizinin dışındaki dosyaları da işletebiliyor. POST /seq rotası ise komut dizileri başlatmaya izin veriyor ve subprocess’e aktarılan dosyalar yine dizin sınırı dışında kalabiliyor.
Güvenlik araştırmacısı Yuval Elbar, “Bir web arayüzünün uzay aracı ve enstrüman komutlarını sürmek için yayımlanan sürümü, her ağ arayüzünde dinlenen, kimseye parola sormayan ve operatörün açtığı herhangi bir web sayfasından yönlendirilebilen bir sunucu ile geldi” ifadelerini kullandı. Araştırmacıların vardığı sonuca göre risk, sayfa tahrifinden çok daha ileri gidiyor; yetkisiz bir POST isteğinin etkisi, gönderilen komut sayısıyla ölçülüyor.
Cycode’un yazımına göre mesele, bir saldırganın arayüze doğrudan erişmesiyle de sınırlı değil. Uç noktalar application/x-www-form-urlencoded gövdesi kabul ettiği için tarayıcılar bunları CORS tarafında “simple” istek olarak görüyor. Bu nedenle aynı kaynak, bir ön denetim yani preflight olmadan cross-origin POST gönderilebildiğini, yerel ağda veya firewall arkasında kurulu bir sistemin bile operatör tarayıcı üzerinden saldırgan kontrollü bir sayfa ziyaret edildiğinde istismar edilebildiğini yazdı. Uyarıda, gerçek bir tarayıcıdan alınan ağ trafiğinin de isteğin OPTIONS ön denetimi olmadan ulaştığını ve sunucunun bunu işlediğini doğruladığı belirtildi.
Bu sorun için AIT-GUI 2.5.2 sürümü 12 Ağustos 2026’da yayımlandı. Güncelleme, yapılandırılan host değerine bağlanıyor ve varsayılanı localhost olarak kullanıyor. Ayrıca POST, PUT, DELETE ve PATCH isteklerinde request’in Origin ya da Referer başlığını sunucunun kendi Host değeriyle karşılaştıran bir before_request kancası ekliyor. Paket, /script/run ve /seq rotalarını da tanımlı kök dizinlerle sınırlandırıyor.
Sürüm notlarında, durum değiştiren uç noktaların artık aynı kökenden gelmeyen tarayıcı isteklerini Origin/Referer ile Host karşılaştırması üzerinden reddettiği, böylece CSRF etkisinin azaltıldığı vurgulandı. Notlarda, bu başlıkların hiçbirini göndermeyen tarayıcı dışı istemcilerin ise etkilenmediği bilgisi de yer aldı. Yani değişiklik, tarayıcı kaynaklı cross-origin istekleri kesiyor; ancak kimlik bilgisi taşımayan komut, betik ya da sıra uç noktalarına tam bir yetkilendirme eklemiyor.
Burada öne çıkan ayrıntı, son sürümde bile oturum açma akışının eksiksiz bir kimlik doğrulama mekanizmasına dönüşmemiş olması. Tagged kaynak kod üzerinde yapılan incelemede, 2.5.2 sürümünde kök rota çağrıldığında Sessions.create() ile her isteğe oturum çerezi verildiği ve bunun herhangi bir credential kontrolünden geçmediği görüldü. Komut rotası da bu çerezi taşıyan her isteği kabul ediyor. Başka bir deyişle, tarayıcıların cross-origin istekleri artık engellense de komut, betik ve sekans uç noktalarına gerçek bir giriş kontrolü eklenmiş değil.
Haberin yayımlandığı tarihte The Hacker News, 20 Ağustos 2026 itibarıyla etiketlenmiş 2.5.2 kaynak kodunu da doğruladığını yazdı. Buna göre sürüm, konsolun dinlediği adresi kısıtlıyor ve tarayıcıdan gelen çapraz kökenli istekleri engelliyor; fakat komut, script ya da sequence uç noktalarına kimlik doğrulama getirmiyor. Aynı inceleme, AIT-GUI paketinin PyPI’daki son yayımlanan sürümünün 27 Temmuz 2023’te yüklenen 2.4.1 olduğunu, 2.5.0, 2.5.1 ve 2.5.2 sürümlerinin yayın geçmişinde görünmediğini de ortaya koydu.
PyPI tarafındaki 2.4.1 kaynağı da aynı hardcoded 0.0.0.0 bağlantısını ve yol oluşturmadaki aynı sınırlandırılmamış yapıyı koruyor. Buna karşın depo, bu sürüm için herhangi bir güvenlik açığı göstermiyor. Uyarıda etkilenen paket ekosistemi olarak pip işaret edildi.
Aynı dosyayı kapsayan ikinci bir kayıt da eksik kimlik doğrulama hatasını ayrı bir referansla ele alıyor. CVE-2026-60112 olarak yayımlanan bu kayıt, CVSS v4 üzerinde 9.3 puan aldı ve Saidakbarxon Maxsudxonov’a atfedildi. Kayıt, 29 Temmuz 2026’da Ulusal Güvenlik Açıkları Veritabanı ile GitHub Advisory Database’e girdi ve Cycode’un yazımından yaklaşık üç hafta önce yayımlandı.
VulnCheck’in yayımladığı uyarı metni, AIT GUI’nin 2.5.1 öncesi sürümlerinde herhangi bir kimlik doğrulama yapmadan Sessions.create() çağrısı üzerinden geçerli bir oturum üretilebildiğini ve bunun da doğrulanmamış ağ saldırganına uzay aracı komutları gönderme imkânı verdiğini söylüyor. Ancak iki kayıt, düzeltme sürümü konusunda birbirini tutmuyor. VulnCheck ve NVD girişi açığı 2.5.1 öncesine yerleştirip yama olarak beb8fc0 commit’ini gösterirken, Cycode kaydı 2.5.1’i etkilenen sürüm, 2.5.2’yi de düzeltilmiş sürüm olarak veriyor. Depodaki kaynak ise kimliksiz oturum üretiminin hem 2.5.1’de hem 2.5.2’de bulunduğunu ortaya koyuyor.
Cycode uyarısında yer alan kapsamın bir bölümü, adı geçen sürüm için tam olarak örtüşmüyor. Uyarı, bulguların 2.5.1 sürümünde ve master dalında doğrulandığını söylüyor. Buna karşın etiketli 2.5.1 kaynak kodu, scriptPath değişkenini /script/run üzerinde zaten canonicalization ve containment kontrolüyle sınırlandırıyor. Yani uyarının önerdiği şekilde sınırsız yol oluşturma, 2.5.1’de bu rota için görünmüyor; açık, /seq tarafında kalıyor.
GHSA-p9r8-2q67-fp86 GitHub’ın küresel advisory veritabanında yer almıyor. CVE-2026-60112 ise orada incelenmemiş olarak listeleniyor; paket, etkilenen sürüm aralığı ya da Dependabot desteği bilgisi bulunmuyor. PyPI’nin paket güvenlik verilerinde de iki kayıt görünmüyor.
Cycode’un aktardığına göre düzeltme commit’i 10 Temmuz 2026’da Yuval Elbar tarafından yazıldı ve commit mesajında Anthropic’in Claude Opus 4.8 modeline ait bir Co-Authored-By satırı da yer aldı. Yama, 18 regresyon testi ekliyor; mesajda bu testlerin yama öncesi kodda başarısız olduğu, düzeltmeden sonra geçtiği belirtiliyor.
Şirket, hatanın “insan araştırmacının yapay zekâ destekli kod analiziyle birlikte çalıştığı” bir süreçte bulunduğunu yazdı. Her iki kayıt da yazılımı kullanan bir görev veya aktif bir istismar örneği adlandırmıyor. Buna karşın GitHub Advisory Database, NASA yer yazılımlarına ilişkin başka incelenmemiş kayıtlar da barındırıyor; bunlar arasında AMMOS Instrument Toolkit’te ağ üzerinden tetiklenebilen ve keyfi dosya eklemeye yol açabilen yol gezintisi açığı olarak tanımlanan CVE-2026-47731, NASA-AMMOS Aerie/PlanDev sequencing server için CVE-2026-71214 ve Asynchronous Network Management System referans uygulaması için CVE-2026-71289 bulunuyor.
Toolkit’in çekirdek kütüphanelerinde ise daha eski ve kapanmamış bir kayıt duruyor. CVE-2024-35058, NASA AIT-Core içindeki API wait fonksiyonunda kritik uzaktan kod çalıştırma açığı olarak Mayıs 2024’te yayımlandı; 2.5.2 ve öncesini etkiliyor ve GitHub Advisory Database kaydı hâlâ yamalı sürüm bilgisini boş bırakıyor. Ayrıntılar için NVD kaydı: https://nvd.nist.gov/vuln/detail/CVE-2026-60112
