GitHub ปิดการรันสคริปต์อัตโนมัติของ npm เวอร์ชัน 12 เพื่อ…

ที่มาภาพ: InfoWorld

Security-อ่าน 7 นาทีInfoWorld

GitHub ปิดการรันสคริปต์อัตโนมัติของ npm เวอร์ชัน 12 เพื่อ…

⚡ สรุป 30 วิ

ตั้งแต่เดือนกรกฎาคม GitHub ตั้งค่า allowScripts ของ npm v12 เป็น off ทำให้สคริปต์ preinstall, install และ postinstall ไม่ทำงานอัตโนมัติ…

การเปลี่ยนแปลงสำคัญของ npm เวอร์ชัน 12 จะทำให้การทำงานอัตโนมัติของสคริปต์ระหว่างการติดตั้ง (preinstall, install, postinstall) ถูกปิดเป็นค่าเริ่มต้นใน GitHub ตั้งแต่เดือนกรกฎาคมนี้ ผู้พัฒนายังสามารถเปิดใช้งานได้ด้วยตนเอง แต่ค่าเริ่มต้นใหม่จะบล็อกการรันสคริปต์เหล่านี้โดยอัตโนมัติ การปรับนี้มุ่งลดความเสี่ยงจากการโจมตีซัพพลายเชนที่เคยใช้ช่องโหว่นี้เป็นทางเข้า

Overview

GitHub ได้ประกาศใน changelog ของ npm v12 ว่า allowScripts จะถูกตั้งค่าเป็น off โดยอัตโนมัติ ซึ่งหมายความว่า `npm install` จะไม่รันสคริปต์ preinstall, install หรือ postinstall ของแพ็กเกจที่เป็น dependency เว้นแต่ผู้ใช้จะอนุญาตอย่างชัดเจน การเปลี่ยนแปลงนี้รวมถึงการบล็อกการทำงานของ node‑gyp ที่มักทำงานโดยอ้อมเมื่อแพ็กเกจมีไฟล์ `binding.gyp` โดยไม่มีสคริปต์ install ที่ระบุชัดเจน

นอกจากนี้สคริปต์ `prepare` จาก dependency ประเภท git, file, หรือ link จะถูกบล็อกเช่นกันตามที่ GitHub ระบุในบันทึกการเปลี่ยนแปลง การปรับค่าเริ่มต้นนี้เป็นการเปลี่ยนแปลงแนวคิดจาก “รันอัตโนมัติ” ไปเป็น “ต้องยินยอมอย่างเจตนา” ซึ่งสอดคล้องกับแนวทางความปลอดภัยที่กำลังเป็นที่ยอมรับในอุตสาหกรรมซอฟต์แวร์

Change Details

การตั้งค่า allowScripts เป็น `off` มีผลกระทบต่อหลายขั้นตอนของกระบวนการพัฒนา

  • preinstall, install, postinstall: ไม่ทำงานโดยอัตโนมัติสำหรับทุก dependency
  • node‑gyp: การคอมไพล์โมดูลเนทีฟที่พึ่งพา `binding.gyp` จะถูกบล็อกหากไม่มีสคริปต์ install ที่ระบุไว้
  • prepare scripts: สคริปต์จาก dependency ที่มาจาก git, file, หรือ link จะถูกปิดเช่นกัน

ผู้ใช้ที่ต้องการใช้สคริปต์เหล่านี้ยังสามารถเปิด `allowScripts` ในไฟล์ `package.json` หรือใช้พารามิเตอร์คอมมานด์ไลน์เพื่ออนุญาตได้ แต่ต้องทำอย่างเจตนาชัดเจนและบันทึกไว้ในโครงการเพื่อให้ทีมตรวจสอบได้

Community Reaction

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

Sonu Kapoor ผู้ดูแล CVE Lite CLI ของโครงการ OWASP Incubator กล่าวว่า “การเปลี่ยนแปลงนี้จะบังคับให้การโจมตีที่พึ่งพาการรันสคริปต์อัตโนมัติถูกย้ายไปยังช่องทางอื่น เช่น โค้ดที่ทำงานใน runtime, บัญชีผู้ดูแลที่ถูกแฮก, หรือการโจมตีแบบ dependency confusion”

ในขณะเดียวกัน Alan Parkinson ผู้อำนวยการของ Threat Detective เน้นว่า “ผู้โจมตีระดับสูงได้เลิกใช้วิธีการรันสคริปต์ติดตั้งมานานแล้ว และมักมุ่งไปที่วิธีที่ซับซ้อนกว่า การปิดประตูนี้จึงส่งผลต่อแค่ผู้โจมตีที่ไม่ชำนาญ”

Security Analysis

แม้การบล็อกสคริปต์อัตโนมัติจะลดความเสี่ยงจาก supply‑chain attacks ที่ใช้ช่องโหว่นี้เป็นหลัก แต่ช่องทางอื่น ๆ ยังคงเปิดให้ผู้โจมตีใช้

  • โค้ดที่ทำงานใน runtime ของแอปพลิเคชัน
  • บัญชีผู้ดูแลแพ็กเกจที่ถูกขโมย
  • การสับสนระหว่าง dependency (dependency confusion)
  • การสแควตติ้งชื่อแพ็กเกจ (typo‑squatting)
  • การฉีดโค้ดใน GitHub Actions workflows
  • Dependency ที่มีการแพร่เชื้อผ่านการเชื่อมต่อแบบ transitive
  • โทเค็นการเผยแพร่ที่ถูกขโมย

การปิดประตู install script จึงเป็นการลด “ประตูอันตรายหนึ่ง” แต่ไม่สามารถทำให้ระบบปลอดภัยทั้งหมดได้ ผู้ป้องกันจึงต้องต่อสู้กับหลาย ๆ ช่องทางพร้อมกันและต้องอาศัยกระบวนการตรวจสอบโค้ดอย่างต่อเนื่อง

Industry Impact

การปรับค่าเริ่มต้นของ npm ทำให้แพลตฟอร์มจัดการแพ็กเกจอื่น ๆ ที่เคยทำเช่นเดียวกันล่วงหน้า เช่น Yarn, pnpm, และ Bun กลายเป็นมาตรฐานอุตสาหกรรมใหม่ Sanchit Vir Gogia จาก Greyhound Research ชี้ว่า “GitHub เป็นผู้จัดเก็บแพ็กเกจที่ใหญ่ที่สุดที่ยังคงใช้ค่าปริยายที่เสี่ยงนี้เป็นเวลานาน การเปลี่ยนแปลงนี้จึงถือว่าเป็นการตามเทรนด์ที่ล่าช้าแต่จำเป็น”

นอกจากนี้ การบังคับให้ค่าเริ่มต้นเป็นแบบปลอดภัยยังสอดคล้องกับกฎระเบียบระดับสากล เช่น EU Cyber Resilience Act ที่กำหนดให้ความเสี่ยงจากซัพพลายเชนต้องถูกจัดการในระดับองค์กร Gogia กล่าวว่าความรับผิดชอบต่อความปลอดภัยได้ถูกย้ายจากผู้พัฒนาไปสู่ผู้ให้บริการแพลตฟอร์ม ซึ่งทำให้การปรับเปลี่ยนนี้กลายเป็นเรื่องที่หลีกเลี่ยงไม่ได้

Outlook

GitHub ยืนยันว่าการเปลี่ยนแปลงนี้เป็นส่วนหนึ่งของ “การพัฒนาความปลอดภัยอย่างต่อเนื่อง” และจะยังคงปรับปรุงคุณลักษณะความปลอดภัยตามการเปลี่ยนแปลงของภัยคุกคามในอนาคต Zach Steindler วิศวกรหลักของ GitHub บอกว่า “การทำให้เส้นทางที่ปลอดภัยเป็นค่าเริ่มต้นเป็นวิธีที่ดีที่สุดเพื่อให้ผู้ใช้รับเอาไปใช้โดยอัตโนมัติ”

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

Summary

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

แชร์บทความนี้:

ชอบบทความแบบนี้?

สมัคร AI Automate Weekly Newsletter — รับเคล็ดลับ AI + how-to ใหม่
ทุกสัปดาห์ตรงถึง inbox ฟรี ไม่มีสแปม

แหล่งข่าวต้นฉบับ

ชื่อต้นฉบับ
GitHub finally pulls the plug on automatic install script execution for npm
ผู้เขียน
Unknown
แหล่ง
InfoWorld
วันที่เผยแพร่
11 มิถุนายน 2569 เวลา 07:42

Related

บทความที่เกี่ยวข้อง

ช่องโหว่วิกฤต Splunk Enterprise ให้รันโค้ดโดยไม่มีการยืนย…Security
15 มิถุนายน 2569 เวลา 20:00

ช่องโหว่วิกฤต Splunk Enterprise ให้รันโค้ดโดยไม่มีการยืนย…

Splunk ปล่อยแพตช์แก้ช่องโหว่ CVE‑2026‑20253 ที่ให้ผู้ไม่ประสงค์ดีรันโค้ดโดยไม่ต้องยืนยันตัวตนและได้คะแนนความรุนแรง 9.8 ผู้ดูแลระบบควรอัปเดตเป็นเวอร์ชัน 10.2.4…

The Hacker News5 นาที
ผู้ป่วย NHS ไม่สามารถเลือกไม่ให้ข้อมูลเข้าสู่แพลตฟอร์ม Pa…Security
15 มิถุนายน 2569 เวลา 15:30

ผู้ป่วย NHS ไม่สามารถเลือกไม่ให้ข้อมูลเข้าสู่แพลตฟอร์ม Pa…

ผู้ป่วยอังกฤษไม่สามารถ opt‑out ข้อมูลจาก Palantir‑built NHS Federated Data Platform ได้ แม้ว่าการใช้เพื่อการวิจัยจะอยู่ภายใต้ National Data Opt‑Out แต่ NHS…

The Register5 นาที
Microsoft Teams กลับมานำ Wi‑Fi Tracking พร้อมการปรับปรุงค…Security
15 มิถุนายน 2569 เวลา 12:30

Microsoft Teams กลับมานำ Wi‑Fi Tracking พร้อมการปรับปรุงค…

Microsoft Teams นำฟีเจอร์ Wi‑Fi tracking กลับสู่ตลาดด้วยการให้ผู้ใช้ควบคุมข้อมูลตำแหน่งเอง หลังจากถูกระงับหลายครั้งเนื่องจากข้อกังวลเรื่องความเป็นส่วนตัว.…

XDA Developers6 นาที
Microsoft ปล่อยแพตช์ความปลอดภัย Windows 10 และ 11 ประจำเด…Security
15 มิถุนายน 2569 เวลา 09:30

Microsoft ปล่อยแพตช์ความปลอดภัย Windows 10 และ 11 ประจำเด…

Microsoft ได้ปล่อยแพตช์ความปลอดภัยสำหรับ Windows 10 และ 11 รอบมิถุนายน 2026 เพื่ออุดช่องโหว่ 200 รายการ รวมถึง Zero-Day 3 ตัว…

DroidSans8 นาที
คัดลอกลิงก์แล้ว!