Roundcube แก้ 20 ช่องโหว่ (DSA-6579-1) อัปเดตเป็น 1.6.20 หรือ 1.7.5
ใครเปิด webmail Roundcube ออกอินเทอร์เน็ต ให้อัปเดตเป็น 1.6.20 หรือ 1.7.5 ในรอบนี้เลย เพราะเป็นเว็บที่ผู้ใช้ล็อกอินกล่องจดหมายอยู่ตลอด
สรุปใน 1 นาที
- อาการ/ปัญหา
- Roundcube ก่อน 1.6.20 และ 1.7.x ก่อน 1.7.5 มีช่องโหว่ 20 รายการ รวม IMAP command injection, SSRF bypass, header injection และ XSS ที่ต้นทางไม่เปิดรายละเอียดเป็นรายตัว
- ใครควรอ่าน
- ทุกคนที่รัน Roundcube เองหรือผ่านแพ็กเกจ distro และแผงควบคุมที่ build ให้ โดยเฉพาะ Debian 12 ที่ตัวติดตามของ Debian ยังขึ้นว่ายังไม่แก้
- ทางแก้แบบสั้น
- อัปเดตเป็น 1.6.20 หรือ 1.7.5 (Debian 13 ใช้แพ็กเกจ 1.6.20+dfsg-0+deb13u1) แล้วเช็กรุ่นจริงหลังอัปเดต
พอดีเห็นอีเมลแจ้ง DSA-6579-1 ของ Debian ที่ออกเมื่อ 23 ต.ค. 2026 เป็นเรื่อง Roundcube รายการ CVE ยาวถึง 20 ตัว ผมเลยย้อนไปดูต้นทางว่าเกิดอะไรขึ้น พบว่าโปรเจกต์ Roundcube เองปล่อยรุ่นแก้ไปตั้งแต่ 19 ต.ค. คือ 1.6.20 (สาย LTS) กับ 1.7.5 และ Debian เพิ่งตามมาทีหลัง สำหรับคนที่ดูแลเมลเซิร์ฟเวอร์ หน้าเว็บเมลเป็นของที่เปิดออกอินเทอร์เน็ตเกือบทุกเครื่องอยู่แล้ว ผมเลยอยากให้อ่านรอบนี้แบบไม่ข้าม
เกิดอะไรขึ้น
บันทึกรุ่นของ Roundcube 1.6.20 กับ 1.7.5 มีรายการแก้ด้านความปลอดภัย 20 ข้อเท่ากัน และไม่ใส่เลข CVE ไว้ในตัวบันทึก ส่วน Debian ระบุ CVE ไว้ 20 ตัว (CVE-2026-113386 และ CVE-2026-114714 ถึง CVE-2026-114732) แต่ไม่ได้จับคู่ CVE กับช่องโหว่แต่ละข้อ และคำอธิบายในตัวติดตามของ Debian ก็ยังเป็นแบบ "unspecified" ผมเลยบอกไม่ได้ว่า CVE ตัวไหนคือข้อไหน ได้แต่สรุปรายการแก้จากบันทึกรุ่นต้นทางเป็นกลุ่มตามนี้
- IMAP command injection ตัวอักษรขึ้นบรรทัดใหม่ (CRLF) ในพารามิเตอร์
_uidของหน้า headers และ viewsource กับพารามิเตอร์_flagของ mark ทำให้สอดคำสั่ง IMAP เพิ่มได้ - การยืนยันตัวตนและสิทธิ์ การล็อกอินด้วย alias ไม่ได้ผูกกับ IMAP host,
disabled_actionsข้ามได้ผ่านชื่อ action แบบเก่า, CSRF ของการ mark เป็นขยะข้ามได้, และ driver เปลี่ยนรหัสผ่านของ Modoboa เปลี่ยนรหัสของบัญชีอื่นได้ - SSRF กับการบล็อกเนื้อหาจากภายนอก
is_local_url()ถูกข้ามด้วยที่อยู่ NAT64, การบล็อกรูปจากภายนอกถูกข้ามด้วย SVG SMIL และ CSS escape - Header injection ชื่อผู้ส่งตอน Bounce, ค่า References/In-Reply-To/Message-ID/From, หัวเรื่องของไฟล์แนบที่ forward และ media type ของรูป data URI
- XSS และ CSS CSS scoping ข้ามได้ด้วย at-rule และ XSS ในข้อความ error ของ password driver
- อื่นๆ object injection ใน
rcube_session::unserialize(), การส่งไฟล์แนบที่ไม่ปลอดภัยเข้า ImageMagick ตอนย่อรูป, และชื่อล็อกอินที่ไม่ปลอดภัยใน path ของการนำเข้า SquirrelMail
ทำไมผมถึงให้ความสำคัญกับ webmail เป็นพิเศษ เพราะหน้านี้คือหน้าที่ผู้ใช้ล็อกอินกล่องจดหมายค้างไว้ทั้งวัน ถ้าสคริปต์ของคนอื่นรันได้ในหน้าที่แสดงอีเมล (XSS) มันทำงานด้วยสิทธิ์ของผู้ใช้คนนั้นได้เกือบทุกอย่าง ทั้งอ่านเมล ส่งเมล หรือตั้งกฎส่งต่อ และถ้าสอดคำสั่ง IMAP ได้ก็เท่ากับสั่งกล่องจดหมายเกินจากที่หน้าเว็บตั้งใจให้ทำ นี่เป็นการอธิบายความเสี่ยงโดยทั่วไป ไม่ใช่ข้อมูลจาก advisory ว่าช่องโหว่ข้อไหนทำอะไรได้ถึงขั้นไหน
ระดับความรุนแรง
ผมเปิดบันทึกรุ่นของ Roundcube, DSA-6579-1 และหน้า tracker ของ Debian แล้ว ไม่มีที่ไหนเผยแพร่คะแนน CVSS หรือระดับของแต่ละ CVE (คำอธิบายใน tracker เป็นแบบ "unspecified issue") ผมเลยไม่ตั้งตัวเลขเอง และไม่มีแหล่งไหนที่ผมเปิดระบุว่ามีการโจมตีจริงหรือมี exploit สาธารณะ ฟีด CISA KEV ที่ใช้ตรวจก็ไม่มีรายการของ Roundcube รอบนี้
สิ่งที่บอกความเร่งด่วนได้จากข้อมูลที่มีคือ ขอบเขต ช่องโหว่ 20 ข้อกระจายตั้งแต่การสอดคำสั่งไปยัง IMAP, ข้ามการบล็อกเนื้อหา, ไปจนถึงเปลี่ยนรหัสผ่านของบัญชีอื่นผ่าน driver บางตัว และโปรเจกต์ออกรุ่นความปลอดภัยของ Roundcube ห่างกันราว 4 ถึง 6 สัปดาห์ (24 พ.ค., 5 ก.ค., 9 ส.ค., 6 ก.ย., 19 ต.ค.) ตามหน้าข่าวของโปรเจกต์ ใครค้างรุ่นเก่ากว่านั้นเลยมีรอบก่อนหน้าค้างอยู่อีกหลายชุดนอกจากรอบนี้
ผมไม่เห็นวิธีแก้ชั่วคราวในบันทึกรุ่นหรือใน DSA ทางเดียวที่เห็นคืออัปเดต ถ้าอัปเดตไม่ได้ทันที สิ่งที่ผมทำเองได้เป็นการลดความเสี่ยงทั่วไป ไม่ใช่คำแนะนำจากต้นทาง คือจำกัดการเข้าหน้า webmail ให้เฉพาะ IP ที่เชื่อถือหรือหลัง VPN จนกว่าจะอัปเดต
ใครโดนบ้าง รุ่นที่กระทบและรุ่นที่แก้
| ที่มาของ Roundcube | รุ่นที่ได้รับผลกระทบ | รุ่นที่แก้ |
|---|---|---|
| ต้นทาง สาย 1.7 | ก่อน 1.7.5 | 1.7.5 |
| ต้นทาง สาย 1.6 (LTS) | ก่อน 1.6.20 | 1.6.20 |
| ต้นทาง สาย 1.5 | หน้าข่าวไม่มีรุ่น 1.5 ใหม่หลัง 1.5.15 (29 มี.ค.) | ไม่มี ให้ย้ายขึ้น 1.6 หรือ 1.7 |
| Debian 13 trixie | 1.6.18+dfsg-0+deb13u1 | 1.6.20+dfsg-0+deb13u1 |
| Debian 12 bookworm | แพ็กเกจ 1.6.5+dfsg-1+deb12u12 ขึ้นสถานะ vulnerable ทั้ง 20 CVE | ยังไม่เห็นรุ่นแก้ |
| แผงควบคุมที่ติดตั้ง Roundcube ให้ (เช่น DirectAdmin) | ขึ้นกับรุ่นที่แผงดึงมา | ดูวิธีอัปเดตจากเอกสารของแผงที่ใช้ |
DSA-6579-1 ระบุรุ่นแก้เฉพาะ Debian 13 ส่วน Debian 12 ผมอ่านจากหน้า tracker ของ Debian ซึ่งขึ้นว่า vulnerable ทุก CVE และ Roundcube DLA ล่าสุดที่ผมเห็นในหน้า LTS คือ DLA-4823-1 ลงวันที่ 5 ต.ค. ซึ่งก่อนที่ต้นทางจะออก 1.6.20 ถ้าคุณใช้ Debian 12 ให้เปิดดู tracker ซ้ำอีกครั้งก่อนตัดสินใจ เพราะข้อมูลของผมถึง 5 พ.ย. เท่านั้น
วิธีแก้
- หาว่ามี Roundcube กี่ชุดในเครื่อง แพ็กเกจของ distro, ชุดที่แผงควบคุมติดตั้ง, และชุดที่ลงเองในโฟลเดอร์เว็บ
- เช็กรุ่นของแต่ละชุด อย่าเดาจากชื่อแพ็กเกจ
- สำรองไฟล์และฐานข้อมูลก่อน ผู้ดูแลโปรเจกต์แนะนำให้สำรองก่อนอัปเดตเช่นกัน
- อัปเดตแล้วเช็กรุ่นซ้ำ เปิดหน้า login และกล่องจดหมายทดสอบ
แพ็กเกจของ distro ชุดที่แผงควบคุมติดตั้ง และชุดที่ลงเองในโฟลเดอร์เว็บ แยกกันอัปเดต อัปเดตชุดหนึ่งแล้วอีกชุดไม่ขยับตาม เช็กรุ่นของแต่ละชุดแยกกัน
Debian 13 ที่ใช้แพ็กเกจของ distro
dpkg-query -W -f='${Package} ${Version}\n' 'roundcube*'
sudo apt update
sudo apt install --only-upgrade 'roundcube*'
apt policy roundcube-core # ต้องเห็น 1.6.20+dfsg-0+deb13u1 ขึ้นไป
ชุดที่ลงเองจาก tarball ให้ดูรุ่นจากไฟล์ของ Roundcube แล้วอัปเกรดตามหน้า Upgrade ใน wiki ของโปรเจกต์ ซึ่งเรียก bin/installto.sh ว่าเป็นวิธีที่ง่ายที่สุด สคริปต์นี้คัดลอกไฟล์ใหม่ไปทับแล้วรันสคริปต์อัปเดตค่าตั้งและ schema ฐานข้อมูลให้ ต้องมี rsync ในเครื่อง ฟังก์ชัน system ของ PHP ต้องไม่อยู่ใน disable_functions และ user ของฐานข้อมูลต้องมีสิทธิ์แก้ schema หน้าเดียวกันย้ำให้สำรองทั้งโฟลเดอร์และ dump ฐานข้อมูลก่อน
# ดูรุ่นที่ลงอยู่ (path เป็นตัวอย่าง)
grep -rn "RCMAIL_VERSION'" /path/to/roundcube/program/include/ | head -3
# สำรองไว้นอกโฟลเดอร์เว็บ (อย่าลืม dump ฐานข้อมูลด้วย) แล้วอัปเกรด
sudo cp -a /path/to/roundcube /var/backups/roundcube-before-1.6.20
tar xzf roundcubemail-1.6.20-complete.tar.gz
cd roundcubemail-1.6.20
sudo ./bin/installto.sh /path/to/roundcube
ถ้า Roundcube ถูกติดตั้งผ่านแผงควบคุมอย่าง DirectAdmin ให้ทำตามเอกสารของแผงที่ใช้ ผมไม่ได้ยืนยันคำสั่งอัปเดตกับเอกสารทางการของ DirectAdmin ในรอบนี้ เลยไม่ใส่คำสั่งให้ เช็กด้วยว่ารุ่นที่แผงดึงมาเป็น 1.6.20 หรือ 1.7.5 แล้วหรือยัง ถ้ายังเป็นรุ่นเก่า การสั่ง build หรืออัปเดตซ้ำก็ได้รุ่นเดิม
เช็กว่าโดนหรือยัง
ต้นทางไม่ได้ประกาศ indicator of compromise สำหรับรอบนี้ ที่ผมเสนอได้คือสิ่งที่อนุมานจากรายการช่องโหว่ ไม่ใช่รายการจากต้นทาง
- ไล่ access log หาพารามิเตอร์
_uidหรือ_flagที่มีตัวอักษรขึ้นบรรทัดใหม่แบบ URL-encode (ตรงกับข้อ IMAP command injection) เห็นได้เฉพาะ request แบบ GET - ดูกฎส่งต่ออีเมลหรือ filter ที่ผู้ใช้ไม่ได้ตั้งเอง และอีเมลขาออกจากบัญชีที่ผิดปกติ
- ดู
errors.logของ Roundcube หาข้อผิดพลาดจาก IMAP ที่แปลก
grep -iE '_(uid|flag)=[^ &]*(%0d|%0a)' /var/log/apache2/access.log | head
ถ้าเจอรายการที่ตรงให้ถือว่าบัญชีนั้นอาจถูกใช้ไปแล้ว เปลี่ยนรหัสผ่านและตรวจกฎของกล่องจดหมาย แต่ผลที่ไม่เจอก็ไม่ได้แปลว่าปลอดภัย เพราะ log ปกติมองไม่เห็นค่าที่ส่งใน POST
ส่วนตัวผม ถ้า webmail เปิดออกอินเทอร์เน็ตอยู่ ผมไม่รอรอบบำรุงรักษา อัปเดตในรอบนี้เลย เพราะรายการแก้มีทั้งการสอดคำสั่ง การข้ามการบล็อก และ XSS ในที่เดียว และ Roundcube เป็นเป้าที่โดนบ่อย ส่วนเครื่องที่เป็น Debian 12 ซึ่งยังไม่เห็นรุ่นแก้ ผมจะจำกัดการเข้าถึงก่อนแล้วตัดสินใจว่ารอ DLA หรืออัปเกรดจากต้นทางเอง ตามกำลังคนที่ดูแล
ปล. สำหรับการตรวจเครื่อง Debian ที่รัน DirectAdmin แบบอ่านอย่างเดียว ผมเขียนลำดับที่ปลอดภัยไว้ใน audit ความปลอดภัยเซิร์ฟเวอร์ Debian shared-host
ที่มา: Roundcube news (roundcube.net/news), Roundcube releases 1.6.20 และ 1.7.5 (github.com/roundcube/roundcubemail/releases), Debian DSA-6579-1 (lists.debian.org/debian-security-announce/2026/msg00495.html), Debian Security Tracker (security-tracker.debian.org/tracker/source-package/roundcube), Debian LTS security (debian.org/lts/security) ข้อมูลถึง 5 พ.ย. 2026 ถ้าต้นทางเปิดรายละเอียดรายตัวหรือ Debian 12 ได้รุ่นแก้ เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า
เคยเจองานแบบนี้ไหม? ติดตรงไหน?
มาแลกวิธีกันต่อในบอร์ด LinuxThai



ความคิดเห็น 0
ยังไม่มีความคิดเห็น — เป็นคนแรกเลย