CVE-2024-43806: `rustix::fs::Dir` iterator with the `linux_raw` backend can cause memory explosion
Noroxi değerlendirmesi
Öncelik: İzleyin (aksiyon skoru 26/100)
- İzlediğimiz kaynaklarda (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) herkese açık istismar kodu ya da sahada sömürü kaydı yok.
- Önümüzdeki 30 günde sömürülme olasılığı %0,48 (FIRST EPSS).
- İnternetten erişebilen herkes tetikleyebilir. Düşük yetkili bir hesap yeterli. Kullanıcının bir şey yapması gerekmez. Özel bir koşul gerekmez; tekrarlanabilir.
- Düzeltilmiş sürüm: CBL Mariner 2.0 ARM 1.72.0-9; CBL Mariner 2.0 x64 1.72.0-9.
Şimdilik düşük öncelik. CBL Mariner 2.0 ARM 1.72.0-9; CBL Mariner 2.0 x64 1.72.0-9 ya da daha yeni sürüme yükseltin.
Kaydın verisinden otomatik üretilir: CVSS (NVD ve CNA), CISA KEV ve SSVC, FIRST EPSS, istismar kaynakları, düzeltme sürümleri. Nasıl hesaplıyoruz
Birincil kaynaklar: NVD · CVE.org · FIRST EPSS
Rustix is a set of safe Rust bindings to POSIX-ish APIs. When using `rustix::fs::Dir` using the `linux_raw` backend, it's possible for the iterator to "get stuck" when an IO error is encountered. Combined with a memory over-allocation issue in `rustix::fs::Dir::read_more`, this can cause quick and unbounded memory explosion (gigabytes in a few seconds if used on a hot path) and eventually lead to an OOM crash of the application. The symptoms were initially discovered in https://github.com/imsnif/bandwhich/issues/284. That post has lots of details of our investigation. Full details can be read on the GHSA-c827-hfw6-qwvm repo advisory. If a program tries to access a directory with its file descriptor after the file has been unlinked (or any other action that leaves the `Dir` iterator in the stuck state), and the implementation does not break after seeing an error, it can cause a memory explosion. As an example, Linux's various virtual file systems (e.g. `/proc`, `/sys`) can contain directories that spontaneously pop in and out of existence. Attempting to iterate over them using `rustix::fs::Dir` directly or indirectly (e.g. with the `procfs` crate) can trigger this fault condition if the implementation decides to continue on errors. An attacker knowledgeable about the implementation details of a vulnerable target can therefore try to trigger this fault condition via any one or a combination of several available APIs. If successful, the application host will quickly run out of memory, after which the application will likely be terminated by an OOM killer, leading to denial of service. This issue has been addressed in release versions 0.35.15, 0.36.16, 0.37.25, and 0.38.19. Users are advised to upgrade. There are no known workarounds for this issue.
- GHSA-c827-hfw6-qwvm
- openSUSE-SU-2024:14306-1
- openSUSE-SU-2024:14354-1
- openSUSE-SU-2025:15294-1
- openSUSE-SU-2026:20396-1
- SUSE-SU-2024:3404-1
- SUSE-SU-2025:02809-1
- SUSE-SU-2025:02810-1
- SUSE-SU-2025:02811-1
- SUSE-SU-2025:20057-1
- SUSE-SU-2025:20858-1
- SUSE-SU-2025:4411-1
- SUSE-SU-2026:20755-1
- SUSE-SU-2026:20910-1
- SUSE-SU-2026:3022-1
- Yayın
- 26 Ağu 2024
- Güncelleme
- 17 Haz 2026
- EPSS
- %0,4 · 41. yüzdelik
- CWE
- CWE-400
Rapor araçları
Aksiyon skoru
26
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 26 / 40 · 6.5 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %0,4
CISA SSVC kararı
- Sömürü
- kavram kanıtı
- Otomatikleştirilebilir
- hayır
- Teknik etki
- kısmi
Vulnrichment: CISA'nın karar ağacı girdileri.
CNA ile NVD puanı
- NVD
- —
- CNA · GitHub_M
- 6,5
- NVD henüz kendi puanını vermedi; gösterilen puan CNA’nın.
Kaydı açan otoritenin puanı ile NVD’nin bağımsız puanı. İki puan arasındaki fark ciddiyetin tartışmalı olduğunu gösterir.
Bu kayıt değişirse haber alın
- KEV'de değil: sahada sömürü kaydı yok
- Herkese açık istismar kodu kaydı yok
- Düzeltme yayımlandı
Bunlardan biri değişirse günlük e-posta özetinde haber veririz.
WordPress siteniz mi var? WP Lens ile ücretsiz tarayın
Noroxi analizi
Sizin ortamınızda ne anlama geliyor?
Yukarıdaki değerlendirme kaydın verisinden otomatik üretilir; ortamınızı bilmez. Bu açığın sizde gerçekten sömürülebilir olup olmadığını ve hangi önlemin yeteceğini ekibimiz sizin sistemlerinizde doğrular.
Bu ürünü kullanıyoruz, yardım isteyinEtkilenen sistemler
Sürümünüz etkileniyor mu?
Ürünü seçip kullandığınız sürümü yazın. Bu kaydın sürüm aralıklarıyla tarayıcınızda karşılaştırılır; sürüm hiçbir yere gönderilmez.
| Üretici | Ürün | CPE |
|---|---|---|
| bytecodealliance | rustix | cpe:2.3:a:bytecodealliance:rustix |
Üreticinin bildirdiği sürümler
Kaydı açan otorite (GitHub_M) tarafından bildirilen etkilenen sürüm aralıkları. NVD'nin CPE analizinden bağımsızdır ve genellikle ondan önce gelir.
bytecodealliance rustix
- >= 0.35.11, < 0.35.15, >= 0.36.0, < 0.36.16, >= 0.37.0, < 0.37.25, >= 0.38.0, < 0.38.19etkilenir
Paket düzeyi etkilenme
OSV ve GitHub Advisory verisi: ekosistem, paket ve aralık. SBOM eşleşmesi bu tabloyu kullanır.
| Ekosistem | Paket | Etkilenen aralık | Düzeltme |
|---|---|---|---|
| crates.io | rustix | 0.35.11 itibarıyla · 0.35.15 öncesi | 0.35.15 |
| crates.io | rustix | 0.36.0 itibarıyla · 0.36.16 öncesi | 0.36.16 |
| crates.io | rustix | 0.37.0 itibarıyla · 0.37.25 öncesi | 0.37.25 |
| crates.io | rustix | 0.38.0 itibarıyla · 0.38.19 öncesi | 0.38.19 |
| Debian:12 | rust-rustix | 0 itibarıyla | — |
| Debian:13 | rust-rustix | 0.38.21-1 öncesi | 0.38.21-1 |
| openSUSE:Leap 15.5 | rage-encryption | 0.10.0+0-150500.3.6.1 öncesi | 0.10.0+0-150500.3.6.1 |
| openSUSE:Leap 16.0 | librsvg | 2.60.2-160000.1.1 öncesi | 2.60.2-160000.1.1 |
| openSUSE:Tumbleweed | 389-ds | 3.1.1~git13.a9c7ff9-1.1 öncesi | 3.1.1~git13.a9c7ff9-1.1 |
| openSUSE:Tumbleweed | rage-encryption | 0.10.0+0-3.1 öncesi | 0.10.0+0-3.1 |
| openSUSE:Tumbleweed | rust-keylime | 0.2.7+70-2.1 öncesi | 0.2.7+70-2.1 |
| SUSE:Linux Enterprise Micro 5.3 | librsvg | 2.52.12-150400.3.9.1 öncesi | 2.52.12-150400.3.9.1 |
| SUSE:Linux Enterprise Micro 5.3 | rust-keylime | 0.2.7+141-150400.3.7.1 öncesi | 0.2.7+141-150400.3.7.1 |
| SUSE:Linux Enterprise Micro 5.4 | rust-keylime | 0.2.7+141-150400.3.5.1 öncesi | 0.2.7+141-150400.3.5.1 |
| SUSE:Linux Enterprise Micro 5.5 | rust-keylime | 0.2.7+141-150500.3.5.1 öncesi | 0.2.7+141-150500.3.5.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | rage-encryption | 0.10.0+0-150500.3.6.1 öncesi | 0.10.0+0-150500.3.6.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | sccache | 0.16.0~0-150600.10.11.1 öncesi | 0.16.0~0-150600.10.11.1 |
| SUSE:Linux Micro 6.0 | rust-keylime | 0.2.6+13-1.1 öncesi | 0.2.6+13-1.1 |
| SUSE:Linux Micro 6.1 | rust-keylime | 0.2.8+12-slfo.1.1_1.1 öncesi | 0.2.8+12-slfo.1.1_1.1 |
| SUSE:Linux Micro 6.2 | librsvg | 2.60.2-160000.1.1 öncesi | 2.60.2-160000.1.1 |
Düzeltme
Hangi sürüme geçmeli
Üretici, paket deposu ve Microsoft kayıtlarından derlenen düzeltme sürümleri. Yükseltmeden önce üreticinin notunu doğrulayın.
| Ürün / paket | Düzeltilmiş sürüm | Kaynak |
|---|---|---|
| CBL Mariner 2.0 ARM | 1.72.0-9 · rust | Microsoft (MSRC) |
| CBL Mariner 2.0 x64 | 1.72.0-9 · rust | Microsoft (MSRC) |
| crates.io:rustix | 0.35.15 | Paket deposu (OSV) |
| crates.io:rustix | 0.36.16 | Paket deposu (OSV) |
| crates.io:rustix | 0.37.25 | Paket deposu (OSV) |
| crates.io:rustix | 0.38.19 | Paket deposu (OSV) |
| debian:rust-rustix | 0.38.21-1 · Debian:13 | Paket deposu (OSV) |
| opensuse:389-ds | 3.1.1~git13.a9c7ff9-1.1 · openSUSE:Tumbleweed | Paket deposu (OSV) |
| opensuse:librsvg | 2.60.2-160000.1.1 · openSUSE:Leap 16.0 | Paket deposu (OSV) |
| opensuse:rage-encryption | 0.10.0+0-150500.3.6.1 · openSUSE:Leap 15.5 | Paket deposu (OSV) |
| opensuse:rust-keylime | 0.2.7+70-2.1 · openSUSE:Tumbleweed | Paket deposu (OSV) |
| suse:librsvg | 2.52.12-150400.3.9.1 · SUSE:Linux Enterprise Micro 5.3 | Paket deposu (OSV) |
| suse:rage-encryption | 0.10.0+0-150500.3.6.1 · SUSE:Linux Enterprise Module for Basesystem 15 SP5 | Paket deposu (OSV) |
| suse:rust-keylime | 0.2.7+141-150400.3.7.1 · SUSE:Linux Enterprise Micro 5.3 | Paket deposu (OSV) |
| suse:sccache | 0.16.0~0-150600.10.11.1 · SUSE:Linux Enterprise Module for Development Tools 15 SP7 | Paket deposu (OSV) |
İstismar durumu
Bilinen kamuya açık istismar yok
Şu an kamuya açık bir istismar görülmedi. Bu, güvende olduğunuz anlamına gelmez; yalnızca eşiğin biraz daha yüksek olduğunu gösterir.
Araştırma bağlamı
Pentester ve araştırmacı için: saldırı profili, puan anlaşmazlığı, zaman çizelgesi, yama commit’leri, kredi, varyant ve zincir adayları, bug bounty kapsamı. Hepsi mevcut veriden türetilir; istismar kodu içermez.
Zaman çizelgesi
Yayından bugüne: kavram kanıtı, Metasploit modülü, CISA KEV ve düzeltme kaydı. Tarihler kaynakların bildirdiği tarihlerdir.
Yayın dışında tarihli olay yok.
Henüz geçmiş yok (kayıt günlük EPSS işiyle birikir).
Yama ve commit bağlantıları
Referanslardaki commit, PR ve diff adresleri. Patch-diff ve varyant avı için başlangıç noktası; istismar değil, düzeltmedir.
Referanslarda commit ya da PR bağlantısı yok.
Kredi
Tüm araştırmacılarCNA kaydında adı geçen bulan, bildiren ve analistler. Ada tıklayın, aynı araştırmacının diğer kayıtlarını görün.
CNA kaydında kredi yok.
Varyant adayları
Aynı üründe aynı zafiyet sınıfı, 18 ay içinde. Yama kök nedeni kapatmadıysa kardeş hata burada olur.
Gece hesaplanan ilişki yok.
Zincir adayları
Aynı üründe kimlik doğrulama atlatma ile yetki isteyen bir açık kısa aralıkla yayımlanmış: birlikte kimlik doğrulamasız bir yola dönüşebilir.
—
Bug bounty kapsamı
Bilinen herkese açık program yok.
Kaynak: bounty-targets-data (HackerOne, Bugcrowd, Intigriti, YesWeHack herkese açık listeleri).
Teknik detay
Saldırı koşulları
- İnternetten erişebilen herkes tetikleyebilir.
- Düşük yetkili bir hesap yeterli.
- Kullanıcının bir şey yapması gerekmez.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yok
- Bütünlük
- yok
- Erişilebilirlik
- yüksek · hizmet durdurulabilir
- Saldırı vektörü
- Ağ
- Karmaşıklık
- Düşük
- Gereken yetki
- Düşük
- Kullanıcı etkileşimi
- Gerekmez
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yok
- Bütünlük etkisi
- Yok
- Erişilebilirlik etkisi
- Yüksek
Zayıflık sınıfı (CWE)
CWE-400 · Uncontrolled Resource ConsumptionCVSS vektörü
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
nvd-secondary
Kök neden
İç içe yapıları çözümleyen kod derinlik ya da boyut sınırı koymuyor. Küçük bir girdi orantısız işlem yüküne dönüşebilir.
Hatanın kod karşılığı
CWE-400 sınıfının tamamıBu zafiyet sınıfının temsili örneği. Üreticinin kaynak kodu değildir; hatalı kalıbı ve düzeltmesini gösterir.
Hatalı
function expand(node) {
return node.children.map(expand);
}Düzeltilmiş
const MAX_DEPTH = 32;
function expand(node, depth = 0) {
if (depth > MAX_DEPTH) throw new Error("çok derin");
return node.children.map((c) => expand(c, depth + 1));
}Saldırı bağlamı
Bu zafiyet sınıfının (CWE) MITRE CAPEC saldırı desenleri ve ATT&CK teknikleri. Tespit kuralı ve tehdit avı için başlangıç noktası.
Saldırı desenleri (CAPEC)
ATT&CK teknikleri
Değişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
Tüm referansları göster (1 daha)Daha az göster
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.