CVE-2026-102422
Açıklama
shell-quote'un `quote()` fonksiyonu, bir `{ comment }` belirtecini `#` ve ardından gelen metin olarak yayar; bu durum, sonraki herhangi bir dize belirtecinin açılış tırnağı da dahil olmak üzere kabuk satırının geri kalanını yorum satırı haline getirir. Bu nedenle, söz konusu sonraki dizedeki bir satır sonlandırıcı (\n, \r, U+2028, U+2029), yorum satırını sonlandırır ve dizenin geri kalanı kabuk girdisi olarak ayrıştırılır: `quote(['echo', 'ok', { comment: 'x' }, 'a\nid;#'])` komutu sh, bash, dash, ksh ve zsh üzerinde `id` komutunu çalıştırır. `parse()` fonksiyonu, bir kelimenin ortasındaki `#` karakteri için (örneğin `http://example.com/#frag`) bir yorum belirteci yayar; bu nedenle `quote(parse(untrustedCommand).concat(untrustedArg))` gibi `parse()` çıktısını başka bir güvenilmeyen dizeyle birleştiren çağrılar etkilenir. CVE-2026-9277 için yayınlanan düzeltme, yorumun kendi metni içindeki satır sonlandırıcıları reddetmiş ancak ondan sonra gelen belirteçlerdekileri reddetmemiştir. 1.11.0 sürümünde düzeltildi: Bir `{ comment }` belirtecinden sonra gelen dize bir satır sonlandırıcı içerdiğinde `quote()` artık bir `TypeError` fırlatır.
Nasıl düzeltilir
- shell-quote1.11.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| shell-quotenpm | 1.8.4 ≤ v < 1.11.0 | 1.11.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.