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

27 เมษายน – เกิดอะไรขึ้นกับการกำหนดค่าธงฟีเจอร์ของเรา

เมื่อวันที่ 27 เมษายน 2569 นักวิจัยด้านความปลอดภัยได้เปิดเผยต่อสาธารณะว่า การตั้งค่าฟีเจอร์แฟล็กฝั่งไคลเอนต์ของ ClickUp ได้เปิดเผยข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้ โดยเฉพาะอย่างยิ่ง อีเมลของลูกค้าจำนวน 893 รายการถูกฝังอยู่ในกฎการกำหนดเป้าหมายฟีเจอร์แฟล็ก พร้อมกับแฟล็กหนึ่งรายการที่อ้างอิงโทเค็น API ของลูกค้าอย่างไม่เหมาะสม ซึ่งถูกใช้ในระหว่างเหตุการณ์ตอบสนองเพื่อจำกัดอัตราการเข้าถึงข้อมูลจากพื้นที่ทำงานนั้น

เราควรจะได้พบปัญหานี้เร็วกว่านี้ เราไม่ได้ทำ และเราต้องขอโทษคุณอย่างจริงใจสำหรับเรื่องนี้ พร้อมอธิบายให้ชัดเจนว่าเกิดอะไรขึ้น ทำไมถึงเกิดขึ้น เราได้ดำเนินการแก้ไขอย่างไรแล้ว และเราจะปรับปรุงอย่างไรในอนาคต

คุณได้รับผลกระทบหรือไม่?

การเปิดเผยข้อมูลถูกจำกัดไว้ที่ 893 ที่อยู่อีเมลของลูกค้าที่ใช้ในกฎการกำหนดเป้าหมายฟีเจอร์ เพื่อควบคุมว่าผู้ใช้คนใดจะเห็นฟีเจอร์เฉพาะในระหว่างการเปิดตัว

หากคุณได้รับการติดต่อโดยตรงก่อนหรือในวันที่ 29 เมษายน (ต่อเนื่อง) ที่อยู่อีเมลของคุณอยู่ในกลุ่มที่ถูกระบุในการตั้งค่าฟีเจอร์ หากคุณไม่ได้รับการติดต่อจากเรา ที่อยู่อีเมลของคุณไม่ได้อยู่ในรายชื่อที่อยู่อีเมล

  • ไม่มีเนื้อหาในพื้นที่ทำงาน (งาน, เอกสาร, ไฟล์ หรือข้อมูลโครงการ) ที่ถูกเปิดเผยสำหรับลูกค้าใด ๆ — ยกเว้นกรณีที่อาจเกิดขึ้นได้หนึ่งกรณีซึ่งอธิบายไว้ด้านล่าง
  • ไม่มีการเปิดเผยรหัสผ่าน ข้อมูลการเรียกเก็บเงิน หรือข้อมูลบัญชี
  • ไม่มีระบบยืนยันตัวตน ที่ถูกบุกรุก

ปัญหาทางเทคนิค

ClickUp ใช้Split.io(ปัจจุบันเป็นส่วนหนึ่งของ Harness) สำหรับการจัดการฟีเจอร์แฟล็ก เช่นเดียวกับ SDK ฟีเจอร์แฟล็กฝั่งเบราว์เซอร์ส่วนใหญ่Split.ioต้องการ คีย์ SDK ฝั่งไคลเอนต์ ที่ฝังอยู่ในชุด JavaScript ของแอปพลิเคชัน คีย์นี้ถูกเปิดเผยต่อสาธารณะโดยเจตนาและเป็นวิธีที่ SDK ใช้ในการประเมินสถานะแฟล็กสำหรับผู้ใช้ปัจจุบันในเบราว์เซอร์ นี่เป็นพฤติกรรมมาตรฐานที่มีการบันทึกไว้สำหรับSplit.io, LaunchDarkly และแพลตฟอร์มที่คล้ายกัน และไม่ใช่ช่องโหว่ด้านความปลอดภัย

กุญแจไม่ใช่ปัญหา สิ่งที่สำคัญคือสิ่งที่วิศวกรของเราใส่ไว้ในการกำหนดค่าธง

นี่คือสิ่งที่เกิดขึ้นในเชิงสถาปัตยกรรม: แพลตฟอร์มฟีเจอร์แฟล็กช่วยให้วิศวกรสามารถกำหนดเป้าหมายผู้ใช้เฉพาะกลุ่มสำหรับการเปิดตัวฟีเจอร์ใหม่ได้ ทีมวิศวกรรมของ ClickUp ได้ใช้ที่อยู่อีเมลโดยตรงในกฎการกำหนดเป้าหมายของแฟล็ก ตัวอย่างเช่น การเปิดใช้งานฟีเจอร์สำหรับกลุ่มผู้ทดสอบเบต้าเฉพาะกลุ่ม ปลายทาง splitChanges ของ SDKSplit.ioที่สามารถสอบถามได้แบบสาธารณะจะส่งคืนชุดคำจำกัดความของแฟล็กทั้งหมด รวมถึงกฎการกำหนดเป้าหมายเหล่านี้ด้วย ซึ่งหมายความว่าใครก็ตามที่มีคีย์ฝั่งไคลเอนต์ (ซึ่งอีกครั้ง เราตั้งใจให้อยู่ในโค้ดส่วนหน้าของเรา) สามารถดึงคำจำกัดความของแฟล็กเหล่านั้นและสกัดที่อยู่อีเมลที่ฝังอยู่ได้

วิศวกรได้จัดการกับการกำหนดค่าธง (flag) ราวกับว่าเป็นเครื่องมือภายใน ทั้งที่สถาปัตยกรรมของ SDK ออกแบบมาเพื่อให้สามารถสอบถามข้อมูลเหล่านี้ได้สาธารณะ การกระทำเช่นนี้ทำให้ที่อยู่อีเมลสามารถสะสมอยู่ในที่ที่ไม่ควรอยู่ได้ การอัปเดตฟีเจอร์ธงต้องผ่านการตรวจสอบจากเพื่อนร่วมงานอย่างน้อย 1 คน เช่นเดียวกับการตรวจสอบโค้ด ขั้นตอนการตรวจสอบนี้ไม่สามารถตรวจพบปัญหาได้

ข้อยกเว้นเพียงหนึ่งเดียว – ธงที่ตั้งค่าไว้สำหรับการจำกัดอัตราสำหรับลูกค้าเพียงรายเดียว

วิศวกรที่อยู่ในสถานะพร้อมให้บริการซึ่งตอบสนองต่อการละเมิด API ได้อ้างอิงถึงโทเค็น API ของลูกค้าในการกำหนดค่าธงจำกัดอัตราเพื่อควบคุมปริมาณการเข้าใช้งาน ทำให้อาจมีการอ่านได้ผ่านจุดสิ้นสุดของ SDK ซึ่งไม่ควรเกิดขึ้น: ข้อมูลประจำตัวไม่ควรอยู่ในกำหนดค่าธง เราได้ปิดการใช้งานโทเค็นทันที และจนถึงขณะนี้ การตรวจสอบบันทึกของเราไม่พบสัญญาณของการเข้าถึงที่เป็นอันตรายนอกเหนือจากการตรวจสอบของนักวิจัยเอง ไม่มีโทเค็นของลูกค้าหรือข้อมูลพื้นที่ทำงานอื่นใดที่สามารถเข้าถึงได้ และเรากำลังทำงานร่วมกับลูกค้ารายนี้โดยตรง

สิ่งที่ถูกเปิดเผยและสิ่งที่ไม่ได้ถูกเปิดเผย

การเรียกร้องสิ่งที่เราค้นพบ
คีย์ SDK ถูกฝังไว้ในบันเดิลถูกต้องและเป็นไปตามการออกแบบ นี่คือวิธีการทำงานของ SDK ฟีเจอร์แฟล็กฝั่งเบราว์เซอร์ ไม่ใช่ช่องโหว่เพียงอย่างเดียว
893 ที่อยู่อีเมลของลูกค้าในกฎการกำหนดเป้าหมายธงถูกต้อง ณ เวลาที่รายงาน ที่อยู่อีเมลของบุคคลที่สามทั้งหมดถูกลบออกภายในวันที่ 28 เมษายน เวลา 03:25 UTC
โทเค็น API ลูกค้าสดในการตั้งค่าธงยืนยันแล้ว เพิ่มเมื่อวันที่ 7 ตุลาคม 2025. ยกเลิกเมื่อวันที่ 27 เมษายน 2026 เวลา 12:05 UTC.
สิทธิ์การเขียนใน Split.ioถูกต้องและเป็นไปตามการออกแบบ จุดสิ้นสุดการส่งข้อมูลของ SDK สำหรับเบราว์เซอร์ (events/bulk, testImpressions) ยอมรับการเขียนข้อมูลเป็นส่วนหนึ่งของพฤติกรรมมาตรฐานของ SDK นี่ไม่ใช่การกำหนดค่าผิดของ ClickUp
"ไม่มีการแก้ไขเป็นเวลา 15 เดือน"ระบุผิด; วันที่ถูกต้องแล้ว รายงานบั๊กบอนน์ฉบับต้นฉบับวันที่ 17 มกราคม 2568 เกี่ยวกับคีย์ SDK ไม่ได้ก่อให้เกิดงานทางวิศวกรรม เนื่องจากคีย์เพียงอย่างเดียวไม่ใช่ช่องโหว่ที่แท้จริง ที่อยู่อีเมลและการตั้งค่าแฟล็กคือปัญหาที่แท้จริง และไม่ได้รวมอยู่ในรายงานฉบับต้นฉบับนี้ การตั้งค่าแฟล็กไม่ได้ถูกเปิดเผยจนถึงวันที่ 8 เมษายน 2569 ต่อ HackerOne และไม่เป็นที่ทราบของ ClickUp จนถึงวันที่ 27 เมษายน 2569

ไทม์ไลน์

เรามุ่งมั่นที่จะเปิดเผยอย่างโปร่งใสเกี่ยวกับจุดที่กระบวนการของเราล้มเหลว รวมถึงความล้มเหลวจากผู้ให้บริการรางวัลสำหรับข้อบกพร่องจากบุคคลที่สามและเครื่องมือสื่อสารภายในของเราเอง

วันที่กิจกรรม
2025-01-17นักวิจัยรายงานการเปิดเผยคีย์ Split. io SDK ต่อโปรแกรมรางวัลสำหรับผู้ค้นพบข้อบกพร่องของเราบน BugCrowd ซึ่งเมื่อพิจารณาจากเนื้อหาของรายงานแล้ว BugCrowd และ ClickUp ได้ทำการระบุว่าเป็นข้อมูลแจ้งเตือนอย่างถูกต้อง
2025-06-03ClickUp ย้ายโปรแกรมการให้รางวัลสำหรับข้อบกพร่องไปยัง HackerOne รายงานทั้งหมดในอดีตได้ถูกย้ายเรียบร้อยแล้ว รวมถึงปัญหาข้างต้นด้วย
2026-04-08นักวิจัยภายใต้ชื่อผู้ใช้ impulsive ได้ยื่นรายงานฉบับใหม่ที่มีรายละเอียดอย่างละเอียดบน HackerOne โดยบันทึกผลกระทบที่ขยายออกไป: ที่อยู่อีเมลของลูกค้า 893 รายในกฎการระบุเป้าหมาย, โทเค็น API ของลูกค้าที่ใช้งานอยู่, และข้อมูลการดำเนินงานอื่น ๆ
2026-04-10นักวิเคราะห์การคัดกรองของ HackerOne ปิดรายงานอย่างไม่ถูกต้องโดยระบุว่าเป็นการซ้ำซ้อนกับรายงานในเดือนมกราคม 2025 โดยไม่ทราบว่ารายงานฉบับใหม่นี้บันทึกผลกระทบที่แตกต่างกันอย่างมีนัยสำคัญและขยายขอบเขตออกไป ในการตรวจสอบเพิ่มเติม เราได้ระบุกรณีอื่น ๆ ที่รายงานที่คล้ายกันถูกปิดอย่างไม่ถูกต้องสองกรณี – หนึ่งกรณีในวันที่ 6 กันยายน 2025 และอีกหนึ่งกรณีในวันที่ 1 มกราคม 2026
21 เมษายน 2026นักวิจัยได้โต้แย้งการปิดกรณีโดยให้รายละเอียดเพิ่มเติมกับ HackerOne
25 เมษายน 2026นักวิจัยยกระดับการดำเนินการ: ภายใน HackerOne ส่งอีเมลถึง CEO ของ ClickUp และ security@clickup.com ส่งข้อความ DM ไปยัง ClickUp บน X กำหนดเส้นตายการเปิดเผยข้อมูลสาธารณะในวันที่ 2 พฤษภาคม อีเมลเหล่านี้ถึง CEO ของ ClickUp และ security@ ถูกกรองโดยตัวกรองสแปมและไม่ได้ส่งถึงผู้รับที่ตั้งใจไว้ ข้อความ DM บน X ที่ส่งถึง ClickUp ถูกกรองโดยอัตโนมัติและไม่ได้ถูกอ่าน
27 เมษายน 2026 ~10:42 UTCนักวิจัยเปิดเผยต่อสาธารณะบน X
27 เมษายน 2026 11:06 UTCClickUp ได้รับทราบเหตุการณ์แล้ว ประกาศเหตุการณ์แล้ว กระบวนการตอบสนองต่อเหตุการณ์ได้เริ่มต้นขึ้น และกระบวนการหมุนเวียนโทเค็น API ของลูกค้าได้ถูกเริ่มดำเนินการแล้ว
27 เมษายน 2026 12:53-14:12 UTCการทำความสะอาดธงแยกเบื้องต้นข้ามทีมวิศวกรรม
27 เมษายน 2569 ~17:00 UTCการตรวจสอบอัตโนมัติเต็มรูปแบบของฟีเจอร์แฟล็กทั้งหมด 4,809 รายการเสร็จสมบูรณ์แล้ว
27 เมษายน 2569 23:13 UTCวิศวกร ClickUp และ Harness (แยก) ตรวจสอบรายละเอียดทางเทคนิค
28 เมษายน 2569 03:25 UTCที่อยู่อีเมลของลูกค้าทั้งหมดได้รับการยืนยันว่าได้ลบออกจากกำหนดการตั้งค่าการแจ้งเตือนแล้ว หมายเหตุ: ที่อยู่อีเมลของบุคคลที่สามบางแห่งยังคงอยู่ในสองการแจ้งเตือนโดยเจตนา; เนื่องจากเกี่ยวข้องกับการใช้งานที่ไม่ถูกต้อง

ที่กระบวนการของเราล้มเหลว

มีสามสิ่งที่ผิดพลาดที่นี่ และเราต้องการระบุแต่ละอย่างอย่างชัดเจน เราจะหารือเกี่ยวกับการเปลี่ยนแปลงในส่วนต่อไปนี้

1. ไม่มีการติดตามผลลำดับที่สองจากรายงานฉบับเดิม รายงานบั๊กบาวน์ตี้ประจำเดือนมกราคม 2025 อาจนำไปสู่การมอบหมายงานทางวิศวกรรมและการทบทวนข้อมูลที่ยังคงอยู่ในแฟล็กคอนฟิก อย่างไรก็ตาม เรื่องนี้ไม่ได้เกิดขึ้น เราจะปรับปรุงกระบวนการคัดกรองของเราเพื่อป้องกันไม่ให้เกิดเหตุการณ์เช่นนี้อีกในอนาคต

2. HackerOne จัดการการปิดกรณีซ้ำอย่างไม่ถูกต้อง รายงานประจำเดือนเมษายน 2026 ได้บันทึกผลกระทบใหม่ที่มีนัยสำคัญเมื่อเทียบกับรายงานประจำเดือนมกราคม 2025 ไม่ควรถูกปิดเป็นกรณีซ้ำโดย HackerOne จากการตรวจสอบเพิ่มเติม เราพบรายงานที่คล้ายกันอีกสองกรณีที่ถูกปิดไปแล้ว – หนึ่งกรณีเมื่อวันที่ 6 กันยายน 2025 และอีกหนึ่งกรณีเมื่อวันที่ 1 มกราคม 2026 เรากำลังทำงานร่วมกับ HackerOne เพื่อแก้ไขช่องว่างในกระบวนการคัดกรองของพวกเขา เราจะรวมการตรวจสอบรองของรายงานทั้งหมดจาก HackerOne เพื่อให้แน่ใจว่าเราจะไม่พึ่งพาขั้นตอนของบุคคลที่สามในอนาคต

3. บริการอีเมลของเราได้ทำเครื่องหมายการยกระดับของงานวิจัยไว้ในหมวดสแปม ในวันเสาร์ที่ 25 เมษายน นักวิจัยได้ส่งอีเมลถึงทั้ง CEO ของเราและ security@clickup.com และส่งข้อความ DM ไปยังบัญชี X ของ ClickUp

เราไม่เห็นอีเมลเหล่านี้จนกระทั่งหลังจากโพสต์สาธารณะบน X แล้ว อีเมลเหล่านี้ถูกพบหลังจากการตรวจสอบภายในเกี่ยวกับโฟลเดอร์สแปมและการกรองข้อความ DM บน X

เรากำลังปรับปรุงกระบวนการกรองอีเมลและการตรวจสอบสแปมเพื่อให้แน่ใจว่าอีเมลขาเข้าที่เกี่ยวข้องกับด้านความปลอดภัยจะไม่ถูกลบโดยไม่แจ้งให้ทราบล่วงหน้า

ไม่มีข้อแก้ตัวใดที่พอจะอธิบายปัญหาหลักได้: ข้อมูลลูกค้าไม่ควรถูกจัดเก็บไว้ในโครงสร้างการตั้งค่าฟีเจอร์ตั้งแต่แรกเลย

สิ่งที่เราได้ทำ

ทันที (เสร็จสิ้นแล้ว)

  • ยกเลิกโทเค็น API ของลูกค้าที่เปิดเผยแล้ว
  • ลบที่อยู่อีเมลของลูกค้าทั้งหมดออกจากกำหนดค่าฟีเจอร์แฟล็ก
  • ออกคำสั่งทั่วทั้งฝ่ายวิศวกรรม ห้ามมิให้ใช้ข้อมูลส่วนบุคคลที่ระบุตัวตนได้ (PII) หรือข้อมูลรับรองในการกำหนดค่าแฟล็ก
  • ดำเนินการตรวจสอบอย่างครบถ้วนของฟีเจอร์แฟล็กทั้งหมดที่เกี่ยวข้องกับข้อมูลส่วนบุคคล (PII), ข้อมูลรับรอง และข้อมูลที่ละเอียดอ่อน

ระยะสั้น (กำลังดำเนินการ)

  • อัปเดตกฎการกรองอีเมลเพื่อให้แน่ใจว่า security@clickup.com จะแสดงการสื่อสารด้านความปลอดภัยทั้งหมดที่เข้ามา โดยเพิ่มขั้นตอนในการตรวจสอบข้อความสแปม (อย่างปลอดภัย)
  • การทบทวนกระบวนการคัดกรองรายงานข้อบกพร่องเพื่อรับรางวัลกับ HackerOne เพื่อป้องกันไม่ให้รายงานที่ถูกต้องถูกปิดอย่างไม่ถูกต้อง
  • การฝึกอบรมผู้ตรวจสอบฟีเจอร์แฟล็กเกี่ยวกับเนื้อหาที่ได้รับการอนุมัติ

ระยะยาว

  • การสแกนอัตโนมัติของทุกการตั้งค่าฟีเจอร์แฟล็กเพื่อค้นหาแบบแผนของข้อมูลส่วนบุคคลที่สามารถระบุตัวตนได้ (เช่น ที่อยู่อีเมล, โทเค็น, คีย์ API) ทุกครั้งที่มีการเปลี่ยนแปลงแฟล็ก พร้อมการบังคับใช้การบล็อก
  • กระบวนการอัตโนมัติและเครื่องมือสำหรับการตรวจสอบการตัดสินใจคัดกรองทั้งหมดของ HackerOne
  • ดำเนินการใช้พร็อกซีหรือมาตรการทางเทคนิคเพื่อแยกธงด้านหน้า (front-end flags) และธงด้านหลัง (back-end flags) ออกจากกัน

หมายเหตุเกี่ยวกับนักวิจัย

เมื่อ ClickUp ได้ติดต่อกับนักวิจัยที่เปิดเผยข้อมูลนี้ ซึ่งใช้ชื่อบัญชีว่า impulsive / @weezerOSINT พวกเขาได้ดำเนินการอย่างมีความรับผิดชอบและให้ข้อมูลทั้งหมดตามที่ร้องขอ

นักวิจัยซึ่งดำเนินการภายใต้ชื่อผู้ใช้ impulsive / @weezerOSINT ได้รายงานผ่านช่องทางที่เหมาะสม (HackerOne จากนั้นส่งอีเมลโดยตรงถึง security@clickup.com และ CEO ของเรา) และมีส่วนร่วมอย่างสร้างสรรค์เมื่อเราติดต่อกลับไป กระบวนการภายในของเราล้มเหลวในการเปิดเผยรายงานและการยกระดับปัญหาของพวกเขาให้ทันเวลา

หลังจากทำงานร่วมกับนักวิจัย ClickUp ได้รับข้อความต่อไปนี้เมื่อวันที่ 28 เมษายน เวลา 1:47 UTC: "ขอบคุณ [ClickUp] ขอบคุณจริงๆ ที่ดำเนินการเรื่องนี้อย่างรวดเร็ว ไม่ใช่สิ่งที่ผมเห็นบ่อยนักและมันสร้างความแตกต่าง"

ClickUp มอบรางวัลให้กับนักวิจัยสำหรับข้อบกพร่องที่พวกเขาค้นพบ นักวิจัยท่านอื่น ๆ ได้รับการสนับสนุนให้เข้าร่วมโปรแกรม Bug Bounty ของเรา รายงานอย่างรับผิดชอบผ่านโปรแกรมการเปิดเผยช่องโหว่ของเรา หรือติดต่อโดยตรงทางอีเมลที่ security@clickup.com

สรุป

ข้อมูลที่ถูกเปิดเผยในเหตุการณ์นี้มีขอบเขตจำกัดอยู่ที่ที่อยู่อีเมล 893 รายการเท่านั้น – ไม่มีเนื้อหาในเวิร์กสเปซ รหัสผ่าน หรือข้อมูลการเรียกเก็บเงินของลูกค้าท่านใดได้รับผลกระทบ ยกเว้นลูกค้าหนึ่งรายที่กล่าวถึงข้างต้น – เรากำลังทำงานร่วมกับลูกค้าโดยตรงเพื่อยืนยันว่ากุญแจไม่ได้ถูกเข้าถึงโดยไม่เหมาะสม

เรียนลูกค้าทุกท่าน เราขออภัยเป็นอย่างยิ่งสำหรับเหตุการณ์ที่เกิดขึ้น และเราจะทำทุกวิถีทางเพื่อให้แน่ใจว่าเหตุการณ์เช่นนี้จะไม่เกิดขึ้นอีก

เราจะอัปเดตโพสต์นี้หากมีข้อมูลใหม่ปรากฏขึ้น หากคุณมีคำถาม โปรดติดต่อ security@clickup.com