Dirty Pipe (CVE-2022-0847), Linux kernel 5.8+ sürümlerinde pipe_buffer yapısının "flags" alanının yanlış yönetilmesinden kaynaklanan bir local privilege escalation zafiyetidir. Temel sorun, "PIPE_BUF_FLAG_CAN_MERGE" bayrağının set edilmesiyle, sayfa cache’deki salt-okunur sayfaların üzerine yazılabilmesidir. Bu sayede attacker, /etc/passwd veya herhangi bir dosyaya doğrudan write yapabilir.
Zafiyetin tetiklenmesi için şu adımlar izlenir:
1. pipe() ile yeni bir pipe oluşturulur.
2. splice() syscall’ı ile hedef dosyanın bir kısmı pipe’a kopyalanır (offset ve length kontrolü kritik).
3. write() ile pipe’a veri yazılırken, kernel yanlışlıkla sayfa cache’deki orijinal veriyi overwrite eder.
Aşağıdaki teknik detaylar ve PoC, kernel 5.10.102’ye kadar çalışan versiyonu kapsamaktadır.
Exploit sonrası “id” komutu ile root yetkisi doğrulanabilir. Kernel 5.16.11 ve sonrası için patch uygulanmış olsa da, container ortamlarında (özellikle Docker default seccomp) hâlâ tetiklenebilir. Blue Team için öneri: kernel sürümünü 5.16.11+’a yükseltmek ve “kernel.unprivileged_userns_clone=0” sysctl ayarı ile user namespace’leri kısıtlamaktır.
Zafiyetin tetiklenmesi için şu adımlar izlenir:
1. pipe() ile yeni bir pipe oluşturulur.
2. splice() syscall’ı ile hedef dosyanın bir kısmı pipe’a kopyalanır (offset ve length kontrolü kritik).
3. write() ile pipe’a veri yazılırken, kernel yanlışlıkla sayfa cache’deki orijinal veriyi overwrite eder.
Aşağıdaki teknik detaylar ve PoC, kernel 5.10.102’ye kadar çalışan versiyonu kapsamaktadır.
Hidden content - for more
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
Bu içeriği görmek için giriş yapın.