เมื่อวันที่ 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-03 | ClickUp ย้ายโปรแกรมการให้รางวัลสำหรับข้อบกพร่องไปยัง 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 UTC | ClickUp ได้รับทราบเหตุการณ์แล้ว ประกาศเหตุการณ์แล้ว กระบวนการตอบสนองต่อเหตุการณ์ได้เริ่มต้นขึ้น และกระบวนการหมุนเวียนโทเค็น 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
