CVE-2026-84372
KritikTeknik Veri (Otomatik)
- CVSS Skoru
- 9.8
- EPSS
- 0.4%
- CWE
- CWE-93
- KEV Durumu
- Hayır
Yayım tarihi: 1 Eylül 2026
Predis, PHP için esnek ve özelliklerle dolu bir Redis ve Valkey istemcisidir. 3.0.0-RC1 sürümünden 3.3.0 sürümüne kadar, toplu küme ve çoğaltma bağlantılarında pipeline işlemleri, AbstractAggregateConnection::write() içinde zaten seri hale getirilmiş olan RESP arabelleğini explode("\r\n") ile bölerek RESP uzunluk ön eklerini dikkate almaz. Saldırgan tarafından kontrol edilen anahtarlar veya değerler, CRLF dizilerini içerdiğinden, Command::deserializeCommand() tarafından ek komutlar olarak yorumlanabilir. Küme bağlantılarında, ClusterStrategy::getFakeKey(), enjekte edilen anahtarsız komutları "key" literal sahte anahtar değerini kullanarak yönlendirebilir ve bu da küme geneli önbellek silme, hedefli veri değiştirme, veri okumaları veya düğüm bozulmasına izin verebilir. Çoğaltma bağlantılarında, hatalı yeniden ayrıştırma, bir yakalanmamış istisna oluşturabilir ve etkilenen istekleri tekrar tekrar sonlandırabilir. Sadece pipeline(), bu savunmasız yola ulaşır; transaction() ve MULTI etkilenmez. Bu sorun 3.3.0 sürümünde giderilmiştir.
Orijinal açıklama (İngilizce)
Predis is a flexible and feature-complete Redis and Valkey client for PHP. From version 3.0.0-RC1 until version 3.3.0, pipeline handling on aggregate cluster and replication connections reparses an already serialized RESP buffer in AbstractAggregateConnection::write() by splitting it with explode("\r\n") instead of honoring RESP length prefixes. Attacker-controlled keys or values containing CRLF sequences can therefore be interpreted by Command::deserializeCommand() as additional commands. On cluster connections, ClusterStrategy::getFakeKey() can route injected keyless commands using the literal fake key value "key", permitting operations such as shard-wide cache deletion, targeted data modification, data reads, or node disruption. On replication connections, malformed reparsing can throw an uncaught exception and repeatedly terminate affected requests. Only pipeline() reaches this vulnerable path; transaction() and MULTI are not affected. This issue is fixed in version 3.3.0.
Referanslar
- https://github.com/predis/predis/commit/053cb4b6ac7fb1f469ead96a78d059bc0458e408
- https://github.com/predis/predis/issues/1574
- https://github.com/predis/predis/pull/1586
- https://github.com/predis/predis/releases/tag/v3.3.0
- https://github.com/predis/predis/security/advisories/GHSA-w6f5-v2h6-g786
- https://github.com/predis/predis/issues/1574
Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.