Drupal แก้ 2 CVE ใน S3 File System และ Bulk Update User Roles
Drupal ออกแพตช์ s3fs 8.x-3.12 และ Bulk Update User Roles 1.0.5 แก้ปัญหาสิทธิ์ไฟล์ S3 และแบบฟอร์มจัดการ role
Drupal แก้ CVE ใน S3 File System และ Bulk Update User Roles
Drupal เผยแพร่ประกาศความปลอดภัยสองรายการในวันที่ 28 ตุลาคม 2026 ซึ่งเกี่ยวกับการควบคุมสิทธิ์คนละชั้นของเว็บไซต์: S3 File System (s3fs) อาจกำหนดสิทธิ์ของไฟล์บน Amazon S3 ผิดจากที่ตั้งใจภายใต้การทำงานหลายไฟล์ในคำขอเดียว ส่วน Bulk Update User Roles อาจเปิดแบบฟอร์มจัดการ role ให้ผู้ที่ไม่ควรมีสิทธิ์กำหนด role ได้ ทั้งสองปัญหามีเงื่อนไขเฉพาะ ไม่ควรเหมารวมว่าเว็บไซต์ Drupal ทุกแห่งหรือทุก S3 bucket ได้รับผลกระทบ
วันเปิดเผยครั้งแรก: ประกาศ SA-CONTRIB-2026-279 ของ s3fs เผยแพร่วันที่ 28 ตุลาคม 2026 เวลา 17:33:39 UTC และ SA-CONTRIB-2026-280 ของ Bulk Update User Roles เวลา 17:33:50 UTC ระเบียน CVE-2026-118574 และ CVE-2026-118567 เผยแพร่ครั้งแรกในระบบ CVE วันที่ 30 ตุลาคม 2026 เวลา 03:08:43 และ 03:08:42 UTC ตามลำดับ แพตช์ s3fs 8.x-3.12 และ Bulk Update User Roles 1.0.5 ออกวันที่ 28 ตุลาคม 2026 เช่นกัน จึงผ่านเกณฑ์ที่ตรวจทั้งวันเปิดเผยและวันเผยแพร่ CVE ภายใน 48 ชั่วโมง
CVE-2026-118574: บริบทการอัปโหลดไฟล์บน S3 ไม่แยกจากกันเพียงพอ
s3fs เพิ่ม file system ให้ Drupal จัดเก็บไฟล์ใน Amazon S3 ตามประกาศต้นทาง โมดูลแยกบริบทการอัปโหลดระหว่างการทำงานกับไฟล์หลายรายการใน request เดียวไม่เพียงพอ ออบเจกต์บางรายการจึงอาจถูกอัปโหลดด้วย access control list หรือ ACL ที่ไม่ถูกต้อง หรือเกิดความเสียหายจาก metadata ของการดำเนินการอื่น ผู้โจมตีต้องสามารถกระตุ้นให้เกิดการทำงานกับไฟล์หลายรายการผ่าน s3fs ได้ก่อน ผลกระทบจึงขึ้นกับการตั้งค่าและรูปแบบการใช้งานของเว็บไซต์
Drupal อธิบายเงื่อนไขที่ลดเส้นทางโจมตีที่ทราบอยู่: ไม่เปิดการย้าย private:// ไปใช้ S3 ($settings['s3fs.use_s3_for_private'] = FALSE) หรือหากเปิดก็ตั้ง $settings['s3fs.upload_as_private'] = TRUE และ deployment ไม่ใช้ hook สำหรับปรับพารามิเตอร์ของ s3fs ได้แก่ hook_s3fs_stream_open_params_alter(), hook_s3fs_upload_params_alter(), hook_s3fs_copy_params_alter() หรือ hook_s3fs_command_params_alter() หากทั้งสองข้อเป็นจริงมาตลอด โครงการระบุว่าเส้นทางที่ทราบทั้งหมดถูกลดความเสี่ยงแล้ว การประเมินต้องดูการตั้งค่าที่ใช้งานจริงและประวัติการเปลี่ยนค่า ไม่ควรสรุปจากค่าปัจจุบันอย่างเดียว
เวอร์ชัน ก่อน 8.x-3.12 ได้รับผลกระทบ Drupal แนะนำให้อัปเดตเป็น 8.x-3.12 ซึ่งหน้า release สร้างวันที่ 28 ตุลาคม 2026 เวลา 08:23 UTC หลังอัปเดต หากเปิด private:// takeover โดยไม่ได้ตั้ง s3fs.upload_as_private = TRUE ให้ตรวจ ACL ของออบเจกต์ private ทั้งหมดว่ามี public-read หรือไม่ หากพบให้ตรวจ S3 Bucket Access logs เมื่อเปิดเก็บไว้ หากใช้ s3fs hooks ให้ตรวจว่าการปรับแต่งกระทบเฉพาะออบเจกต์ที่ตั้งใจไว้ โครงการเสนอให้พิจารณาปิด ACL และใช้ bucket policy ปิดการเข้าถึงไฟล์ private แบบสาธารณะตามตัวอย่างใน README ของแพตช์ แต่ต้องตรวจข้อกำหนดการตั้งค่าของโครงการก่อนเปลี่ยนระบบจริง หน้าแพตช์: https://www.drupal.org/project/s3fs/releases/8.x-3.12
CVE-2026-118567: แบบฟอร์มแก้ role ไม่ตรวจสิทธิ์ให้ตรงกับการกระทำ
Bulk Update User Roles มีแบบฟอร์มสำหรับเพิ่มหรือลบ role ให้บัญชีผู้ใช้หลายรายพร้อมกัน Drupal ระบุว่าแบบฟอร์มนี้ไม่ได้ป้องกันการเข้าถึงจากผู้ที่ไม่มีสิทธิ์กำหนด role อย่างเพียงพอ อย่างไรก็ดีผู้โจมตีต้องมี role ที่ได้รับสิทธิ์ administer users ก่อน จึงไม่ใช่ผู้เยี่ยมชมทั่วไปเข้ามาเปลี่ยน role ได้โดยไม่มีบัญชี ผู้ดูแลควรตรวจว่ามี role ใดได้รับสิทธิ์ดังกล่าว แต่ไม่ควรได้รับอำนาจเพิ่มหรือลบ role ของผู้อื่น แล้วตรวจประวัติการเปลี่ยน role หากพบความผิดปกติ
โมดูล เวอร์ชันก่อน 1.0.5 ได้รับผลกระทบ Drupal แนะนำให้ผู้ใช้บน Drupal 11 อัปเดตเป็น Bulk Update User Roles 1.0.5 หน้า release สร้างวันที่ 28 ตุลาคม 2026 เวลา 14:03 UTC หลังอัปเดตควรทดสอบแบบฟอร์มด้วยบัญชีที่มี administer users แต่ไม่มีสิทธิ์กำหนด role เพื่อยืนยันขอบเขตการเข้าถึง และทบทวนการให้สิทธิ์ administer users ตามความจำเป็น หน้าแพตช์: https://www.drupal.org/project/bulk_update_user_roles/releases/1.0.5
แนวทางร่วมของสองประเด็นคือสำรวจโมดูลและเวอร์ชัน ติดตั้งแพตช์ตามหน้า release ของโครงการ แล้วตรวจสิทธิ์ที่อาจเปลี่ยนไปก่อนอัปเดต ฝั่ง s3fs ต้องตรวจ ACL และ metadata ของไฟล์ที่มีความสำคัญ ฝั่ง role ต้องตรวจผู้ใช้ที่ได้รับสิทธิ์สูงผิดปกติ ระเบียน CVE ต้นทาง: https://www.cve.org/CVERecord?id=CVE-2026-118574 และ https://www.cve.org/CVERecord?id=CVE-2026-118567