メインコンテンツへスキップ
記事一覧へ戻る

Tandoor Recipes 2.7.0 แก้ CVE-2026-115810 ช่อง SSRF ในตัวนำเข้าสูตร Pestle

Tandoor Recipes แก้ช่อง SSRF ในการนำเข้า Pestle ที่เปิดให้ผู้ใช้ทั่วไปสั่งเซิร์ฟเวอร์ดึง URL ภายในผ่านภาพสูตรอาหาร

Tandoor Recipes 2.7.0 แก้ CVE-2026-115810 ช่อง SSRF ในตัวนำเข้าสูตร Pestle

Tandoor Recipes ออกรุ่น 2.7.0 เพื่อแก้ CVE-2026-115810 ช่องโหว่ server-side request forgery (SSRF) ในตัวนำเข้าสูตรอาหารจาก Pestle จุดที่น่าสนใจไม่ใช่เพียงการรับ URL จากไฟล์นำเข้า แต่เป็นการที่โค้ดส่วนนี้ดาวน์โหลดภาพด้วย requests.get() โดยตรง ขณะที่ตัวนำเข้าชนิดอื่นใช้ฟังก์ชันกลางซึ่งตรวจและปฏิเสธปลายทางภายในเครือข่าย ผู้ที่มีบัญชีผู้ใช้ทั่วไปและสิทธิ์นำเข้าสูตรอาหารจึงอาจทำให้เซิร์ฟเวอร์ส่งคำขอไปยังบริการที่ผู้ใช้จากภายนอกเข้าถึงไม่ได้

โครงการเผยแพร่ รุ่น 2.7.0 วันที่ 23 ตุลาคม 2026 เวลา 15:35 UTC โดยระบุการแก้ปัญหา Pestle importer SSRF ในรายการเปลี่ยนแปลง จากนั้นเผยแพร่ ประกาศความปลอดภัย GHSA-xq7g-9q95-vjc6 เวลา 15:48 UTC และ ระเบียน CVE-2026-115810 ระบุเวลาเผยแพร่ 16:12 UTC ของวันเดียวกัน ลำดับเวลานี้ช่วยให้แยกวันออกแพตช์ วันประกาศรายละเอียด และวันเปิดระเบียน CVE ออกจากกันได้

ช่องโหว่อยู่ตรงไหน

Pestle เป็นหนึ่งในรูปแบบไฟล์ที่ Tandoor นำเข้ามาเป็นสูตรอาหารได้ ในข้อมูลสูตรอาจมี URL ของภาพ เมื่อผู้ใช้ส่งไฟล์เข้าระบบ ตัวนำเข้าใน cookbook/integration/pestle.py อ่าน URL ดังกล่าวแล้วให้เซิร์ฟเวอร์เป็นผู้ดึงภาพ ผู้ใช้จึงไม่ได้เพียงสั่งให้เบราว์เซอร์ของตนเปิดลิงก์ แต่กำหนดปลายทางของคำขอที่ออกจากเครื่องเซิร์ฟเวอร์ Tandoor เอง

ตามประกาศของโครงการ ตัวนำเข้าส่วนอื่นใช้ safe_request() ซึ่งมีมาตรการตรวจ IP และปฏิเสธปลายทางอย่าง loopback หรือที่อยู่ metadata ของระบบคลาวด์ แต่เส้นทาง Pestle เรียก requests.get() โดยไม่ผ่านมาตรการเดียวกัน ความต่างของสองเส้นทางนี้ทำให้การตั้งค่าป้องกัน SSRF ที่ดูเหมือนมีอยู่ในแอปไม่ครอบคลุมทุกตัวนำเข้า หากเซิร์ฟเวอร์มองเห็นเครือข่ายภายในหรือ metadata endpoint คำขอที่ผู้โจมตีควบคุมอาจเดินทางถึงปลายทางเหล่านั้นได้

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

เวอร์ชันที่ควรตรวจ

บันทึกรุ่น 2.6.15 ระบุว่าเพิ่มความสามารถนำเข้า Pestle ในรุ่นนั้น ส่วนประกาศความปลอดภัยระบุการทดสอบกับสาขา develop และรุ่น 2.6.15 ดังนั้นผู้ใช้ 2.6.15 ที่เปิดให้สมาชิกนำเข้าสูตรควรตรวจเป็นลำดับแรก ระเบียน CVE ให้ช่วงกว้างกว่า คือ 2.0.0 ถึงก่อน 2.7.0; ช่วงดังกล่าวเป็นข้อมูลการระบุรุ่นในระเบียน แต่เส้นทาง Pestle ที่เป็นต้นเหตุเพิ่งปรากฏใน 2.6.15 จึงไม่ควรสรุปว่าทุกรุ่นเก่ากว่านั้นมีเส้นทางโจมตีเดียวกัน รุ่น 2.7.0 เป็นรุ่นที่โครงการประกาศว่าแก้ปัญหานี้

หากใช้ container ให้ดูเวอร์ชันของ image ที่รันจริงและวิธี pin image ใน compose หรือระบบ deploy ด้วย การเปลี่ยนแท็กในไฟล์กำหนดค่าเพียงอย่างเดียวไม่ได้ยืนยันว่า instance ที่ให้บริการถูกสร้างใหม่แล้ว หลังอัปเดตควรตรวจเวอร์ชันจากแอปหรือ artifact ที่รันอยู่ และทดสอบนำเข้าสูตร Pestle ที่มีภาพจากแหล่งปกติเพื่อให้แน่ใจว่างานของผู้ใช้ยังทำงานได้

วิธีรับมือระหว่างอัปเดต

แนวทางหลักคืออัปเดตเป็น Tandoor Recipes 2.7.0 พร้อมสำรองฐานข้อมูลและไฟล์ภาพก่อนเปลี่ยนรุ่น หากต้องรอรอบบำรุงรักษา ให้จำกัดสิทธิ์นำเข้าของบัญชีที่ไม่จำเป็น โดยเฉพาะ instance ที่เปิดให้สมัครสมาชิกหรือมีผู้ใช้หลายกลุ่ม และพิจารณากฎ egress ของ container/เซิร์ฟเวอร์เพื่อไม่ให้เข้าถึง loopback, เครือข่ายภายใน และ metadata endpoint ที่ไม่เกี่ยวกับงาน แอปพลิเคชันอื่นบนโฮสต์เดียวกันไม่ควรอาศัยเพียงการซ่อนพอร์ตจากอินเทอร์เน็ตเป็นขอบเขตความปลอดภัย เพราะคำขอ SSRF ออกจาก Tandoor ภายในระบบ

สำหรับการตรวจย้อนหลัง ให้ดูบันทึกการนำเข้าสูตรและการเชื่อมต่อขาออกที่เกิดในช่วงเวลาใกล้กัน โดยมองหา URL ภาพที่ชี้ไปยังที่อยู่ภายในหรือปลายทางผิดปกติ หากพบสูตรที่นำเข้าจากแหล่งไม่น่าเชื่อถือ ให้ตรวจภาพที่จัดเก็บและผู้ที่มีสิทธิ์อ่านสูตรนั้นด้วย การไม่พบ log ไม่ใช่หลักฐานว่าปลอดภัย เพราะระดับการเก็บรายละเอียดของแต่ละ deployment ต่างกัน

กรณีนี้เตือนว่าการมีฟังก์ชันตรวจ URL ส่วนกลางยังไม่พอ หากมีเส้นทางนำเข้าหนึ่งเส้นทางเลี่ยงฟังก์ชันนั้น การทบทวนโค้ดและทดสอบควรครอบคลุมทุกจุดที่ดึงข้อมูลจาก URL ของผู้ใช้ โดยเฉพาะภาพ ไฟล์แนบ และ metadata ที่แฝงอยู่ในไฟล์นำเข้า

แหล่งข้อมูลต้นทาง: ประกาศความปลอดภัย Tandoor Recipes, บันทึกรุ่น 2.7.0, บันทึกรุ่น 2.6.15, ระเบียน CVE