Simon Willison's Weblog 33 วันที่แล้ว general AI Generated

datasette 0.65.5

Simon Willison's Weblog 17 Sep 2026
58
0
100
1 10m



อัปเดต
Security


ช่องโหว่ใน Datasette แค่เคาะ Enter เกินมาหนึ่งตัว ก็เห็นข้อมูลส่วนตัวที่ควรถูกซ่อน



บั๊กเล็กๆ ที่ดูเหมือนเรื่องไม่เป็นเรื่อง กลับกลายเป็นประตูหลังที่เปิดข้อมูลส่วนตัวได้ทั้งตาราง




ทีมข่าว เอไอไทย.com
⏱ อ่าน 3 นาที



ระบบความปลอดภัยที่ดีไม่ควรพังเพราะแค่ช่องว่างหรืออักขระที่ตามองไม่เห็น




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



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



ช่องโหว่ทำงานยังไง


หลักการคือ Datasette มีระบบ permission ที่คอยเช็กว่าผู้ใช้คนไหนมีสิทธิ์ดูตารางไหนบ้าง แต่ถ้าชื่อตารางที่ส่งเข้ามามีอักขระ newline (ตัวขึ้นบรรทัดใหม่) แปะท้ายมาด้วย ตัวระบบตรวจสิทธิ์กับตัวระบบดึงข้อมูลจริงดันมองชื่อตารางไม่เหมือนกัน พอประมวลผลคนละแบบ การเช็กสิทธิ์ก็ถูกข้ามไปในบางเส้นทาง ผลคือข้อมูลที่ควรถูกบล็อกกลับหลุดออกมาให้เห็น แม้ผู้ใช้จะไม่ได้รับอนุญาตก็ตาม



จุดนี้แหละที่ทำให้ผมอยากหยุดพูดถึงมัน ไม่ใช่เพราะมันเป็นบั๊กใหญ่ระดับหายนะ แต่เพราะมันเป็นตัวอย่างคลาสสิกของ "ช่องโหว่จากความไม่สอดคล้อง" (inconsistency bug) ที่เกิดเวลาระบบหนึ่งตีความข้อมูลต่างจากอีกระบบหนึ่ง อักขระที่คนทั่วไปมองไม่เห็นด้วยตาเปล่า กลับกลายเป็นกุญแจเปิดประตูหลังได้



“
Security fix for an issue where a trailing newline in a requested table name could bypass table permissions and expose private rows


รายละเอียดสั้นๆ ที่ควรรู้จากประกาศเวอร์ชันนี้ มีอยู่ไม่กี่ข้อ แต่ข้อสำคัญสุดคือเรื่องช่องโหว่:




แพตช์ช่องโหว่สิทธิ์เข้าถึง

แก้ปัญหาที่ newline ต่อท้ายชื่อตารางที่ร้องขอ สามารถหลบเลี่ยง permission ของตารางและเปิดเผยแถวข้อมูลส่วนตัวได้



ผู้รายงาน

dpfkdlemtp เป็นคนรายงานผ่านช่องทาง GHSA-h547-rmjf-5m2m



เวอร์ชัน

Datasette 0.65.5 ปล่อยออกมาเพื่ออุดช่องโหว่นี้โดยเฉพาะ


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



ที่น่าสนใจคือเรื่องนี้สะท้อนปัญหาพื้นฐานของซอฟต์แวร์ยุคนี้ นั่นคือเราสร้างระบบที่มี layer เยอะขึ้นเรื่อยๆ ระบบตรวจสอบสิทธิ์ชั้นหนึ่ง ระบบดึงข้อมูลอีกชั้นหนึ่ง ระบบ parse URL อีกชั้นหนึ่ง พอแต่ละชั้นตีความ input ไม่ตรงกัน ช่องว่างระหว่างชั้นก็กลายเป็นช่องโหว่ทันที และบ่อยครั้งมันไม่ได้เกิดจากโค้ดที่เขียนผิด แต่มันเกิดจาก "สมมติฐานที่ต่างกัน" ของแต่ละส่วน



💡

บทเรียนจากข่าวสั้นๆ ข่าวนี้คือ อย่ามองข้ามรายละเอียดที่ดูไร้สาระอย่างอักขระซ่อนเร้น เพราะนั่นแหละคือที่ที่ช่องโหว่ชอบซ่อนตัว และถ้าคุณรัน Datasette อยู่ อัปเดตเป็น 0.65.5 คือสิ่งที่ต้องทำตอนนี้เลย ไม่ใช่พรุ่งนี้



ที่มา: Simon Willison's Weblog — อ่านต้นฉบับ


#Datasette #Security #OpenSource

🔗 อ่านต่อ · สินค้าและคำถามที่เกี่ยวข้อง

สินค้ามาแรงตอนนี้

คนขายของถามบ่อย

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

กำลังโหลดความคิดเห็น...