1 คะแนน โดย GN⁺ 2025-03-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • CVE-2025-29927

  • มีการออก Next.js เวอร์ชัน 15.2.3 เพื่อแก้ไขช่องโหว่ความปลอดภัย (CVE-2025-29927) โดยแนะนำให้การดีพลอย Next.js แบบ self-hosted ทั้งหมดที่ใช้ next start และ output: 'standalone' อัปเดตทันที

  • ไทม์ไลน์

    • 2025-02-27T06:03Z: เปิดเผยต่อทีม Next.js ผ่านรายงานช่องโหว่แบบ private บน GitHub
    • 2025-03-14T17:13Z: ทีม Next.js เริ่มตรวจสอบรายงาน
    • 2025-03-14T19:08Z: ปล่อยแพตช์สำหรับ Next.js 15.x
    • 2025-03-14T19:26Z: ปล่อยแพตช์สำหรับ Next.js 14.x
    • 2025-03-17T22:44Z: ออก Next.js 14.2.25
    • 2025-03-18T00:23Z: ออก Next.js 15.2.3
    • 2025-03-18T18:03Z: เผยแพร่ CVE-2025-29927 บน GitHub
    • 2025-03-21T10:17Z: ประกาศคำแนะนำด้านความปลอดภัย
    • 2025-03-22T21:21Z: ออก Next.js 13.5.9
    • 2025-03-23T06:44Z: ออก Next.js 12.3.5
  • รายละเอียดของช่องโหว่

    • Next.js ใช้เฮดเดอร์ภายใน x-middleware-subrequest เพื่อป้องกันลูปไม่สิ้นสุด ตามรายงานด้านความปลอดภัย มีความเป็นไปได้ที่จะข้ามการทำงานของ middleware และหลบเลี่ยงการตรวจสอบสำคัญได้
  • ขอบเขตผลกระทบ

    • กรณีที่ได้รับผลกระทบ

      • แอปพลิเคชัน Next.js แบบ self-hosted ที่ใช้ middleware (next start และ output: 'standalone')
      • กรณีที่พึ่งพา middleware สำหรับการยืนยันตัวตนหรือการตรวจสอบความปลอดภัย
      • แอปพลิเคชันที่ใช้ Cloudflare สามารถเปิดใช้งานกฎ Managed WAF ได้
    • กรณีที่ไม่ได้รับผลกระทบ

      • แอปพลิเคชันที่โฮสต์บน Vercel
      • แอปพลิเคชันที่โฮสต์บน Netlify
      • แอปพลิเคชันที่ดีพลอยแบบ static export (ไม่มีการรัน middleware)
  • เวอร์ชันที่แพตช์แล้ว

    • Next.js 15.x: แก้ไขปัญหาใน 15.2.3
    • Next.js 14.x: แก้ไขปัญหาใน 14.2.25
    • Next.js 13.x: แก้ไขปัญหาใน 13.5.9
    • Next.js 12.x: แก้ไขปัญหาใน 12.3.5
    • หากไม่สามารถแพตช์ไปยังเวอร์ชันที่ปลอดภัยได้ แนะนำให้ป้องกันไม่ให้คำขอจากผู้ใช้ภายนอกมีเฮดเดอร์ x-middleware-subrequest
  • ความรับผิดชอบด้านความปลอดภัยของเรา

    • Next.js ได้เผยแพร่คำแนะนำด้านความปลอดภัย 16 ฉบับตั้งแต่ปี 2016 เป็นต้นมา GitHub Security Advisories และ CVE เป็นมาตรฐานอุตสาหกรรมสำหรับแจ้งผู้ใช้ ผู้จำหน่าย และบริษัทเกี่ยวกับช่องโหว่ของซอฟต์แวร์ เพื่อชดเชยข้อบกพร่องในการสื่อสารกับพาร์ตเนอร์ จึงได้เปิด mailing list สำหรับพาร์ตเนอร์ สามารถติดต่อที่ partners@nextjs.org เพื่อขอถูกรวมไว้ได้

1 ความคิดเห็น

 
GN⁺ 2025-03-24
ความเห็นใน Hacker News
  • ระบบมิดเดิลแวร์ของ Next มีปัญหาหลายอย่าง และดูเหมือนว่าควรเขียนขึ้นมาใหม่ตั้งแต่ต้น

    • ไม่มีวิธีอย่างเป็นทางการในการเชื่อมมิดเดิลแวร์หลายตัวเข้าด้วยกันเป็นเชน
    • ฟังก์ชันหลักหลายตัวเป็น static member ทำให้เกิดปัญหาได้เมื่อใช้มิดเดิลแวร์จาก third-party
    • วิธีสื่อสารระหว่างมิดเดิลแวร์กับ route handler ยังมีไม่เพียงพอ
    • วิธีส่งข้อมูลผ่าน header ไม่ปลอดภัย
    • ยังมีปัญหาที่ต้องยอมสละการแคชอัตโนมัติ
    • ยากที่จะได้ hostname จริงของคำขอ
  • พบบทความอื่นเกี่ยวกับปัญหาความปลอดภัยของระบบมิดเดิลแวร์

    • วิธีสื่อสารผ่าน header ถูกแยกออกจากการตรวจสอบความถูกต้องของอินพุตผู้ใช้
    • การยอมรับ header ทั้งหมดจากผู้ใช้อาจมีความเสี่ยง
    • เฟรมเวิร์กจำเป็นต้องรองรับการแก้ปัญหาในดีไซน์ของเซิร์ฟเวอร์
  • ข้อมูลเกี่ยวกับช่องโหว่ความปลอดภัยของ Next.js

    • มีช่องโหว่ที่เมื่อเพิ่ม header บางตัวแล้ว เซิร์ฟเวอร์อาจตอบกลับผิดพลาดได้
    • ช่องโหว่นี้ไม่มี CVE และไม่ชัดเจนว่าเวอร์ชันใดได้รับผลกระทบ
    • ตามนโยบายการซัพพอร์ตของ Next.js จะมีการออกแพตช์ให้เฉพาะบางเวอร์ชันเท่านั้น
  • ความกังวลเกี่ยวกับความล่าช้าในการแก้ปัญหาความปลอดภัยของ Next.js

    • ผ่านไปมากกว่า 2 สัปดาห์หลังการรายงาน จึงค่อยเริ่มแก้ปัญหา
    • เป็นไปได้ว่าความร้ายแรงของปัญหาไม่ได้ถูกสื่อสารอย่างเหมาะสม
  • คำวิจารณ์เกี่ยวกับความซับซ้อนของ Next.js

    • React มอบคุณค่ามากมาย แต่ Next มีแต่เพิ่มความซับซ้อน
    • file-based routing และ server-side rendering มีประโยชน์เฉพาะบางสถานการณ์เท่านั้น
  • ความเป็นไปได้ในการโจมตีช่องโหว่ที่ทำได้ง่าย

    • มีปัญหาที่เพียงแค่เพิ่ม header บางตัวก็สามารถ bypass การยืนยันตัวตนได้
  • ปัญหาการใช้ internal header ของ Next.js

    • มี internal header สำหรับป้องกันคำขอแบบวนซ้ำ
    • มีความเป็นไปได้ที่จะใช้ header นี้เพื่อ bypass การตรวจสอบที่สำคัญ
  • ความกังวลต่อการเลือก self-hosting ของ Next.js

    • ยิ่งอ่านความคิดเห็นใน HN ก็ยิ่งกังวลกับการตัดสินใจนี้มากขึ้น
  • ความกังวลเกี่ยวกับความล่าช้าในการแก้ปัญหาความปลอดภัย

    • การล่าช้าในการแก้ปัญหานาน 13 วันถือเป็นปัญหาใหญ่