Siber Güvenlik

SAP, Python Cloud SDK'da OAuth2 kimlik bilgisi çalınmasına yol açan kritik CVSS 10 açık açıkladı

SAP, Python Cloud SDK'da OAuth2 kimlik bilgisi çalınmasına yol açan kritik CVSS 10 açık açıkladı

SAP, 13 Ekim'de yayımladığı güvenlik duyurusunda Python için Cloud SDK'daki bir açığın uygulamanın OAuth2 istemci kimlik bilgilerini saldırganın kontrol ettiği bir sunucuya gönderebileceğini açıkladı. Açık, SAP Business Technology Platform (BTP) üzerinde çalışan ve SDK'yı kullanan çok kiracılı uygulamaları etkiliyor. SDK, BTP hizmetleri için SAP'ın resmi Python istemcisi. Saldırganın, uygulamanın hangi kiracı için istek yaptığını belirtmek üzere SDK'ya ilettiği kiracı alt alan adını kontrol edebilmesi gerekiyor.

Açık CVE-2026-89111 olarak izleniyor ve SAP'ın verdiği CVSS puanı 10.0 üzerinden 10. Duyuruda düzeltmenin 0.45.2 sürümünde, 21 Ağustos'ta yayımlanan sürümde yer aldığı belirtildi.

SDK, söz konusu hizmetler için kimlik doğrulamayı uygulamanın istemci kimlik bilgileriyle, istemci kimliği ve istemci sırrıyla gerçekleştiriyor. 0.45.2 sürümü, basit bir ad olmayan kiracı alt alan adlarını reddeden bir kontrol ekledi.

The Hacker News'in bulgusuna göre daha sonraki altı sürüm bu kontrolü her durumda uygulamıyor. 10 Eylül ile 18 Eylül arasında yayımlanan 0.53.0 ile 0.55.0 sürümleri, bir uygulama SDK'nın Destination hizmet modülünü çağırdığında kontrolü atlıyor.

0.53.0 sürümü söz konusu modülü jeton istemek için yeni ortak koda taşıdı ve bu kod kontrolü içermiyordu. 0.55.1 sürümü 18 Eylül'de bu kontrolü ekledi.

0.55.1 sürüm notlarında, "URL sınırlayıcıları içeren bir kiracı alt alan adı geçildiğinde artık kimlik bilgileri saldırganın kontrolündeki bir uç noktaya sessizce yönlendirilmek yerine hemen ValueError yükseltmesi yapıyor" denildi.

The Hacker News, 13 Ekim'de SAP'ın kontrol için kendi testlerini çalıştırdı. Testler 0.45.1'den 0.58.4'e kadar her sürümün kaynak kodu ve üç 0.36 sürümü üzerinde yapıldı. Altı sürüm, 0.55.1 ile SAP'ın eklediği 11 testten 9'unu geçemedi. Bu sürüm ve sonrasındaki 11 sürüm tüm 11 testi geçti.

13 Ekim itibarıyla duyuruda 0.45.2'nin üzerinde etkilenen bir sürüm listelenmiyor. Ne duyuruda ne de sürüm notlarında altı sürümün CVE-2026-89111 kapsamında olup olmadığı belirtiliyor.

Eski 0.36 hattındaki iki sürüm de kontrolü içermiyor. 4 Eylül ve 10 Eylül'de yayımlanan 0.36.1 ve 0.36.2 sürümleri, Ağustos düzeltmesi sonrasında geldi ve SAP'ın yazdığı testleri geçemedi. Her ikisi de duyurudaki 0.45.2'nin altındaki sürüm aralığına giriyor.

Kiracı alt alan adı kontrolü

0.45.2'nin altı, 0.36.1 ve 0.36.2 dahil

SAP duyurusu. The Hacker News'in 0.36.0, 0.36.1, 0.36.2 ve 0.45.1 testleri.

0.45.2'den 0.52.2'ye

The Hacker News'in tüm 18 sürüm testi.

0.53.0'dan 0.55.0'a

Destination çağrılarında eksik. 0.55.0'da Belge Yönetim Hizmeti çağrılarında da eksik.

SAP'ın 0.55.1 sürüm notları. The Hacker News'in tüm 6 sürüm testi.

0.55.1'den 0.58.4'e

The Hacker News'in tüm 12 sürüm testi.

Ne Yapılmalı

0.45.2'den 0.52.2'ye ve 0.55.1'den 0.58.4'e kadar olan sürümler kontrolü içeriyor. 0.58.4, 13 Ekim'de Python paket dizini PyPI'de en yeni sürümdü.

0.36 hattında yükseltme yapmak kontrolü eklemiyor. Üç sürümünün hiçbirinde bu kontrol bulunmuyor.

Henüz yükseltme yapamayan uygulamalar, SAP'ın duyurusunda belirttiğine göre kiracı alt alan adını SDK'ya geçirmeden önce kendi kayıtlı kiracıları listesiyle karşılaştırabilir.

Açık yalnızca bir uygulama kiracı alt alan adını SDK'ya ilettiğinde önem kazanıyor. Ağustos düzeltmesi üç modülü kapsıyordu: Agent Gateway, Destination ve Belge Yönetim Hizmeti.

Duyuruda, kontrolü olmayan bir sürüm çalıştıran uygulamaların istemci kimlik bilgilerini değiştirmesi gerekip gerekmediği belirtilmiyor.

Açık Nasıl Çalışıyor

Bir uygulama kiracı alt alan adını ilettiğinde SDK, o kiracı için bir erişim jetonu istemi yapıyor. Bunun için uygulamanın yapılandırmasındaki jeton URL'sini alıyor ve bir kısmını kiracı alt alan adıyla değiştiriyor.

Kontrolü olmayan sürümler verilen değeri olduğu gibi kullanıyordu. SDK daha sonra jetonu istemek için uygulamanın istemci kimliğini ve istemci sırrını oluşan URL'ye gönderiyordu.

SAP'a göre kiracı alt alan adını kontrol eden bir saldırgan bu isteği kendi sunucusuna yönlendirebiliyor.

Kontrol, yalnızca harf, rakam ve tirelerden oluşan, en fazla 63 karakter uzunluğunda tek bir ad kabul ediyor. Başka bir değer isteği hata ile durduruyor.

SAP açığı sunucu tarafı istek sahteciliği olarak niteliyor. Bu zayıflıkta bir sunucu istemediği bir hedefe istek göndermeye zorlanabiliyor.

Saldırganın kimlik bilgileriyle ne yapabileceği, uygulamanın istemcisinin ne yapma yetkisine sahip olduğuna bağlı. Duyuruda bu konuda bilgi verilmiyor.

Ağustosta Düzeltildi, ekimde Açıklandı

Denetimsiz kod, SDK'nın PyPI'de 16 Mart'ta yayımlanan ilk sürümünden beri bulunuyordu.

Ağustos sürüm notlarında düzeltme "Hata Düzeltmeleri" altında listelenmiş ve güvenlikten söz edilmemiş. Notlarda "Önceden geçersiz değerler sessizce kullanılarak hatalı bir URL oluşturuluyordu" denildi.

Duyuru 53 gün sonra geldi. Açığın bildirilmesinde GitHub kullanıcısı SunandM'e teşekkür edildi ve herhangi bir saldırı bildirimi yapılmadı.

Kaynak: The Hacker News

Paylaş:

Yapay zekâ asistanları için: bu haberin Markdown (.md) sürümü