EST. 2026 — บันทึกงานเซิร์ฟเวอร์จริง SYSADMIN · SECURITY · AI · DIRECTADMIN เล่มที่ 01
THE SYSADMIN ALMANAC
หน้าหลัก / Security Update / Debian แก้ zlib 3 CVE รวม CVE-2026-85091 รีบตรวจแพ็กเกจ
Security Update

Debian แก้ zlib 3 CVE รวม CVE-2026-85091 รีบตรวจแพ็กเกจ

โดย Ton-Or ·7 พ.ย. 2026·อ่าน 6 นาที
Debian แก้ zlib 3 CVE รวม CVE-2026-85091 รีบตรวจแพ็กเกจ

คนดูแล Debian trixie ควรจัดรอบอัปเดต zlib โดยเร็ว แล้วเริ่มโปรเซสที่โหลดไลบรารีใหม่ให้ครบ โดยเร่งตรวจแอปที่เขียน gzip และจัดการข้อผิดพลาดจากข้อมูลภายนอกก่อน

สรุปใน 1 นาที

อาการ/ปัญหา
zlib มีลูปคำนวณ CRC ที่ใช้ CPU ค้าง และมีปัญหาเขียนเกินขอบเขต heap หลังเขียน gzip ไม่สำเร็จ ผลกระทบขึ้นกับวิธีที่แอปเรียกใช้
ใครควรอ่าน
เครื่อง Debian ที่มีแพ็กเกจ zlib ในรุ่นที่ tracker ระบุว่ากระทบ รวมถึง container และแอปที่ฝังสำเนาไลบรารีไว้เอง
ทางแก้แบบสั้น
อัปเดตแพ็กเกจตามสาย Debian ตรวจเลขรุ่นเต็ม เริ่มบริการที่ใช้ไลบรารีใหม่ และอัปเดตสำเนาใน image หรือแอปแยกต่างหาก
ข้ามไปขั้นตอน

พอดีเห็น Debian ออก DSA-6613-1 ของ zlib เมื่อ 7 พ.ย. 2026 ผมเลยสรุปจุดที่ต้องตรวจ รอบนี้มีทั้งปัญหาที่ทำให้บริการไม่ตอบสนอง และปัญหาเขียนหน่วยความจำเกินขอบเขต Debian ระบุว่าอาจรันโค้ดได้หากแอปประมวลผลข้อมูลที่เตรียมมาเพื่อโจมตีด้วย การมี zlib อยู่ในเครื่องยังบอกไม่ได้ว่าเว็บทุกตัวรับการโจมตีจากภายนอกได้ ต้องดูว่าแอปเรียกใช้ส่วนไหนด้วย

3 CVEรวมใน DSA-6613-1
8.1 SUSECVSS 3.1 ของ CVE-2026-85091
7.4 CNAคะแนนคนละผู้ประเมิน
trixieมีแพ็กเกจแก้แล้ว

zlib รอบนี้แก้อะไรบ้าง

zlib เป็นไลบรารีสำหรับบีบอัดข้อมูล คำนวณ checksum และอ่านเขียน gzip ปัญหาในประกาศนี้อยู่คนละเส้นทางกัน

ช่องโหว่ จุดที่มีปัญหา สิ่งที่ต้องตรวจในแอป
CVE-2026-27171 ลูปใน x2nmodp() ที่เกี่ยวกับ crc32_combine64() และ crc32_combine_gen64() อาจไม่สิ้นสุด แอปเปิดให้ข้อมูลภายนอกมีผลต่อการเรียกเส้นทางคำนวณนี้หรือไม่
CVE-2026-76844 หลัง write() ล้มเหลว gz_write() เก็บ pointer ของ buffer ผู้เรียกค้างไว้ การเขียนครั้งถัดไปอาจล้น heap มีการเขียนต่อหลัง error หรือเรียก gzclearerr() แล้วลองใหม่หรือไม่
CVE-2026-85091 หลัง non-blocking write เขียนต่อไม่ได้ การเรียก gzprintf() หรือ gzvprintf() อาจทำให้ gz_vacate() เขียนล้น heap แอปเขียน gzip แบบนี้หรือไม่ และอ่านข้อทักท้วงเรื่องรุ่นเก่าด้านล่างด้วย

สำหรับ CVE-2026-76844 Debian tracker ระบุว่า write error ก็ทำให้เกิดปัญหาได้ ไม่จำกัดเฉพาะ non-blocking write รวมถึง EPIPE บน blocking descriptor ด้วย ส่วนรุ่นก่อน 1.3.1.2 ต้องเรียก gzclearerr() หลังเขียนล้มเหลว แล้วเรียกเขียนอีกครั้ง

แอปเขียน gzipเรียกเส้นทาง gz* writeเขียนไม่สำเร็จpointer เดิมค้างอยู่เรียกเขียนต่ออาจเขียนเลยขอบ heapแพตช์คืนสถานะ buffer ก่อนออกอัปเดตแล้วต้องเริ่มโปรเซสใหม่ให้โหลดไลบรารี
ผังย่อของปัญหาฝั่งเขียน gzip เงื่อนไขการเขียนต่อแตกต่างตามรุ่นและ CVE ไม่ใช่ผังการโจมตีเว็บได้ทุกเครื่อง

คะแนนสูง แต่ต้องดูทางที่แอปเรียกใช้

SUSE จัด CVE-2026-85091 เป็น important และให้ CVSS 3.1 เท่ากับ 8.1 ด้วย vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H ขณะที่คะแนนของ CNA คือ VulnCheck อยู่ที่ 7.4 ด้วย vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H ความต่างอยู่ที่ผลกระทบต่อความลับของข้อมูล ทั้งคู่ไม่ใช่คะแนนจาก Debian

ทั้งคู่ประเมินว่าโจมตีได้ยาก ช่องทางโจมตีเป็น network ไม่ต้องมีสิทธิ์และไม่ต้องให้ผู้ใช้กดอะไร แต่แอปต้องเรียกใช้ส่วนที่มีปัญหาด้วย คะแนนสูงเลยเป็นเหตุผลให้เร่งตรวจ ไม่ใช่หลักฐานว่าเปิดเว็บแล้วจะถูก RCE ได้ทันที

แยกความเป็นไปได้ออกจากการโจมตีจริง

DSA ระบุ DoS และความเป็นไปได้ในการรันโค้ด แต่ไม่ได้ระบุว่ามีการโจมตีจริง CVE-2026-27171, CVE-2026-76844 และ CVE-2026-85091 ยังไม่อยู่ใน KEV ฉบับ 6 พ.ย. 2026 ตาม JSON ในคลังทางการของ CISA เลยไม่มีวันเพิ่มรายการหรือวันครบกำหนดของทั้งสาม CVE ในฉบับนี้ การไม่อยู่ใน KEV ไม่ได้แปลว่าไม่มีการโจมตี

รุ่นที่แก้แล้ว และข้อทักท้วงเรื่องรุ่นเก่า

ตารางนี้อ้างอิง DSA-6613-1 และ หน้า source package zlib ให้เทียบเลขแพ็กเกจ Debian เต็มชุด Debian อาจ backport แพตช์มาใส่รุ่นเดิมโดยไม่เปลี่ยนเลข upstream

สาย Debian รุ่นแพ็กเกจ สถานะสำหรับชุดนี้
trixie ก่อนอัปเดต 1:1.3.dfsg+really1.3.1-1 tracker ระบุ vulnerable
trixie security 1:1.3.dfsg+really1.3.1-1+deb13u1 แก้ครบตาม DSA
bookworm 1:1.2.13.dfsg-1 tracker ยังระบุ vulnerable; ยังไม่มีรุ่นแก้ของ bookworm ในตารางที่ตรวจ

ขอบเขตรุ่นของ CVE-2026-85091 ในแต่ละแหล่งยังต่างกัน CVE record ระบุรุ่น 1.3.1.2 ถึง 1.3.2 แต่ Debian tracker ระบุว่าแพ็กเกจเดิมของ trixie และ bookworm มีช่องโหว่ด้วย

ใน Debian bug #1146895 มีผู้ทักท้วงว่าทั้งสองสายไม่มี gz_vacate() เลยน่าจะอยู่นอกช่วงรุ่นของ CVE นี้ แต่มีผู้ทดสอบพบว่ารุ่นเก่าล้มได้หลัง write error ผู้ดูแล Debian เลยยังไม่เปลี่ยนสถานะเป็น not affected ระหว่างพิจารณาขอบเขต CVE ส่วน CVE-2026-76844 อธิบายเงื่อนไขในรุ่นเก่าไว้โดยตรง และ tracker ระบุว่าใช้แพตช์เดียวกันแก้ทั้งสอง CVE

ผมเลยไม่ตัดสินว่าปลอดภัยจากการไม่มีชื่อฟังก์ชันนี้เพียงอย่างเดียว ใครใช้ bookworm ให้ติดตามประกาศของสายนั้นต่อ แม้ apt บอกว่าไม่มีอัปเดตเหลืออยู่ ก็ยังไม่ได้แปลว่าแก้ช่องโหว่นี้แล้ว ไม่ควรนำแพ็กเกจของ trixie มาติดตั้งข้ามสายเพื่อให้เลขรุ่นผ่านเฉยๆ

อัปเดตแพ็กเกจ แล้วเริ่มบริการที่ใช้ใหม่

  1. ตรวจสายระบบ จดรุ่นแพ็กเกจและแหล่ง repository ให้ตรง Debian ที่ใช้อยู่
  2. ติดตั้งแพตช์ อัปเดต zlib จาก repository ของสายนั้น แล้วตรวจเลขรุ่นเต็ม
  3. เริ่มโปรเซสใหม่ ตรวจบริการที่ยังใช้ไลบรารีเดิมและจัดลำดับ restart ตามผลกระทบ
  4. ไล่สำเนาที่แยกอยู่ อัปเดต container และแอปที่ bundle หรือ static link zlib แล้วทดสอบงานปกติ

เริ่มจากดูสายระบบกับแพ็กเกจที่ติดตั้งไว้

cat /etc/os-release
dpkg-query -W -f='${binary:Package}\t${Version}\n' zlib1g
apt-cache policy zlib1g

สำหรับ trixie ให้ตรวจว่ารับแพ็กเกจจาก security repository ของสายตัวเองได้ แล้วอัปเดต หลัง update ต้องไม่มีข้อผิดพลาดที่ทำให้ยังใช้ดัชนีเก่า อ่านรายการเปลี่ยนแปลงก่อนยืนยันติดตั้งด้วย

sudo apt-get update
sudo apt-get install --only-upgrade zlib1g

ถ้าติดตั้ง zlib1g-dev หรือไลบรารีสำหรับสถาปัตยกรรมอื่นไว้ด้วย ให้อัปเดตให้ครบ โดยเฉพาะเครื่อง build ที่ใช้ static library การอัปเดต runtime package อย่างเดียวไม่เปลี่ยน binary ที่ build ไปแล้ว

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

installed_zlib=$(dpkg-query -W -f='${Version}' zlib1g) || exit 1
printf '%s\n' "$installed_zlib"
if dpkg --compare-versions "$installed_zlib" ge '1:1.3.dfsg+really1.3.1-1+deb13u1'; then
    printf '%s\n' 'Installed trixie package meets the DSA fixed version'
else
    printf '%s\n' 'Installed package is below the DSA fixed version'
fi

ถ้ามี needrestart อยู่แล้ว ใช้ list mode ตรวจรายการ แล้วใช้ interactive mode เลือกเริ่มบริการใหม่ในช่วงที่พร้อมรับผลกระทบ ตาม คู่มือ Debian

sudo needrestart -r l
# หลังจัดรอบ restart บริการเรียบร้อยแล้ว
sudo needrestart -r i
sudo needrestart -r l

สำหรับ container ให้สร้าง image และ container ใหม่ที่มีแพตช์ ส่วนแอปที่ bundle หรือ static link ให้ใช้รุ่นที่ผู้ผลิตแก้ หรือ build ใหม่กับไลบรารีที่มีแพตช์ การอัปเดต host ไม่ได้เปลี่ยน zlib ที่อยู่ใน image หรือแอปเหล่านี้ ทดสอบงานบีบอัดและงานเบื้องหลังซ้ำ แล้วอ่านแนวตรวจต่อที่ ตรวจความปลอดภัย Debian Server

ระหว่างที่ยังไม่มีแพตช์ของสายที่ใช้

DSA นี้ไม่ได้ให้ workaround ที่ใช้ได้กับทุกแอป ผู้ดูแลอาจจำกัดงานที่รับข้อมูลจากแหล่งที่ไม่เชื่อถือ หรือหยุดส่วนที่เขียน gzip และเสี่ยงต่อปัญหานี้ชั่วคราว ต้องตรวจโค้ดและทดสอบผลกระทบก่อน วิธีนี้ช่วยลดความเสี่ยง แต่ใช้แทนแพตช์ไม่ได้

เช็กว่าโดนหรือยัง ต้องแยกอาการออกจากหลักฐาน

แหล่งที่อ้างในโพสต์นี้ไม่ได้ให้ IOC เช่น hash ของมัลแวร์หรือปลายทางผู้โจมตี ผมแนะนำให้ตรวจว่าโปรเซสล้มซ้ำ ใช้ CPU ค้าง หรือเกิด write error ระหว่างสร้าง gzip หรือไม่ แล้วเทียบกับข้อมูลที่แอปรับเข้าและเวลาที่เกิดเหตุ อาการพวกนี้เป็นจุดเริ่มตรวจ ไม่ใช่หลักฐานว่าโดนโจมตีแล้ว

journalctl -p warning -b --no-pager

คำสั่งนี้ดู warning และ error ของบูตปัจจุบันเท่านั้น ต้องเปิด log ของแอปและประวัติก่อนหน้านั้นตามช่วงที่สงสัยด้วย ถ้าพบ crash ให้เก็บ log กับ core dump ไว้ตรวจว่าเกี่ยวกับ zlib จริงหรือไม่ การไม่พบข้อความผิดปกติไม่ได้รับรองว่าไม่เคยเกิดปัญหา

ส่วนตัวผมจัดความเร่งด่วนแบบนี้

ส่วนตัวผมจะจัดรอบบำรุงรักษาเพื่ออัปเดต trixie ถ้าแอปใช้ข้อมูลภายนอกเขียน gzip และลองเขียนซ้ำหลัง error ผมจะเร่งอัปเดตขึ้น ส่วน bookworm ต้องติดตามจนกว่าจะมีแพตช์ของสายตัวเอง

ที่มา: Debian DSA-6613-1 (https://lists.debian.org/debian-security-announce/2026/msg00532.html), Debian DSA tracker (https://security-tracker.debian.org/tracker/DSA-6613-1), Debian zlib tracker (https://security-tracker.debian.org/tracker/source-package/zlib), CVE-2026-27171 (https://security-tracker.debian.org/tracker/CVE-2026-27171), CVE-2026-76844 (https://security-tracker.debian.org/tracker/CVE-2026-76844), CVE-2026-85091 (https://security-tracker.debian.org/tracker/CVE-2026-85091), Debian bug #1146895 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1146895), SUSE CVE-2026-85091 (https://www.suse.com/security/cve/CVE-2026-85091.html), zlib upstream fix (https://github.com/madler/zlib/commit/df84af25dc19), CISA KEV JSON ฉบับ 6 พ.ย. 2026 (https://raw.githubusercontent.com/cisagov/kev-data/develop/known_exploited_vulnerabilities.json), CVE records (https://github.com/CVEProject/cvelistV5/tree/main/cves/2026), Debian needrestart (https://manpages.debian.org/trixie/needrestart/needrestart.1.en.html), Debian apt-get (https://manpages.debian.org/trixie/apt/apt-get.8.en.html), Debian dpkg (https://manpages.debian.org/trixie/dpkg/dpkg.1.en.html) ข้อมูลถึง 7 พ.ย. 2026 ตามวันที่ประกาศ Debian ที่นำมาสรุป เดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ

อยากให้เราทำให้ไหม?

ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า

คุยเรื่องงานกับเรา

เคยเจองานแบบนี้ไหม? ติดตรงไหน?

มาแลกวิธีกันต่อในบอร์ด LinuxThai

→ คุยต่อในบอร์ด

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

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