deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

CVE-2026-118759 üzerine bir dev.to yazısı: Token sızıntılarını önlemek için JWT incelemesini tamamen client-side tutun

CVE-2026-118759'a atıfta bulunan bir dev.to yazısı, canlı tokenların barındırılan formatlayıcılara yapıştırılmasının oturum verilerini access loglara sızdırdığını savunuyor ve çözümün WebCrypto ile browser içinde gerçekleştirilecek decode ve imza doğrulaması olduğunu öne sürüyor.

CVE-2026-118759 üzerine bir dev.to yazısı: Token sızıntılarını önlemek için JWT incelemesini tamamen client-side tutun

Yazının iddiası ne

2 Kasım'da dev.to'da, DevOmniTools hesabından yayınlanan bir yazı, CVE-2026-118759 olarak tanımladığı bir zafiyeti ele alıyor ve net bir tez ortaya koyuyor: token incelemesi asla browser dışına çıkmamalı. Yazıya göre kök neden, güvensiz loopback cookie'lerin olanak sağladığı kimlik doğrulama token sızıntısı ile session fixation birleşimi; saldırı vektörü ise inceleme sorgularının man-in-the-middle ile araya girilerek ele geçirilmesi — pratikte, bir geliştirici auth akışında hata ayıklarken canlı bir production tokenı merkezi bir online formatlayıcıya yapıştırıyor ve o istek, header'lar, session ID'ler ve kullanıcı metaverisiyle birlikte sağlayıcının access loglarına düşüyor. Yazı, loopback-cookie koşulunun bu formatlayıcı senaryosuyla nasıl bağlantılı olduğunu açıklamıyor. Referans noktası olarak RFC 7519 (JSON Web Token standardı) ve W3C Web Cryptography API'sini gösteriyor.

Önerilen çözüm

Yazarların önerdiği çözüm bir yama değil, mimari bir değişiklik: tüm token decode işlemleri ve kriptografik payload doğrulamaları, window.crypto.subtle olarak sunulan standart WebCrypto arayüzü kullanılarak kesinlikle browser belleğinde, sunucu tarafında hiçbir telemetri olmadan çalıştırılmalı.

Demonstrasyon olarak yazı, bir JWT'yi noktayla ayrılmış üç segmentine bölen, imzayı base64url formatında decode eden, JWK formunda verilen bir RSA public key'i import eden ve imzayı kontrol etmek için RSASSA-PKCS1-v1_5 ve SHA-256 ile crypto.subtle.verify çağıran bir TypeScript fonksiyonu içeriyor. Her adım sayfa içinde çalıştığı için hiçbir token materyali herhangi bir uca gitmiyor. Örnek kodda olduğu haliyle iki pratik sınırlama görülüyor: yalnızca RS256 tipi imzaları kapsıyor, dolayısıyla HS256, ES256 veya EdDSA kullanan ekipler ek koda ihtiyaç duyacak; ve imzayı doğruluyor ama süre (expiry) veya audience gibi claim'leri valide etmiyor — bunları uygulamaların yine de zorunlu kılması gerekiyor.

Kaynak konusunda bir uyarı

Bu yazı hikayenin tek kaynağı ve aynı zamanda bir tanıtım niteliğinde: okuyucuları yazarların kendi işlettiği, tamamen browser RAM'inde çalıştığı belirtilen ücretsiz bir "JWT & Token Decoder" aracına yönlendiriyor. CVE-2026-118759 tanımlayıcısı burada sunulan başka hiçbir materyalle çapraz doğrulanamıyor; yazı etkilenen bir ürün, yama veya atayan bir otorite adı belirtmiyor. Bu nedenle zafiyet çerçevesi onaylanmış bir danışma belgesi değil, yazarların iddiası olarak okunmalı. Altta yatan hijyen tavsiyesi ise kendi başına geçerliliğini koruyor.

Neden önemli

Bu belirli CVE doğrulansa da doğrulanmasa da, işaret ettiği risk somut: barındırılan her araç — bir formatlayıcı, regex test aracı veya base64 encoder — kendisine gönderilen her şeyi görüyor ve bu girdiyi loglayabilir veya saklayabilir. JWT'ler bu tür araçlar için özellikle kötü bir tercihtir, çünkü payload yalnızca base64 ile kodlanmıştır, şifrelenmemiştir ve rutin olarak oturum tanımlayıcıları, scope veya tenant claim'leri ya da kullanıcı bilgileri taşır. Bu şekilde açığa çıkan bir production tokenı ele geçirilmiş sayılmalı: iptal edin, sağladığı erişimi rotate edin ve mümkünse sağlayıcının loglama davranışını inceleyin.

Yazının önerdiği alternatifin maliyeti düşük. WebCrypto ile doğrulama birkaç düzine satır koddur, offline çalışır ve sırları bir üçüncü taraf servise emanet etme gereksinimini tamamen ortadan kaldırır. Ekipler için genellenebilir kural, sır içeren hata ayıklamayı yerelde tutmaktır — editor eklentilerinde, CLI araçlarında veya self-hosted araçlarda — ve bir web aracı kullanılacaksa, hassas bir şey yapıştırmadan önce browser'ın network panelinden dışa giden istek yapılmadığını doğrulamaktır.

  • #security
  • #jwt
  • #webcrypto
  • #authentication
  • #javascript

İlgili yazılar