Matrix JavaScript SDK vulnerable to key/device identifier confusion in SAS verification
Matrix JavaScript SDK is the Matrix Client-Server software development kit (SDK) for JavaScript. Prior to version 19.7.0, an attacker cooperating with a malicious homeserver could interfere with the verification flow between two users, injecting its own cross-signing user identity in place of one of the users’ identities. This would lead to the other device trusting/verifying the user identity under the control of the homeserver instead of the intended one. The vulnerability is a bug in the matrix-js-sdk, caused by checking and signing user identities and devices in two separate steps, and inadequately fixing the keys to be signed between those steps. Even though the attack is partly made possible due to the design decision of treating cross-signing user identities as Matrix devices on the server side (with their device ID set to the public part of the user identity key), no other examined implementations were vulnerable. Starting with version 19.7.0, the matrix-js-sdk has been modified to double check that the key signed is the one that was verified instead of just referencing the key by ID. An additional check has been made to report an error when one of the device ID matches a cross-signing key. As this attack requires coordination between a malicious homeserver and an attacker, those who trust their homeservers do not need a particular workaround.
- Yayın
- 29 Eyl 2022
- Güncelleme
- 17 Haz 2026
- EPSS
- %1,2 · 66. yüzdelik
- CWE
- CWE-287
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
30
İzleyin
Şimdilik düşük öncelik.
- CVSS
- 30 / 40 · 7.5 / 10
- CISA KEV
- 0 / 30 · Listede değil
- EPSS
- 0 / 30 · %1,2
CISA SSVC kararı
- Sömürü
- yok
- Otomatikleştirilebilir
- evet
- Teknik etki
- kısmi
Vulnrichment: CISA'nın karar ağacı girdileri.
CNA ile NVD puanı
- NVD
- 7,5
- CNA · GitHub_M
- 8,6
- 1,1 puan fark
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A: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.
Noroxi analizi
Bu kayıt için henüz Noroxi analizi yok
Veritabanındaki yüz binlerce 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 isteyinEtkilenen sistemler
| Üretici | Ürün | CPE |
|---|---|---|
| matrix | javascript sdk | cpe:2.3:a:matrix:javascript_sdk |
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.
- matrix javascript sdk19.7.0 öncesi
Ü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.
matrix-org matrix-js-sdk
- < 19.7.0etkilenir
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 |
|---|---|---|---|
| AlmaLinux:8 | thunderbird | 102.4.0-1.el8_6.alma öncesi | 102.4.0-1.el8_6.alma |
| AlmaLinux:9 | thunderbird | 102.4.0-1.el9_0.alma öncesi | 102.4.0-1.el9_0.alma |
| Debian:11 | node-matrix-js-sdk | tüm sürümler | — |
| npm | matrix-js-sdk | 19.7.0 öncesi | 19.7.0 |
| openSUSE:Tumbleweed | element-desktop | 1.11.8-1.1 öncesi | 1.11.8-1.1 |
| openSUSE:Tumbleweed | element-web | 1.11.8-1.1 öncesi | 1.11.8-1.1 |
| openSUSE:Tumbleweed | MozillaThunderbird | 102.3.1-1.1 öncesi | 102.3.1-1.1 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0:102.4.0-1.el7_9 öncesi | 0:102.4.0-1.el7_9 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0:102.4.0-1.el7_9 öncesi | 0:102.4.0-1.el7_9 |
| Red Hat:enterprise_linux:8::appstream | thunderbird | 0:102.4.0-1.el8_6 öncesi | 0:102.4.0-1.el8_6 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debuginfo | 0:102.4.0-1.el8_6 öncesi | 0:102.4.0-1.el8_6 |
| Red Hat:enterprise_linux:8::appstream | thunderbird-debugsource | 0:102.4.0-1.el8_6 öncesi | 0:102.4.0-1.el8_6 |
| Red Hat:enterprise_linux:9::appstream | thunderbird | 0:102.4.0-1.el9_0 öncesi | 0:102.4.0-1.el9_0 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debuginfo | 0:102.4.0-1.el9_0 öncesi | 0:102.4.0-1.el9_0 |
| Red Hat:enterprise_linux:9::appstream | thunderbird-debugsource | 0:102.4.0-1.el9_0 öncesi | 0:102.4.0-1.el9_0 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird | 0:102.4.0-1.el8_1 öncesi | 0:102.4.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debuginfo | 0:102.4.0-1.el8_1 öncesi | 0:102.4.0-1.el8_1 |
| Red Hat:rhel_e4s:8.1::appstream | thunderbird-debugsource | 0:102.4.0-1.el8_1 öncesi | 0:102.4.0-1.el8_1 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird | 0:102.4.0-1.el8_2 öncesi | 0:102.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debuginfo | 0:102.4.0-1.el8_2 öncesi | 0:102.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.2::appstream | thunderbird-debugsource | 0:102.4.0-1.el8_2 öncesi | 0:102.4.0-1.el8_2 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird | 0:102.4.0-1.el8_4 öncesi | 0:102.4.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debuginfo | 0:102.4.0-1.el8_4 öncesi | 0:102.4.0-1.el8_4 |
| Red Hat:rhel_eus:8.4::appstream | thunderbird-debugsource | 0:102.4.0-1.el8_4 öncesi | 0:102.4.0-1.el8_4 |
+4
Aynı üründe
matrix: tüm kayıtlarAynı birincil ürünün en yüksek skorlu diğer kayıtları.
- CVE-2023-28427Prototype pollution in matrix-js-sdk32İzleyin
- CVE-2022-39251Matrix Javascript SDK vulnerable to Olm/Megolm protocol confusion30İzleyin
- CVE-2022-39249Matrix Javascript SDK vulnerable to impersonation via forwarded Megolm sessions30İzleyin
- CVE-2021-40823A logic error in the room key sharing functionality of matrix-js-sdk (aka Matrix Javascript SDK) before 12.4.1 allows a malicious Matrix hom23İzleyin
- CVE-2024-42369A room with itself as a its predecessor will freeze matrix-js-sdk21İzleyin
- CVE-2023-29529matrix-js-sdk vulnerable to invisible eavesdropping in group calls21İzleyin
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 |
|---|---|---|
| almalinux:thunderbird | 102.4.0-1.el9_0.alma · AlmaLinux:9 | Paket deposu (OSV) |
| npm:matrix-js-sdk | 19.7.0 | Paket deposu (OSV) |
| opensuse:element-desktop | 1.11.8-1.1 · openSUSE:Tumbleweed | Paket deposu (OSV) |
| opensuse:element-web | 1.11.8-1.1 · openSUSE:Tumbleweed | Paket deposu (OSV) |
| opensuse:MozillaThunderbird | 102.4.0-150200.8.85.1 · openSUSE:Leap 15.3 | Paket deposu (OSV) |
| red hat:thunderbird | 0:102.4.0-1.el9_0 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:thunderbird-debuginfo | 0:102.4.0-1.el9_0 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| red hat:thunderbird-debugsource | 0:102.4.0-1.el9_0 · Red Hat:enterprise_linux:9::appstream | Paket deposu (OSV) |
| rocky linux:thunderbird | 0:102.4.0-1.el8_6 · Rocky Linux:8 | Paket deposu (OSV) |
| suse:MozillaThunderbird | 102.4.0-150200.8.85.1 · SUSE:Linux Enterprise Module for Package Hub 15 SP3 | 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.
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.
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ı
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.
- Hesap ya da parola gerekmez.
- Kullanıcının bir şey yapması gerekmez.
- Özel bir koşul gerekmez; tekrarlanabilir.
Başarılı olursa
- Gizlilik
- yok
- Bütünlük
- yüksek · veri ya da yapılandırma değiştirilebilir
- Erişilebilirlik
- yok
- Saldırı vektörü
- Ağ
- Karmaşıklık
- Düşük
- Gereken yetki
- Yok
- Kullanıcı etkileşimi
- Gerekmez
- Kapsam
- Değişmez
- Gizlilik etkisi
- Yok
- Bütünlük etkisi
- Yüksek
- Erişilebilirlik etkisi
- Yok
Zayıflık sınıfı (CWE)
CWE-287 · Improper AuthenticationCVSS vektörü
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
nvd-primary
Kök neden
Kimlik doğrulama tek bir merkezden değil, yol yol ekleniyor. Sonradan eklenen bir yol ortak ara katmanı atladığında, oturum kontrolü o yol için hiç çalışmaz.
Hatanın kod karşılığı
CWE-287 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ı
app.use("/admin", requireSession, adminRouter);
// Sonradan eklenen yol, ara katmanı atlıyorapp.post("/admin-api/config", updateConfig);Düzeltilmiş
const admin = express.Router();admin.use(requireSession, requireRole("admin"));
admin.post("/config", updateConfig);app.use("/admin", admin);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)
- Authentication AbuseCAPEC-114Medium
- Authentication BypassCAPEC-115Medium
- Identity SpoofingCAPEC-151olasılık: Medium · Medium
- Fake the Source of DataCAPEC-194Medium
- Exploiting Trust in ClientCAPEC-22olasılık: High · High
- Utilizing REST's Trust in the System Resource to Obtain Sensitive DataCAPEC-57olasılık: Medium · Very High
- Session HijackingCAPEC-593olasılık: High · Very High
- Token ImpersonationCAPEC-633Medium
ATT&CK teknikleri
Değişiklik günlüğü
- Düzeltme✗ → ✓
Takip ettiğiniz kayıtlarda bu değişiklikler bildirim olarak da gelir. →
Referanslar
- github.com/matrix-org/matrix-js-sdk/commit/a587d7c36026fe1fcf93dfff63588abee359be76
- github.com/matrix-org/matrix-js-sdk/releases/tag/v19.7.0
- github.com/matrix-org/matrix-js-sdk/security/advisories/GHSA-5w8r-8pgj-5jmf
- matrix.org/blog/2022/09/28/upgrade-now-to-address-encryption-vulns-in-matrix-sdks-and-clients
- security.gentoo.org/glsa/202210-35
Üretici bildirimleri ve resmî kayıtlar. İstismar/PoC bağlantıları bilinçli olarak dışarıda bırakıldı.