Paip Kotor: kelemahan yang membolehkan data ditimpa

Baru-baru ini berita itu menyahkannya kelemahan telah dikenal pasti dalam kernel Linux dan yang telah dikatalogkan di bawah CVE-2022-0847 dan yang mereka namakan sebagai "Paip Kotor".

Kerentanan ini digelar "Paip Kotor"membenarkan untuk menulis ganti kandungan cache halaman untuk sebarang fail, termasuk yang ditetapkan kepada baca sahaja, dibuka dengan bendera O_RDONLY, atau terletak pada sistem fail yang dipasang baca sahaja.

Dari segi praktikal, kelemahan boleh digunakan untuk menyuntik kod ke dalam proses sewenang-wenangnya atau data yang rosak dalam fail terbuka. Sebagai contoh, anda boleh menukar kandungan fail authorized_keys untuk proses sshd.

Mengenai Paip Kotor

Ia serupa dengan kelemahan kritikal Dirty COW dikenal pasti pada 2016 dan Dirty Pipe disebut berada pada tahap yang sama dengan Dirty COW dari segi bahaya, tetapi yang ini lebih mudah untuk dikendalikan.

Paip Kotor telah dikenal pasti semasa analisis aduan mengenai kerosakan berkala pada arkib dimuat turun melalui rangkaian pada sistem yang memuat turun fail termampat daripada pelayan pengelogan (37 kerosakan dalam 3 bulan pada sistem yang dimuatkan), yang disediakan menggunakan operasi splice() dan paip tidak dinamakan.

Kerentanan telah dimanifestasikan sejak kernel Linux versi 5.8, dikeluarkan pada Ogos 2020.

Melihat cara lain kita boleh mengatakan bahawa ia hadir dalam Debian 11 tetapi ia tidak menjejaskan kernel asas dalam Ubuntu 20.04 LTS, manakala untuk kernel RHEL 8.x dan openSUSE/SUSE 15 yang asalnya berdasarkan cawangan lama, tetapi ia mungkin bahawa perubahan yang menyebabkan masalah telah dipindahkan kepada mereka (belum ada data yang tepat).

Kerentanan ini disebabkan oleh kekurangan permulaan nilai "buf->flags" dalam kod fungsi copy_page_to_iter_pipe() dan push_pipe(), walaupun memori tidak dibersihkan apabila struktur diperuntukkan, dan dengan manipulasi tertentu dengan tanpa nama. paip, "buf->flags" mungkin mengandungi nilai daripada operasi lain. Dengan ciri ini, pengguna tempatan yang tidak mempunyai hak istimewa boleh mencapai penampilan nilai PIPE_BUF_FLAG_CAN_MERGE dalam bendera, membolehkan mereka menulis ganti data dalam cache halaman hanya dengan menulis data baharu pada paip tidak bernama yang disediakan khas.

untuk serangan boleh dilakukan, anda memerlukan fail sasaran yang mesti boleh dibaca dan oleh kerana hak capaian tidak disemak semasa menulis pada paip, penggantian boleh dilakukan pada cache halaman, walaupun untuk fail yang terletak pada partition baca sahaja (contohnya, untuk fail CD-ROM c).

Dengan ini, selepas menggantikan maklumat dalam cache halaman, proses, apabila membaca data dari fail, tidak akan menerima data sebenar, tetapi yang diganti.

Disebutkan bahawa operasi Dirty Pipe bermula untuk mencipta paip yang tidak dinamakan dan mengisinya dengan data sewenang-wenangnya untuk mencapai penetapan bendera PIPE_BUF_FLAG_CAN_MERGE pada semua struktur gelang yang dikaitkan dengannya.

Data kemudiannya dibaca daripada paip, tetapi bendera tetap ditetapkan pada semua contoh struktur pipe_buffer dalam struktur cincin pipe_inode_info. Kemudian panggilan ke splice() dibuat untuk membaca data daripada fail destinasi ke dalam paip yang tidak dinamakan, bermula pada offset yang diperlukan. Apabila menulis data pada paip yang tidak dinamakan ini, bendera PIPE_BUF_FLAG_CAN_MERGE akan menimpa data dalam cache halaman dan bukannya membuat contoh baharu struktur pipe_buffer.

Akhirnya Sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butiran dalam nota asal Dalam pautan berikut.

Juga, jika anda berminat boleh mengikuti atau mengetahui tentang penerbitan kemas kini daripada pakej dalam pengedaran utama, anda boleh melakukannya dari halaman ini: DebianSUSEUbuntuRHELFedoraGentooArchLinux.

Disebutkan bahawa cadangan pembaikan kelemahan tersedia dalam Linux Kernel versi 5.16.11, 5.15.25 dan 5.10.102 dan pembaikan itu juga disertakan dalam kernel yang digunakan pada platform Android.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.