April 27th – What happened with our feature flag configuration
Disclosures

27 Nisan – Özellik bayrağı yapılandırmamızda neler oldu

27 Nisan 2026 tarihinde, bir güvenlik araştırmacısı, ClickUp’ın istemci tarafındaki özellik bayrağı yapılandırmasının kişisel olarak tanımlanabilir bilgileri açığa çıkardığını kamuoyuna duyurdu. Özellikle, 893 müşterinin e-posta adresi, özellik bayrağı hedefleme kurallarına gömülmüştü; ayrıca, söz konusu çalışma alanından gelen trafiği sınırlamak amacıyla bir olay müdahalesi sırasında kullanılan ve bir müşterinin API belirteçine hatalı bir şekilde atıfta bulunan bir bayrak da mevcuttu.

Bunu daha önce fark etmeliydik. Fark edemedik ve size ne olduğunu, neden olduğunu, şu anda bu konuda ne yaptığımızı ve bundan sonra nasıl iyileştirmeler yapacağımızı net bir şekilde açıklamak zorundayız.

Bu durumdan etkileniyor musunuz?

Etkilenenler, yeni sürümlerin kullanıma sunulması sırasında hangi kullanıcıların belirli özellikleri göreceğini kontrol etmek amacıyla özellik bayrağı hedefleme kurallarında kullanılan 893 müşteri e-posta adresi ile sınırlıydı.

29 Nisan veya öncesinde (hala devam ediyor) doğrudan bir bildirim aldıysanız, e-posta adresiniz bir özellik bayrağı yapılandırmasına dahil edilen adresler arasındaydı. Bizden herhangi bir haber almadıysanız, e-posta adresiniz ilgili e-posta listeğinde yer almıyordu.

  • Hiçbir müşterinin Çalışma Alanı içeriği (görevler, belgeler, dosyalar veya proje verileri) ifşa edilmemiştir — aşağıda açıklanan tek bir olası istisna dışında.
  • Şifreler, fatura bilgileri veya hesap giriş bilgileri açığa çıkmamıştır.
  • Hiçbir kimlik doğrulama sistemi ele geçirilmedi.

Teknik sorun

ClickUp, özellik bayrağı yönetimi için Split.io’yu (artık Harness’ın bir parçası) kullanır. Çoğu tarayıcı tarafı özellik bayrağı SDK'sı gibi, Split.io da uygulamanın JavaScript paketine gömülü bir istemci tarafı SDK anahtarı gerektirir. Bu anahtar kasıtlı olarak herkese açıktır ve SDK'nın tarayıcıda mevcut kullanıcı için bayrakları değerlendirmesinin yolu budur. Bu, Split.io, LaunchDarkly ve benzer platformlarda standart, belgelenmiş bir davranıştır ve bir güvenlik açığı değildir.

Sorun, anahtar değil. Sorun, mühendislerimizin bayrak yapılandırmalarına ekledikleri öğelerdir.

Mimari açıdan şöyle bir durum söz konusuydu: Özellik bayrağı platformları, mühendislerin özellik sürümlerini belirli kullanıcılara hedef olarak sunmalarına olanak tanır. ClickUp mühendislik takımları, bayrak hedefleme kurallarında doğrudan e-posta adreslerini kullanmıştı. Buna bir örnek, belirli bir beta test kullanıcıları grubu için bir özelliği etkinleştirmektir. Split.io SDK'sının herkese açık sorgulanabilir splitChanges uç noktası, bu hedefleme kuralları da dahil olmak üzere tüm bayrak tanımlarını döndürür. Bu, istemci tarafı anahtarına (ki bu da yine kasıtlı olarak ön uç kodumuzda yer almaktadır) sahip olan herkesin bu bayrak tanımlarını alabileceği ve bunlara gömülü e-posta adreslerini çıkarabileceği anlamına gelir.

Mühendisler, bayrak yapılandırmalarını dahili araçlar olarak ele aldılar; oysa SDK mimarisi, bu yapılandırmaların tasarım gereği herkesin sorgulayabileceği şekilde düzenlenmişti. Bu durum, e-posta adreslerinin asla bulunmaması gereken bir yerde birikmesine yol açtı. Özellik bayrağı güncellemeleri, kodda olduğu gibi +1 düzeyinde bir akran incelemesi gerektirir. Bu inceleme adımı, söz konusu sorunu tespit edemedi.

Tek istisna – Tek bir müşterinin hız sınırlaması için yapılandırılmış bir bayrak

API kötüye kullanımına müdahale eden bir görevli mühendis, trafiği sınırlamak amacıyla bir hız sınırlama bayrağı yapılandırmasında bir müşterinin API belirteçine atıfta bulunmuş ve bu durum, belirteçin SDK uç noktası üzerinden okunabilir hale gelmesine yol açmıştır. Bu durum asla yaşanmamalıydı: kimlik bilgileri bayrak yapılandırmalarında yer almamalıdır. Belirteçi derhal devre dışı bıraktık ve şu an itibarıyla günlük incelemelerimiz, araştırmacının kendi incelemesi dışında herhangi bir kötü niyetli erişim belirtisi göstermiyor. Başka hiçbir müşteri belirteçine veya Çalışma Alanı verisine erişilemedi ve bu müşteriyle doğrudan çalışıyoruz.

Neler ortaya çıktı, neler çıkmadı

TalepBulgumuz
SDK anahtarı paket içinde sabit olarak kodlanmıştırBu doğru ve tasarım gereği böyledir. Tarayıcı tarafındaki özellik bayrağı SDK'ları işte bu şekilde çalışır. Tek başına bir güvenlik açığı değildir.
Bayrak hedefleme kurallarında 893 müşteri e-posta adresiBu raporun hazırlandığı tarihte doğrudur. Tüm üçüncü taraf e-posta adresleri 28 Nisan saat 03:25 UTC itibarıyla kaldırılmıştır.
Bayrak yapılandırmasında canlı müşteri API belirteçiOnaylandı. 7 Ekim 2025 tarihinde eklendi. 27 Nisan 2026 saat 12:05 UTC'de geçersiz kılındı.
Split.io'ya yazma erişimiBu durum normaldir ve tasarım gereğidir. Tarayıcı SDK'sının telemetri uç noktaları (etkinlikler/bulk, testImpressions), standart SDK davranışının bir parçası olarak yazma işlemlerini kabul eder. Bu, ClickUp'ta bir yapılandırma hatası değildir.
“15 ay boyunca herhangi bir iyileştirme yapılmayacak”Yanlış yorumlanmıştır; tarihler doğrudur. SDK anahtarı ile ilgili 17 Ocak 2025 tarihli orijinal hata ödül raporu, anahtarın tek başına bir güvenlik açığı oluşturmaması nedeniyle mühendislik görevine sonuç olarak dönüşmedi. Asıl sorun e-posta adresleri ve bayrak yapılandırmalarıydı ve bunlar bu orijinal rapora dahil edilmemişti. Bayrak yapılandırmaları 8 Nisan 2026 tarihine kadar HackerOne'a açıklanmadı ve 27 Nisan 2026 tarihine kadar ClickUp tarafından bilinmiyordu.

Zaman çizelgesi

Süreçlerimizin hangi noktalarda aksadığını, üçüncü taraf hata ödül programı sağlayıcımızın ve kendi iç iletişim araçlarımızın yaşadığı aksaklıklar da dahil olmak üzere, tam bir şeffaflıkla paylaşmaya kararlıyız.

TarihEtkinlik
17 Ocak 2025Bir araştırmacı, Split.io SDK anahtarının ifşa edilmesini BugCrowd üzerindeki hata ödül programımıza bildirdi. Raporun içeriği göz önüne alındığında, bu durum BugCrowd ve ClickUp tarafından doğru bir şekilde "bilgilendirme amaçlı" olarak işaretlendi.
3 Haziran 2025ClickUp, hata ödül programını HackerOne'a taşıdı. Yukarıdaki sorun da dahil olmak üzere tüm geçmiş raporlar başarıyla aktarıldı.
8 Nisan 2026"impulsive" takma adını kullanan araştırmacı, HackerOne'da genişletilmiş etki alanını belgeleyen yeni ve ayrıntılı bir rapor yayınladı: bayrak hedefleme kurallarında yer alan 893 müşteri e-posta adresi, aktif müşteri API belirteçi ve diğer operasyonel veriler.
10 Nisan 2026HackerOne triyaj analisti, yeni raporun önemli ölçüde farklı ve daha geniş bir etki yansıttığını gözden kaçırarak, raporu yanlışlıkla Ocak 2025 tarihli raporun bir kopyası olarak kapatmıştır. Daha ayrıntılı bir inceleme sonucunda, benzer iki örnek daha yanlışlıkla kapatıldığını tespit ettik; bunlardan biri 6 Eylül 2025, diğeri ise 1 Ocak 2026 tarihliydi.
21 Nisan 2026Araştırmacı, HackerOne'a ek ayrıntılar sunarak bu kararı sorguluyor.
25 Nisan 2026Araştırmacı, HackerOne üzerinden ClickUp CEO’suna e-posta göndererek ve X üzerinden security@clickup.com adresine DM atarak, 2 Mayıs’ı kamuya açıklama tarihi olarak belirledi. ClickUp CEO’suna ve security@ adresine gönderilen bu e-postalar spam filtrelerine takıldı ve alıcılara ulaşmadı. ClickUp’a gönderilen X DM’leri ise otomatik olarak filtrelendi ve okunmadı.
27 Nisan 2026 ~10:42 UTCAraştırmacı, X platformunda bunu kamuoyuna duyurur.
27 Nisan 2026 11:06 UTCClickUp durumu fark eder. Olay bildirilir. Olay Müdahale süreci başlatılır ve müşteri API belirteçinin değiştirilmesi süreci başlatılır.
27 Nisan 2026, 12:53–14:12 UTCMühendislik ekiplerinde ilk bölünmüş bayrak temizlikleri.
27 Nisan 2026 ~ 17:00 UTC4.809 adet özellik bayrağının tam otomasyonlu denetimi tamamlandı.
27 Nisan 2026 23:13 UTCClickUp ve Harness (Split) mühendisleri teknik ayrıntıları inceliyor.
28 Nisan 2026 03:25 UTCTüm müşteri e-posta adreslerinin bayrak yapılandırmalarından kaldırıldığı onaylandı. Not: Bazı üçüncü taraf e-posta adresleri, dolandırıcılık amaçlı kullanım nedeniyle kasıtlı olarak iki bayrakta tutulmaktadır.

Süreçimizin başarısız olduğu nokta

Burada üç sorun yaşandı ve her birini açıkça belirtmek istiyoruz. Değişiklikleri bir sonraki bölümde ele alacağız.

1. İlk raporun ardından herhangi bir takip çalışması yapılmadı. Ocak 2025 tarihli hata ödül raporu, bir mühendislik görevinin başlatılmasına ve bayrak yapılandırmalarında hangi verilerin bulunduğunun gözden geçirilmesine sonuç olarak yol açabilirdi. Ancak bu gerçekleşmedi. Gelecekte bu durumun tekrarlanmasını önlemek için ön değerlendirme sürecimizi güncelliyoruz.

2. HackerOne, yinelenen raporun kapatılmasını yanlış yönetti. Nisan 2026 tarihli rapor, Ocak 2025 tarihli rapora kıyasla önemli ölçüde yeni etkiler ortaya koyuyordu. Bu rapor, HackerOne tarafından yinelenen rapor olarak kapalı kalmamalıydı. Daha ayrıntılı bir inceleme sonucunda, benzer raporların kapalı olduğu iki başka örnek daha tespit ettik – biri 6 Eylül 2025'te, diğeri 1 Ocak 2026'da. HackerOne ile birlikte, onların önceliklendirme süreçlerindeki eksiklikleri gidermek için çalışıyoruz. İleride üçüncü taraf süreçlerine bağımlı kalmamak için, tüm HackerOne raporlarını ikincil bir incelemeye tabi tutacağız.

3. E-posta hizmetimiz, araştırmacının şikayetini spam olarak işaretledi. 25 Nisan Cumartesi günü, araştırmacı hem CEO'muza hem de security@clickup.com adresine e-posta gönderdi ve ClickUp’ın X hesabına özel mesaj attı.

Bu e-postaları, X'te yapılan kamuya açık paylaşımdan sonra gördük. Spam klasörleri ve X'teki özel mesaj filtreleme sistemine yönelik yapılan bir iç soruşturma sonucunda ortaya çıktılar.

Güvenlikle ilgili gelen iletişimin fark edilmeden silinmemesini sağlamak amacıyla e-posta filtreleme ve spam inceleme süreçlerimizi güncelliyoruz.

Bunların hiçbiri asıl sorunu ortadan kaldırmaz: Müşteri verileri en başından beri özellik bayrağı yapılandırmalarımızda yer almamalıydı.

Yaptıklarımız tamamlandı

Hemen (tamamlandı)

  • Açığa çıkan müşteri API belirteçi geçersiz kılındı.
  • Özellik bayrağı yapılandırmalarından tüm müşteri e-posta adresleri kaldırıldı.
  • Mühendislik birimi genelinde, bayrak yapılandırmalarında kişisel kimlik bilgilerinin veya kimlik bilgilerinin kullanılmasını yasaklayan bir talimat yayınlandı.
  • Tüm özellik bayrakları (PII, kimlik bilgileri ve hassas veriler) için kapsamlı bir denetimi tamamladık.

Kısa vadeli (ilerleme devam ediyor)

  • security@ClickUp.com adresine gelen tüm güvenlikle ilgili iletişimin görünür olmasını sağlamak için e-posta filtreleme kuralları güncellendi ve spam mesajlarını (güvenli bir şekilde) incelemek üzere bir adım eklendi.
  • HackerOne ile hata ödül programı triyaj akışlarının gözden geçirilmesi; böylece geçerli raporların yanlışlıkla kapalı olarak işaretlenmesinin önlenmesi.
  • Özellik bayrağı denetçilerinin onaylanmış içeriklere ilişkin eğitimi.

Uzun vadeli

  • Her bayrak değişikliğinde, tüm özellik bayrağı yapılandırmalarının kişisel olarak tanımlanabilir bilgiler (e-posta adresleri, belirteçler, API anahtarları) içeren kalıplara yönelik otomatik taraması ve engelleme uygulamasının devreye alınması.
  • HackerOne'daki tüm ön değerlendirme kararlarını incelemek için otomasyonlu bir süreç ve araç seti.
  • Ön uç bayraklarını ve arka uç bayraklarını birbirinden ayırmak için bir proxy veya teknik önlem uygulayın.

Araştırmacı hakkında bir not

ClickUp, bu bilgiyi ifşa eden ve impulsive / @weezerOSINT kullanıcı adıyla faaliyet gösteren araştırmacıyla iletişime geçtikten sonra, sorumlu bir şekilde hareket ederek istenen tüm bilgileri sağladı.

"impulsive / @weezerOSINT" takma adını kullanan araştırmacı, uygun kanallar aracılığıyla (HackerOne, ardından güvenlik@ClickUp.com adresine doğrudan e-posta ve CEO'muza) bildirimde bulundu ve bizimle iletişime geçtiğimizde yapıcı bir şekilde işbirliği yaptı. İç süreçlerimiz, bu raporu ve ilgili bildirimleri zamanında tespit edemedi.

Araştırmacıyla birlikte iş yaptıktan sonra, ClickUp 28 Nisan saat 01:47 UTC'de şu mesajı aldı: “Teşekkürler [ClickUp], bu konuda ne kadar hızlı hareket ettiğinizi gerçekten takdir ediyorum. Bu, pek sık rastladığım bir şey değil ve gerçekten fark yaratıyor.”

ClickUp, araştırmacıya bulguları karşılığında bir hata ödülü veriyor. Diğer araştırmacıları da Hata Ödül Programımıza katılmaya, Güvenlik Açığı Bildirim Programımız aracılığıyla veya doğrudan security@clickup.com adresine e-posta göndererek sorumlu bir şekilde bildirimde bulunmaya davet ediyoruz.

Özet

Bu olayda ifşa olan veriler 893 e-posta adresiyle sınırlıydı; yukarıda bahsedilen tek bir müşteri hariç, hiçbir müşterinin Çalışma Alanı içeriği, şifreleri veya fatura bilgileri etkilenmedi; anahtara yetkisiz erişim olup olmadığını doğrulamak için bu müşteriyle doğrudan irtibat halindeyiz.

Değerli müşterilerimiz, yaşanan bu durumdan dolayı sizlerden özür dileriz ve bir daha böyle bir şeyin yaşanmaması için elimizden gelen her şeyi yapacağız.

Yeni bilgiler ortaya çıkarsa bu yazıyı güncelleyeceğiz. Sorularınız varsa güvenlik@ClickUp.com adresinden bize ulaşabilirsiniz.