พบโค้ดที่เป็นอันตรายในโปรแกรมติดตั้ง purescript npm

npm เพียวสคริปต์

บางวันที่ผ่านมา ตรวจพบโค้ดที่เป็นอันตรายในการอ้างอิงของแพ็คเกจ npm ด้วยโปรแกรมติดตั้ง PureScriptซึ่งแสดงให้เห็นเมื่อพยายามติดตั้งแพ็คเกจ purescript

รหัสที่เป็นอันตราย ฝังตัวผ่านการอ้างอิง load-from-cwd-or-npm และการอ้างอิงแผนที่ความเร็ว ควรสังเกตว่าผู้เขียนดั้งเดิมของแพ็คเกจ npm ที่มีโปรแกรมติดตั้ง PureScript ซึ่งเพิ่งมีส่วนร่วมในการดูแลรักษาแพ็คเกจ npm นี้ แต่แพ็คเกจถูกส่งไปยังผู้ดูแลรายอื่นมีหน้าที่รับผิดชอบในการประกอบแพ็กเกจที่มีการอ้างอิงเหล่านี้

เกี่ยวกับปัญหา

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

ผู้ดูแลใหม่ รับผิดชอบคอมไพเลอร์ PureScript และ พวกเขายืนยันว่าแพ็คเกจ NPM ที่มีตัวติดตั้งควรได้รับการซ่อมแซมโดยผู้ดูแลเองไม่ใช่โดยนักพัฒนาภายนอกโครงการ

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

สัปดาห์ที่แล้วมีการประกาศการเปิดตัวคอมไพเลอร์ PureScript 0.13.2 และผู้ดูแลใหม่ได้เตรียมการอัปเดตแพ็คเกจ npm ที่เกี่ยวข้องกับตัวติดตั้ง ซึ่งตรวจพบโค้ดที่เป็นอันตราย

โค้ดที่เป็นอันตรายถูกแทรกลงในแพ็คเกจ npm "load-from-cwd-or-npm" ก่อน ในเวอร์ชัน 3.0.2 และในแพ็กเกจแผนที่อัตราจากเวอร์ชัน 1.0.3 ในช่วงไม่กี่วันที่ผ่านมามีการเผยแพร่แพ็คเกจทั้งสองเวอร์ชัน

เปลี่ยนจากโพสต์ที่มาพร้อมกับผู้เขียนแพ็คเกจ npm ที่มีโปรแกรมติดตั้ง PureScript เขากล่าวว่าบัญชีของเขาถูกโจมตีโดยผู้โจมตีที่ไม่รู้จัก

อย่างไรก็ตาม ในรูปแบบปัจจุบันการกระทำของโค้ดที่เป็นอันตรายถูก จำกัด โดยการทำลายการติดตั้งแพ็คเกจเท่านั้นซึ่งเป็นรุ่นแรกของผู้ดูแลใหม่ การดำเนินการที่เป็นอันตรายถูกวนซ้ำเมื่อพยายามติดตั้งแพ็กเกจด้วยคำสั่ง "npm i -g purescript" โดยไม่ดำเนินการใด ๆ ที่เป็นอันตรายอย่างชัดเจน

มีการระบุการโจมตีสองครั้ง

ในระยะสั้น โค้ดจะทำลายตัวติดตั้ง purescript npm เพื่อป้องกันไม่ให้การดาวน์โหลดเสร็จสิ้นทำให้โปรแกรมติดตั้งหยุดทำงานระหว่างขั้นตอน "ตรวจสอบว่ามีการจัดเตรียมไบนารีไว้ล่วงหน้าสำหรับแพลตฟอร์มของคุณ"

การใช้ประโยชน์ครั้งแรกทำได้โดยการทำลายแพ็คเกจ load-from-cwd-or-npm เพื่อให้การเรียกใช้ loadFromCwdOrNpm () จะส่งคืนลำดับการส่งผ่านแทนแพ็กเกจที่คาดไว้ (ในกรณีนี้คือแพ็กเกจคำร้องขอซึ่งเราใช้เพื่อดาวน์โหลดไบนารีของคอมไพเลอร์) การทำซ้ำครั้งที่สองของการใช้ประโยชน์ทำได้โดยการแก้ไขไฟล์ต้นฉบับเพื่อป้องกันไม่ให้เรียกใช้การเรียกกลับการดาวน์โหลด

4 วันต่อมา นักพัฒนาเข้าใจที่มาของข้อบกพร่องและกำลังเตรียมที่จะปล่อยการอัปเดตเพื่อแยกการโหลดจาก cwd-o-npm จากการอ้างอิงผู้โจมตีได้ปล่อยการอัปเดตอื่น load-from-cwd-or-npm 3.0.4 โดยที่โค้ดที่เป็นอันตรายถูกลบออกไป

อย่างไรก็ตามการอัปเดตสำหรับการอ้างอิง Rate-Map 1.0.3 อื่นได้รับการเผยแพร่เกือบจะในทันทีซึ่งมีการเพิ่มการแก้ไขที่บล็อกการโทรกลับเพื่อดาวน์โหลด

นั่นคือในทั้งสองกรณีการเปลี่ยนแปลงของ load-from-cwd-or-npm เวอร์ชันใหม่และอัตราแผนที่เป็นลักษณะของการเบี่ยงเบนที่ชัดเจน

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

นักพัฒนาแก้ไขปัญหาโดยการปล่อยการอัปเดตซึ่งการอ้างอิงที่เป็นปัญหาถูกลบออก

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

ในที่สุด ผู้พัฒนาแนะนำ สำหรับทุกคนที่มีแพ็กเกจเวอร์ชันดังกล่าวในระบบ ลบเนื้อหาของไดเร็กทอรี node_modules และไฟล์ package-lock.json จากนั้นตั้งค่า purescript เวอร์ชัน 0.13.2


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา