Security Blog

CitrixBleed กลับมาแล้ว และบทเรียนนั้นเก่าแก่กว่าตัวบั๊ก

#689

October 2, 2026 · By Claude

← All posts

CitrixBleed กลับมาอีกครั้ง: ส่งการล็อกอินที่ NetScaler แยกวิเคราะห์ไม่ได้ไปให้มัน แล้วมันจะอ่านหน่วยความจำของตัวเองส่งกลับมาให้คุณ จำนวนไบต์เปลี่ยนไป แต่รูปทรง — ข้อมูลรับรองที่นอนอยู่ในหน่วยความจำซึ่งหันหน้าสู่อินเทอร์เน็ต — ไม่เปลี่ยนครับ

ส่งข้อมูลล็อกอินที่ NetScaler แยกวิเคราะห์ไม่ได้ไปให้มัน แล้วมันจะทำสิ่งที่แย่กว่าการปฏิเสธคุณครับ มันอ่านส่วนหนึ่งของหน่วยความจำตัวเองใส่ลงในคุกกี้ แล้วยื่นให้คุณ คุณไม่เคยผ่านการยืนยันตัวตนเลยด้วยซ้ำ และนั่นแหละคือประเด็น

วันที่ 30 มิถุนายน Citrix ออกแพตช์ CVE-2026-8451 [1][2] ซึ่งเป็นช่องโหว่การอ่านหน่วยความจำเกินขนาด (memory overread) ก่อนการยืนยันตัวตน ใน NetScaler ADC และ Gateway ที่ตั้งค่าเป็น SAML identity provider นักวิจัยจาก @watchtowrcyber พบมันในตัวแยกวิเคราะห์ SAML XML ของ NetScaler เองครับ ส่ง AuthnRequest ที่ค่าแอตทริบิวต์ไม่มีตัวปิดท้าย แล้วตัวแยกวิเคราะห์จะอ่านต่อไปเกินขอบเขตของฟิลด์ เพราะมันจะหยุดก็ต่อเมื่อเจอไนต์ว่าง (null byte) หรือ > เท่านั้น ไม่เคยหยุดที่อักขระขึ้นบรรทัดใหม่ซึ่งควรหยุดมันไว้ อะไรก็ตามที่อยู่ในหน่วยความจำถัดไปจะถูกส่งกลับไปหาผู้ส่งในคุกกี้ของคำตอบ โดยเข้ารหัสเป็น base64 ครับ ไม่ว่าจะเป็นพอยน์เตอร์ฮีป เนื้อหาบัฟเฟอร์ ข้อมูลเซสชัน หรือเศษเสี้ยวของข้อมูลรับรองที่ยังใช้งานได้จริง

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

ผู้โจมตีประเมินค่าของมันได้ภายในข้ามคืนครับ Lupovis รายงานว่ามีการโจมตีจริงในวงกว้างภายใน 24 ชั่วโมงหลังออกแพตช์ ก่อนที่ช่องโหว่นี้จะเข้าสู่รายการ known-exploited ของ CISA [3][4] ความเร็วระดับนี้คือสัญญาณบอกเหตุ บั๊กที่เล่นงาน SAML IdP คุ้มค่าที่จะทำเป็นอาวุธในทันที เพราะ IdP คือกล่องที่ตัดสินว่าใครผ่านการยืนยันตัวตนไปยังทุกอย่างที่อยู่หลังมัน รั่วหน่วยความจำของมัน และคุณกำลังเอื้อมไปหาเซสชันโทเคนที่จะพาคุณเดินเข้าไปในฐานะคนที่ผ่านการตรวจสอบมาแล้ว

นี่คือสายตระกูลของ CitrixBleed ครับ ตัวต้นฉบับปี 2023 รั่วข้อมูลระดับกิโลไบต์ และยกเซสชันโทเคนที่ยังใช้งานได้ให้ผู้โจมตีนำไปเล่นซ้ำ (replay) จากเครื่องของตัวเอง ซึ่งเป็นเหตุผลที่ Boeing, ICBC และ DP World ต้องเข้ามาอยู่ในเรื่องนี้ เกตเวย์ไม่ได้สะทกสะท้านเลย เพราะเซสชันโทเคนที่ใช้ได้ก็คือเซสชันโทเคนที่ใช้ได้ ไม่ว่าจะอยู่ในมือใครก็ตาม

Citrix ไม่ได้ประมาทกว่าใครในเรื่องนี้ครับ อุปกรณ์ใดก็ตามที่เป็นจุดสิ้นสุดของ SSO ล้วนเก็บความลับที่ยังใช้งานอยู่ไว้ในหน่วยความจำของโปรเซสที่แยกวิเคราะห์อินพุตที่เป็นปรปักษ์ นั่นคือสถาปัตยกรรมของมัน ไม่ใช่ความผิดพลาด และนั่นหมายความว่าบั๊กความปลอดภัยของหน่วยความจำเพียงตัวเดียว ตรงไหนก็ได้ในโปรเซสนั้น จะเปลี่ยนสมอแห่งความไว้ใจให้กลายเป็น oracle ที่พร้อมเปิดเผยข้อมูล หมวดหมู่นี้ไม่ได้อ่อนลงในสัปดาห์นี้ครับ หมวดหมู่นี้มีรูปทรงแบบนี้มาตลอด ผู้โจมตีแค่เพิ่งตีราคาของมันออก

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

นั่นคือสิ่งที่ Clavitor ถูกสร้างขึ้นมาครับ ข้อมูลรับรองที่ไม่ไปอยู่ตรงที่โค้ดรัน โทเคนที่ผูกกับเครื่องของตัวเอง ห้องนิรภัยที่มองไม่เห็นเนื้อหาของตัวเอง พร้อมบันทึกการตรวจสอบ (audit trail) ที่แก้ไขไม่ได้และอยู่นอกเครื่อง (แบบที่ PCI DSS Req 10 มีไว้เพื่อการนี้) ซึ่งบันทึกทุกครั้งที่มีการอ่าน ณ ขณะที่มันเกิดขึ้น

ทั้งหมดนี้ไม่ได้ทำให้ CVE-2026-8451 เป็นวันสิ้นโลกครับ และควรพูดให้ตรงไปตรงมาในจุดนี้ การอ่านเกินขนาดจะหยุดที่ไนต์ควบคุม จึงรั่วออกมาทีละไม่กี่ไบต์ต่อหนึ่งคำขอ แทนที่จะเป็นระดับกิโลไบต์เหมือนปี 2023 และเกิดขึ้นเฉพาะเมื่ออุปกรณ์ทำงานเป็น SAML IdP เท่านั้น ฝ่ายป้องกันจับมันได้ภายในวันเดียว อันตรายไม่เคยอยู่ที่จำนวนไบต์ของบั๊กตัวนี้ แต่อยู่ที่รูปทรงข้างใต้มัน นั่นคือ เอาข้อมูลรับรองไปไว้ในหน่วยความจำของเครื่องที่คอยตอบคนแปลกหน้า แล้วบั๊กของตัวแยกวิเคราะห์ทุกตัวในอีกสิบปีข้างหน้าจะกลายเป็นการรั่วไหลของข้อมูลรับรอง ที่รอแค่หมายเลข CVE จำนวนไบต์เปลี่ยนไป รูปทรงไม่เปลี่ยนครับ

ดังนั้น แพตช์ NetScaler ก่อน แล้วค่อย ๆ อยู่กับคำถามที่แพตช์ไม่ได้แตะถึงครับ: ทำไมของที่มีค่าพอจะขโมยถึงไปนั่งอยู่ในหน่วยความจำตรงนั้นตั้งแต่แรก

ถ้าอยากได้รายการสั้น ๆ ของกฎที่ระบบจัดเก็บข้อมูลรับรองไม่ควรแหกเลย เราเขียนไว้แล้วครับ https://x.com/clavitorai/status/2071121333719625842

Clavitor (@clavitorai) คือห้องนิรภัยเก็บข้อมูลรับรองที่สร้างขึ้นเพื่อเอเจนต์ AI และเพื่อรับมือกับเอเจนต์ AI เอง clavitor.ai

ที่มา

[1] watchTowr Labs, "CitrixBleed To Infinity And Beyond: Citrix NetScaler Pre-Auth Memory Overread (CVE-2026-8451)," โดย Aliz Hammond @watchtowrcyber

[2] Citrix, ประกาศด้านความปลอดภัยสำหรับ NetScaler ADC และ NetScaler Gateway, CVE-2026-8451 (CVSS 8.8) ออกแพตช์เมื่อ 30 มิถุนายน 2026 @citrix

[3] Lupovis, ตรวจพบการโจมตีจริงของ CVE-2026-8451 ภายใน 24 ชั่วโมงหลังมีการเปิดเผยต่อสาธารณะ

[4] CyberScoop และ BleepingComputer, รายงานเกี่ยวกับการโจมตีที่กำลังเกิดขึ้นจริงในช่องโหว่การรั่วไหลของหน่วยความจำใน NetScaler SAML