แพ็กเกจ Stylus CSS preprocessor ยอดนิยมถูกลบออกจาก NPM อย่างกะทันหัน ทำให้เกิดการหยุดชะงักอย่างกว้างขวางสำหรับนักพัฒนาที่พึ่พาเครื่องมือนี้ในโปรเจ็กต์ของตน แพ็กเกจซึ่งมีการดาวน์โหลดมากกว่า 3.6 ล้านครั้งต่อสัปดาห์ ถูกแทนที่ด้วยเวอร์ชันตัวยึดตำแหน่งด้านความปลอดภัยที่มีป้ายกำกับ 0.0.1-security เมื่อวันที่ 23 กรกฎาคม 2025
สถิติแพ็กเกจก่อนการลบ:
- ดาวน์โหลดรายสัปดาห์: 3,628,473 ครั้ง
- จำนวนแพ็กเกจที่ขึ้นต่อกัน: 2,277 แพ็กเกจ
- ประวัติแพ็กเกจ: ใช้งานมาตั้งแต่ปี 2010 (15 ปี)
- ตัวทดแทนปัจจุบัน: 0.0.1-security (418 B, 2 ไฟล์)
คำแนะนำด้านความปลอดภัยที่ไม่ชัดเจนก่ออาการสับสน
NPM และ GitHub ออกคำแนะนำด้านความปลอดภัยอ้างว่า Stylus ทุกเวอร์ชันมีมัลแวร์ ย้อนกลับไปถึงปี 2010 อย่างไรก็ตาม ชุมชนยังคงสงสัยเกี่ยวกับข้อกล่าวหาเหล่านี้ คำแนะนำไม่ได้ให้รายละเอียดเฉพาะเจาะจงเกี่ยวกับช่องโหว่ด้านความปลอดภัยที่ถูกกล่าวหา ทำให้นักพัฒนาตั้งคำถามว่าภัยคุกคามนั้นเป็นจริงหรือเป็นเพียงการตอบสนองที่ระมัดระวังเกินไปจากระบบความปลอดภัยอัตโนมัติ
จังหวะเวลาก็ทำให้เกิดข้อสงสัยเช่นกัน แพ็กเกจถูกดึงออกเมื่อเวลา 03:03 UTC และ GitHub Security Advisory ถูกเผยแพร่เพียงหนึ่งนาทีต่อมา ซึ่งบ่งบอกถึงการตอบสนองที่ประสานงานกันแต่อาจเป็นการรีบร้อน
แนวทางแก้ไขสำหรับนักพัฒนา:
- แทนที่ด้วยเวอร์ชันความปลอดภัย:
"overrides": {"stylus": "0.0.1-security"}
- ติดตั้งจาก GitHub:
"overrides": {"stylus": "github:stylus/stylus0.64.0"}
- ไทม์ไลน์: แพ็กเกจถูกลบเมื่อวันที่ 23 กรกฎาคม 2025 เวลา 03:03 UTC คำแนะนำด้านความปลอดภัยออกเมื่อเวลา 03:03:56 UTC
ทฤษฎีการประนีประนอมผู้ดูแลเกิดขึ้น
การอภิปรายในชุมชนชี้ไปที่คำอธิบายที่ละเอียดกว่า หลักฐานชี้ให้เห็นว่าผู้ดูแลคนหนึ่งที่มีประสบการณ์ยาวนานที่รู้จักในนาม Ponya อาจมีบัญชีถูกประนีประนอมและเกี่ยวข้องกับแพ็กเกจที่น่าสงสัยอื่นๆ แทนที่จะตรวจสอบแต่ละแพ็กเกจเป็นรายบุคคล NPM ดูเหมือนจะใช้วิธีการแบบนิวเคลียร์ โดยลบแพ็กเกจทั้งหมดที่เกี่ยวข้องกับผู้ดูแลที่อาจถูกประนีประนอม
เห็นได้ชัดว่าผู้ดูแลคนหนึ่งที่มีประสบการณ์ยาวนานได้พุชแพ็กเกจที่ถูกประนีประนอมอื่นๆ ดังนั้น npm จึงทำลายแพ็กเกจทั้งหมดที่เขามีสิทธิ์เข้าถึง ไม่ว่าจะถูกประนีประนอมหรือไม่
ทฤษฎีนี้ได้รับความน่าเชื่อถือเมื่อพิจารณาว่าไม่มีการระบุรีลีสที่เป็นอันตรายจริงของ Stylus และ repository บน GitHub ยังคงสะอาดและไม่ถูกประนีประนอม
วิธีแก้ไขของนักพัฒนาและความพยายามในการกู้คืน
ในขณะที่สถานการณ์ดำเนินไป นักพัฒนาได้พบวิธีหลายวิธีในการใช้ Stylus ในโปรเจ็กต์ของตนต่อไป วิธีแก้ไขที่ได้รับความนิยมมากที่สุดคือการใช้ package.json overrides เพื่อติดตั้งโดยตรงจาก GitHub repository โดยข้าม NPM registry ไปเลย
ผู้ดูแลปัจจุบัน iChenLei รายงานว่ากำลังเจรจากับเจ้าหน้าที่ NPM เพื่อกู้คืนสิทธิ์การเข้าถึงแพ็กเกจที่เหมาะสม ทีม Stylus ยืนยันว่าโค้ดเบสของพวกเขาปลอดภัยและเหตุการณ์นี้เกิดจากข้อกังวลด้านความปลอดภัยที่กว้างขึ้นมากกว่าช่องโหว่จริงในซอฟต์แวร์ของพวกเขา
เหตุการณ์นี้เน้นย้ำถึงความเปราะบางของระบบนิเวศ JavaScript สมัยใหม่ ที่การตัดสินใจด้านความปลอดภัยเพียงครั้งเดียวสามารถทำลายโปรเจ็กต์หลายพันโปรเจ็กต์ที่พึ่พาแพ็กเกจยอดนิยมได้ทันที
อ้างอิง: stylus