Ruby before 2.4.3 allows Net::FTP command injection.
Ruby before 2.4.3 allows Net::FTP command injection. Net::FTP#get, getbinaryfile, gettextfile, put, putbinaryfile, and puttextfile use Kernel#open to open a local file. If the localfile argument starts with the "|" pipe character, the command following the pipe character is executed. The default value of localfile is File.basename(remotefile), so malicious FTP servers could cause arbitrary command execution.
- Yayın
- 15 Ara 2017
- Güncelleme
- 16 Haz 2026
- EPSS
- %73,8 · 99. yüzdelik
- CWE
- CWE-78
Takip etmek için giriş yap · Takip ettiğin kayıt KEV’e girer, istismarı çıkar ya da güncellenirse bildirim alırsın.
Rapor araçları
Aksiyon skoru
57
Planlayın
Olağan yama döngüsüne alın.
- CVSS
- 35 / 40 · 8.8 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 22 / 30 · %73,8
Etkilenen sistemler
| Üretici | Ürün | CPE |
|---|---|---|
| ruby-lang | ruby | cpe:2.3:a:ruby-lang:ruby |
| debian | debian linux | cpe:2.3:o:debian:debian_linux |
| redhat | enterprise linux desktop | cpe:2.3:o:redhat:enterprise_linux_desktop |
| redhat | enterprise linux server | cpe:2.3:o:redhat:enterprise_linux_server |
| redhat | enterprise linux server aus | cpe:2.3:o:redhat:enterprise_linux_server_aus |
| redhat | enterprise linux server eus | cpe:2.3:o:redhat:enterprise_linux_server_eus |
| redhat | enterprise linux server tus | cpe:2.3:o:redhat:enterprise_linux_server_tus |
| redhat | enterprise linux workstation | cpe:2.3:o:redhat:enterprise_linux_workstation |
Etkilenen sürümler
NVD sürüm aralıkları (katalogdaki ürünler için). Stack’ine sürümle eklersen eşleşme bunlarla yapılır.
- debian debian linux7.0
- debian debian linux8.0
- debian debian linux9.0
- redhat enterprise linux desktop7.0
- redhat enterprise linux server7.0
- redhat enterprise linux server aus7.4
- redhat enterprise linux server aus7.6
- redhat enterprise linux server eus7.4
- redhat enterprise linux server eus7.5
- redhat enterprise linux server eus7.6
- redhat enterprise linux server tus7.4
- redhat enterprise linux server tus7.6
- redhat enterprise linux workstation7.0
- ruby-lang ruby2.4 ve sonrası · 2.4.2 dahil
- ruby-lang ruby2.3 ve sonrası · 2.3.5 dahil
- ruby-lang ruby2.2 ve sonrası · 2.2.8 dahil
- ruby-lang ruby2.5.0
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 |
|---|---|---|---|
| Alpine:v3.10 | ruby | 2.2 itibarıyla · 2.4.3-r0 öncesi | 2.4.3-r0 |
| Alpine:v3.3 | ruby | 2.2 itibarıyla · 2.2.9-r0 öncesi | 2.2.9-r0 |
| Alpine:v3.4 | ruby | 2.2 itibarıyla · 2.3.6-r0 öncesi | 2.3.6-r0 |
| Debian:7 | ruby1.8 | 1.8.7.358-7.1+deb7u5 öncesi | 1.8.7.358-7.1+deb7u5 |
| Debian:7 | ruby1.9.1 | 1.9.3.194-8.1+deb7u7 öncesi | 1.9.3.194-8.1+deb7u7 |
| Debian:8 | ruby2.1 | 2.1.5-2+deb8u4 öncesi | 2.1.5-2+deb8u4 |
| Debian:9 | ruby2.3 | 2.3.3-1+deb9u3 öncesi | 2.3.3-1+deb9u3 |
| Red Hat:enterprise_linux:7::client | ruby | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-debuginfo | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-devel | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-doc | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-irb | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-libs | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | ruby-tcltk | 0:2.0.0.648-33.el7_4 öncesi | 0:2.0.0.648-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-bigdecimal | 0:1.2.0-33.el7_4 öncesi | 0:1.2.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-io-console | 0:0.4.2-33.el7_4 öncesi | 0:0.4.2-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-json | 0:1.7.7-33.el7_4 öncesi | 0:1.7.7-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-minitest | 0:4.3.2-33.el7_4 öncesi | 0:4.3.2-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-psych | 0:2.0.0-33.el7_4 öncesi | 0:2.0.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-rake | 0:0.9.6-33.el7_4 öncesi | 0:0.9.6-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygem-rdoc | 0:4.0.0-33.el7_4 öncesi | 0:4.0.0-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygems | 0:2.0.14.1-33.el7_4 öncesi | 0:2.0.14.1-33.el7_4 |
| Red Hat:enterprise_linux:7::client | rubygems-devel | 0:2.0.14.1-33.el7_4 öncesi | 0:2.0.14.1-33.el7_4 |
| Red Hat:rhel_aus:7.3::server | ruby | 0:2.0.0.648-30.el7_3 öncesi | 0:2.0.0.648-30.el7_3 |
+96
Aynı üründe
ruby-lang: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2008-3656Algorithmic complexity vulnerability in the WEBrick::HTTPUtils.split_header_value function in WEBrick::HTTP::DefaultFileHandler in WEBrick i52Planlayın
- CVE-2021-28966In Ruby through 3.0 on Windows, a remote attacker can submit a crafted path when a Web application handles a parameter with TmpDir.47Planlayın
- CVE-2017-14064Ruby through 2.2.7, 2.3.x through 2.3.4, and 2.4.x through 2.4.1 can expose arbitrary memory during a JSON.generate call.42Planlayın
- CVE-2017-17790The lazy_initialize function in lib/resolv.rb in Ruby through 2.4.3 uses Kernel#open, which might allow Command Injection attacks, as demons41Planlayın
- CVE-2016-2339An exploitable heap overflow vulnerability exists in the Fiddle::Function.new "initialize" function functionality of Ruby.41Planlayın
- CVE-2016-2337Type confusion exists in _cancel_eval Ruby's TclTkIp class method.41Planlayın
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 |
|---|---|---|
| alpine:ruby | 2.4.3-r0 · Alpine:v3.10 | Paket deposu (OSV) |
| debian:ruby1.8 | 1.8.7.358-7.1+deb7u5 · Debian:7 | Paket deposu (OSV) |
| debian:ruby1.9.1 | 1.9.3.194-8.1+deb7u7 · Debian:7 | Paket deposu (OSV) |
| debian:ruby2.1 | 2.1.5-2+deb8u4 · Debian:8 | Paket deposu (OSV) |
| debian:ruby2.3 | 2.3.3-1+deb9u3 · Debian:9 | Paket deposu (OSV) |
| red hat:ruby | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:ruby-debuginfo | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:ruby-devel | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:ruby-doc | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:ruby-irb | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:ruby-libs | 0:2.0.0.648-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygem-bigdecimal | 0:1.2.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygem-io-console | 0:0.4.2-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygem-json | 0:1.7.7-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygem-psych | 0:2.0.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygem-rdoc | 0:4.0.0-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| red hat:rubygems | 0:2.0.14.1-33.el7_4 · Red Hat:enterprise_linux:7::client | Paket deposu (OSV) |
| suse:ruby2.1 | 2.1.9-19.3.2 · SUSE:HPE Helion OpenStack 8 | Paket deposu (OSV) |
| suse:yast2-ruby-bindings | 3.1.53-9.8.1 · SUSE:OpenStack Cloud 7 | Paket deposu (OSV) |
İstismar durumu
Kavram kanıtı mevcut
Kamuya açık bir kavram kanıtı ya da tespit imzası var. İstismar bilgisi dışarıda; yamayı geciktirmeyin.
Kanıt
- Exploit-DB kaydı ×1
Noroxi istismar kodu barındırmaz ve istismar bağlantısı vermez. Metasploit modül adı ve Nuclei şablon kimliği gösterilir (kod değil, ad); Exploit-DB kayıtları ve PoC depoları yalnızca sayı olarak verilir.
| Kaynak | Tür | Tarih |
|---|---|---|
| Exploit-DB kaydı | local | 2017-12-02 |
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.
- İlk kavram kanıtı-13 gün
- Yayın
- Bugün30 Eyl 2026+3211 gün
FIRST EPSS günlük puanı; yalnızca 0,01 ve üstü değişimler kaydedilir (adım grafiği).
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ıkla, aynı araştırmacının diğer kayıtlarını gör.
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ı
Ürünün üreticisi herkese açık bir programda görünüyor. Eşleşme ad üzerinden yapıldı; kapsam metnini programda doğrulayın.
Teknik detay
Saldırı koşulları
- İnternetten erişebilen herkes tetikleyebilir.
- Hesap ya da parola gerekmez.
- Bir kullanıcının bağlantıyı açması ya da sayfayı ziyaret etmesi gerekir.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yüksek · veriler okunabilir
- Bütünlük
- yüksek · veri ya da yapılandırma değiştirilebilir
- Erişilebilirlik
- yüksek · hizmet durdurulabilir
- Saldırı vektörü
- Ağ
- Karmaşıklık
- Düşük
- Gereken yetki
- Yok
- Kullanıcı etkileşimi
- Gerekir
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yüksek
- Bütünlük etkisi
- Yüksek
- Erişilebilirlik etkisi
- Yüksek
Zayıflık sınıfı (CWE)
CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')CVSS vektörü
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
nvd-primary
Kök neden
Kullanıcı girdisi, bir kabuk komutunun içine metin olarak yerleştiriliyor. Kabuk, girdideki özel karakterleri komutun parçası olarak yorumlayabilir.
Hatanın kod karşılığı
CWE-78 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ı
const host = req.body.host;exec("ping -c 1 " + host, onResult);Düzeltilmiş
const host = req.body.host;if (!/^[a-z0-9.-]{1,253}$/i.test(host)) return res.sendStatus(400);execFile("ping", ["-c", "1", host], onResult);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
—
Noroxi analizi
Bu kayıt için henüz Noroxi analizi yok
385 binden fazla zafiyetin tamamına elle analiz yazmıyoruz; bu dürüst olmazdı. Öne çıkan ve sahada etkisi olan zafiyetler için mekanizma, tespit ve kapatma adımlarını ekibimiz yazıyor.
Bu ürünü kullanıyoruz, yardım isteyinDeğişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
- www.securityfocus.com/bid/102204
- www.securitytracker.com/id/1042004
- access.redhat.com/errata/RHSA-2018:0378
- access.redhat.com/errata/RHSA-2018:0583
- access.redhat.com/errata/RHSA-2018:0584
- access.redhat.com/errata/RHSA-2018:0585
- access.redhat.com/errata/RHSA-2019:2806
- lists.debian.org/debian-lts-announce/2017/12/msg00024.html
- lists.debian.org/debian-lts-announce/2017/12/msg00025.html
- lists.debian.org/debian-lts-announce/2018/07/msg00012.html
- www.debian.org/security/2018/dsa-4259
- www.ruby-lang.org/en/news/2017/12/14/net-ftp-command-injection-cve-2017-17405/
- www.ruby-lang.org/en/news/2017/12/14/ruby-2-4-3-released/
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.