
RCE ของ AI Agent ใน Zammad: แท็กเทมเพลตแบบซ้อนกันและการแก้ไขเพียงตัวอักษรเดียว
- Orcaใหม่OrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29100 tok/s
- Orcaใหม่OrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 102 tok/s
- Orcaใหม่OrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 283 tok/s
- Orcaใหม่OrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 93 tok/s
- Moonshotใหม่MoonshotAI: Kimi K3.1 Pro2026-10-2446ความฉลาด
- Orcaใหม่OrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 106 tok/s
- minimaxใหม่MiniMax: M3.1 Flash2026-10-1929ความฉลาด
- Orcaใหม่Orca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 ต่อ 1 ล้านโทเค็น · 70 tok/s
- deepseekใหม่DeepSeek: DeepSeek V4.1 Flash 10172026-10-1733ความฉลาด
- DeepSeekใหม่DeepSeek: DeepSeek V4.1 Flash2026-10-1740ความฉลาด
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 ต่อ 1 ล้านโทเค็น · 95 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955ความฉลาด
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854ความฉลาด
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 ต่อ 1 ล้านโทเค็น · 168 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228ความฉลาด
- OpenAIOpenAI: GPT-6 Sol2026-09-2248ความฉลาด
- AnthropicAnthropic: Claude Opus 5.52026-09-2258ความฉลาด
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127ความฉลาด
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130ความฉลาด
- xAIGrok 4.72026-09-2134ความฉลาด
Zammad ซึ่งเป็นระบบ helpdesk โอเพนซอร์ส ได้เปิดตัวเวอร์ชัน 7.1.2 เมื่อวันที่ 4 สิงหาคม 2026 พร้อมการแก้ไขด้านความปลอดภัย 18 รายการ โดยรายการแรกที่ระบุไว้ปิดช่องโหว่การรันโค้ดจากระยะไกลในฟิลด์การกำหนดค่าของฟีเจอร์ AI Agent ช่องโหว่นี้คือ CVE-2026-84462 ซึ่งเปิดเผยในคำแนะนำความปลอดภัยของ GitHub GHSA-gp3x-9xm8-rcj6 ในวันเดียวกัน และช่วงที่ได้รับผลกระทบคือทุกการติดตั้งแบบโฮสต์เองที่ใช้เวอร์ชันจนถึง 7.1.1 และรวม 7.1.1 ด้วย ผู้ดูแลระบบที่สามารถสร้างหรือแก้ไข AI Agent อาจป้อนข้อความที่สร้างขึ้นมาเป็นพิเศษลงในฟิลด์หนึ่งของ agent หลบเลี่ยงตัวกรองที่มีไว้เพื่อทำให้ข้อความนั้นไม่เป็นอันตราย และรันคำสั่งใดก็ได้บนเซิร์ฟเวอร์ที่โฮสต์ Zammad — โดยมีศักยภาพ ตามถ้อยคำในคำแนะนำ ที่จะ "อ่าน แก้ไข หรือทำลายข้อมูลทั้งหมดที่จัดเก็บไว้บนเซิร์ฟเวอร์นั้น" ไม่จำเป็นต้องมีผู้ใช้อื่นดำเนินการใดๆ: คำแนะนำระบุว่า "โค้ดอันตรายจะทำงานโดยอัตโนมัติเมื่อ AI Agent ที่ได้รับผลกระทบประมวลผลทิกเก็ตในครั้งถัดไป" GitHub จัดให้อยู่ในระดับสูง (High) ที่ 8.6 ตาม CVSS 4.0 บันทึกของเหตุการณ์นี้ แท็กความรุนแรงและอันตรายของเหตุการณ์ และรายการที่บันทึกไว้รอบๆ เหตุการณ์นี้ ถูกเก็บไว้ใน the Orca AI Incident Archive ซึ่งแสดงเหตุการณ์นี้ไว้พร้อมกับส่วนที่เหลือของซีรีส์
สิ่งที่ประกาศนี้กำหนดไว้
ประกาศด้านความปลอดภัยของ GitHub ซึ่งเผยแพร่เมื่อวันที่ 4 สิงหาคม 2026 มีเนื้อหาสั้นและระบุกลไกและเงื่อนไขเบื้องต้นไว้อย่างเฉพาะเจาะจงผิดปกติ โดยอธิบายถึง "ตัวกรองความปลอดภัยที่ปกป้องการกำหนดค่า AI Agent ของ Zammad" ซึ่ง "สามารถถูกข้ามได้โดยการป้อนข้อความที่สร้างขึ้นเป็นพิเศษลงในหนึ่งในฟิลด์ของ AI Agent" และระบุผู้กระทำการอย่างแม่นยำว่า "ผู้ดูแลระบบที่มีสิทธิ์ในการสร้างหรือแก้ไข AI Agent อาจใช้ช่องโหว่นี้เพื่อเรียกใช้คำสั่งใด ๆ บนเซิร์ฟเวอร์ที่โฮสต์ Zammad" ช่วงเวอร์ชันที่ได้รับผลกระทบถูกบันทึกว่าสูงสุดถึงและรวม 7.1.1 ส่วนเวอร์ชันที่แก้ไขแล้วคือ 7.1.2 ผู้รายงานที่ได้รับเครดิตคือ colinthebomb1 บัญชีที่เผยแพร่คือ fliebe92 ประกาศดังกล่าวไม่ได้เผยแพร่ proof of concept หรือรายละเอียดการโจมตีใด ๆ
GitHub ให้คะแนนช่องโหว่นี้ในระดับ High คือ 8.6 ตาม CVSS 4.0 โดยมีเวกเตอร์ AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H และไม่มีการเปลี่ยนแปลงขอบเขต เมื่อตีความออกมาแล้ว หมายความว่าช่องโหว่นี้เข้าถึงได้ผ่านเครือข่ายด้วยความซับซ้อนต่ำ ไม่มีข้อกำหนดในการโจมตี และไม่ต้องมีการโต้ตอบจากผู้ใช้ โดยผู้โจมตีที่เป็นผู้มีสิทธิ์สูงอยู่แล้วภายในแอปพลิเคชัน และส่งผลกระทบสูงต่อความลับ ความสมบูรณ์ และความพร้อมใช้งานของอินสแตนซ์ Zammad เอง ประกาศดังกล่าวระบุจุดอ่อนสามรายการ ได้แก่ CWE-20 การตรวจสอบข้อมูลนำเข้าที่ไม่เหมาะสม; CWE-94 การแทรกโค้ด; และ CWE-1336 ซึ่งเป็นประเภทที่เกี่ยวกับ template engine ที่ MITRE กำหนดว่าเป็นการล้มเหลวในการทำให้ไวยากรณ์พิเศษ "ที่อาจถูกตีความว่าเป็นนิพจน์เทมเพลตหรือคำสั่งโค้ดอื่น ๆ เมื่อถูกประมวลผลโดยเอนจิน" เป็นกลาง
การแก้ไขเปลี่ยนตัวอักษรหนึ่งตัว
การแก้ไขที่เปิดเผยต่อสาธารณะคือคอมมิต e3b0c8df91ad2108c8305be23e8fe6f73fb9718d ซึ่งถูกส่งพร้อมข้อความ “Maintenance: Improve ERB sanitizer.” GitHub บันทึกวันที่ผู้เขียนไว้เป็น 7 กรกฎาคม 2026 และวันที่คอมมิตเป็น 3 สิงหาคม 2026 ซึ่งเป็นหนึ่งวันก่อนประกาศแจ้งเตือนและการเปิดตัว คอมมิตนี้แตะสองไฟล์: หนึ่งบรรทัดของ lib/erb_sanitizer.rb และบรรทัดที่เพิ่มเข้ามาสิบสี่บรรทัดของสเปก
บรรทัดเดียวคือการแก้ไขทั้งหมด วิธี escape_tag เดิมใช้ sub ของ Ruby ซึ่งแทนที่รูปแบบที่ตรงกันรายการแรกในสตริง ตอนนี้ใช้ gsub ซึ่งแทนที่ทุกรายการที่ตรงกัน ในทั้งสองเวอร์ชัน การแทนที่เหมือนกัน: ตัวเปิดที่เขียนเป็น <% จะกลายเป็น <%%, รูปแบบที่ซ้ำกันซึ่ง ERB เอนจินเทมเพลตของ Ruby จะเรนเดอร์เป็นข้อความตามตัวอักษรแทนที่จะประเมินผล ประกาศดังกล่าวไม่ได้ระบุว่าฟิลด์ใดของ AI Agent ที่บรรจุเทมเพลตนั้น คอมมิตระบุตัวกรองที่ควรทำให้เทมเพลตนั้นไม่ทำงาน

ด้วย sub มีเพียงตัวเปิดตัวแรกในสตริงเท่านั้นที่ถูกทำให้เป็นกลาง เพย์โหลดที่วางตัวเปิดตัวที่สองต่อจากตัวแรกทันทีจะรอดผ่านฟิลเตอร์ได้: <%<%= 1 + 1 %> กลายเป็น <%%<%= 1 + 1 %> โดย ERB จะส่งออกตัวเปิดนำหน้าเป็นข้อความ แล้วจึงประเมินแท็กภายใน ข้อกำหนดการทดสอบรีเกรสชันที่เพิ่มในคอมมิตเดียวกันเรียกกลเม็ดนี้อย่างตรงไปตรงมาว่า — “ด้วยตัวเปิดที่ซ้อนอยู่ซึ่งถูกลักลอบไว้ภายในแท็กเดียว (บายพาสแบบ escape-all-openers)” — และยืนยันว่าทั้ง <%<%= 1 + 1 %> และ <%<%<%= 1 + 1 %> ที่ซ้อนกันสองชั้นต้องเรนเดอร์เป็นข้อความตามตัวอักษร ข้อกำหนดนั้นเป็นคำอธิบายสาธารณะที่ชัดเจนที่สุดว่าฟิลเตอร์ถูกหลบเลี่ยงได้อย่างไร เพราะ advisory เองไม่ได้ให้ข้อมูลใด ๆ
ลักษณะของบั๊กนี้เป็นเรื่องทั่วไป ไม่ใช่ความแปลกเฉพาะของ Zammad: ตัวหลีกอักขระ (escaper) ที่หยุดหลังการจับคู่ครั้งแรกจะถูกทำให้ไร้ผลได้ด้วยอินพุตใดก็ตามที่มีสำเนาซ้อนกันของลำดับที่มันตัดออกเป็นชุดที่สอง ข้อความคอมมิตเรียกการเปลี่ยนแปลงนี้ว่า “งานบำรุงรักษา” (maintenance) ซึ่งเป็นวิธีที่แพตช์เสริมความแข็งแกร่งแบบอักขระตัวเดียวมักถูกส่งต่อ — และนั่นคือเหตุผลว่าทำไมคำเตือนจึงต้องอยู่ในประกาศคำแนะนำ (advisory) ไม่ใช่ในดิฟ (diff)
เจ็ดสัปดาห์จากประกาศถึง NVD
NVD เผยแพร่บันทึกของตนสำหรับ {{1}}CVE-2026-84462{{/1}} เมื่อวันที่ 25 กันยายน 2026 ซึ่งเป็นเจ็ดสัปดาห์หลังจากคำแนะนำด้านความปลอดภัย และแก้ไขล่าสุดเมื่อวันที่ 28 กันยายน บันทึกดังกล่าวถูกทำเครื่องหมายว่า "{{2}}Deferred{{/2}}" หมายความว่าหน่วยงานยังไม่ได้เผยแพร่การวิเคราะห์ของตนเอง และบล็อกเมตริกของบันทึกระบุคะแนน {{3}}8.6{{/3}} ให้กับ {{4}}security-advisories@github.com{{/4}} เป็นเมตริกรอง — {{5}}การให้คะแนนของ GitHub ในฐานะหน่วยงานกำหนดหมายเลข CVE{{/5}} ไม่ใช่การประเมินของ NVD ที่เป็นอิสระ บันทึกเดียวกันนี้ไม่มี {{6}}การกำหนดค่า CPE{{/6}} เลย ดังนั้นจึงไม่ได้เชื่อมโยงช่องโหว่กับตัวระบุผลิตภัณฑ์ที่มีเวอร์ชัน
รายละเอียดทั้งสองข้อมีความสำคัญสำหรับทุกคนที่ติดตามซอฟต์แวร์ที่โฮสต์เองผ่านฟีดแทนที่จะผ่านบันทึกการเผยแพร่ การแก้ไขเป็นที่เปิดเผยต่อสาธารณะและสามารถนำไปปฏิบัติได้เมื่อวันที่ 4 สิงหาคม บันทึกที่เครื่องอ่านได้มาถึงเมื่อวันที่ 25 กันยายน และถึงอย่างนั้นก็ยังมาถึงโดยไม่มีตัวระบุผลิตภัณฑ์ซึ่งสแกนเนอร์ที่ใช้ CPE ใช้จับคู่ เป็นเวลาเจ็ดสัปดาห์ที่คำอธิบายช่องโหว่ที่เชื่อถือได้คือประกาศของผู้จำหน่ายและบันทึกการเผยแพร่ของผู้จำหน่าย

สิ่งที่ได้รับการยืนยันแล้ว และสิ่งที่ยังไม่ได้รับการยืนยัน
ยืนยันแล้ว: คำแนะนำด้านความปลอดภัย เวอร์ชันที่ได้รับการแพตช์ คะแนน CVSS และการเปลี่ยนแปลงโค้ด ล้วนมาจาก Zammad และจากฐานข้อมูลคำแนะนำของ GitHub และสอดคล้องตรงกัน บันทึกของ NVD ทำซ้ำคำอธิบายของหน่วยงานผู้กำหนดหมายเลข โดยไม่เพิ่มการวิเคราะห์ของตนเอง คลังข้อมูลให้ระดับความเชื่อมั่นของรายการนี้เป็น A บนพื้นฐานดังกล่าว โดยเหตุการณ์นี้ไม่เป็นที่โต้แย้ง
ยังไม่มีการยืนยัน หรือไม่มีการบันทึก: ไม่มี proof of concept ในคำแนะนำ และไม่มีรายงานการถูกใช้ประโยชน์ในสภาพจริง EPSS ของ FIRST กำหนดให้ CVE-2026-84462 มีความน่าจะเป็นร้อยละ 0.28 ที่จะถูกใช้ประโยชน์ในสามสิบวันข้างหน้า ซึ่งอยู่ในเปอร์เซ็นไทล์ที่ 20 ในคะแนนที่เผยแพร่เมื่อวันที่ 29 ตุลาคม 2026 คลังข้อมูลไม่มีการบันทึกความเสียหายที่เกิดขึ้นจริง และจัดรายการนี้ไว้ที่ระดับความรุนแรงปานกลาง — ต่ำกว่าช่วงระดับ High ของคำแนะนำเอง ทั้งสองเป็นเครื่องมือคนละชิ้นที่ตอบคำถามคนละข้อ คือสิ่งที่ช่องโหว่นี้อาจเปิดทางให้เกิดขึ้น กับสิ่งที่ทราบว่าเกิดขึ้นจริง และบทความนี้รายงานทั้งสองอย่างแทนที่จะปรับให้สอดคล้องกัน
การยืนยันจากแหล่งอิสระมีจำกัด การค้นหาข่าวสารที่รายงานเกี่ยวกับ CVE นี้ให้ผลเป็นฐานข้อมูลช่องโหว่ที่เผยแพร่ข้อความของหน่วยงานผู้ออกหมายเลขซ้ำ กับบันทึกการออกรุ่น (release note) ของ Zammad เอง ไม่ปรากฏว่าสำนักข่าวใดรายงานช่องโหว่นี้อย่างเป็นอิสระ นี่เป็นข้อค้นพบเกี่ยวกับหลักฐานบันทึก มิใช่การวิจารณ์ตัวบันทึก การโจมตีระยะไกลที่รันโค้ดได้ (remote code execution) ในระบบ helpdesk ซึ่งต้องใช้บัญชีผู้ดูแลระบบนั้นไม่ใช่เหตุการณ์ประเภทที่สื่อมวลชนจะหยิบมารายงาน และการที่ไม่มีเรื่องเล่าจากแหล่งอิสระก็เป็นส่วนหนึ่งของสิ่งที่บันทึกไว้นี้เอง
ใครที่สามารถกระตุ้นมันได้ และมีอะไรเปลี่ยนแปลงไปบ้าง
บันทึกการเปิดตัว (release note) ของ Zammad สำหรับเวอร์ชัน 7.1.2 ลงวันที่ 4 สิงหาคม 2026 แสดงรายการช่องโหว่ 18 รายการที่ได้รับการแพตช์ในเวอร์ชันนั้น และจัดให้ช่องโหว่การข้ามเทมเพลตของ AI Agent อยู่ในอันดับแรก สำหรับลูกค้าที่ใช้บริการแบบโฮสต์ted ระบุว่า "ไม่จำเป็นต้องดำเนินการใด ๆ อินสแตนซ์ของคุณได้รับการแพตช์และรักษาความปลอดภัยโดยทีมงานของเราแล้ว" ส่วนการติดตั้งแบบ self-hosted นั้นถ้อยคำตรงไปตรงมามากกว่า: "เราขอแนะนำอย่างยิ่งให้อัปเกรดเป็น Zammad เวอร์ชันล่าสุดทันที เพื่อให้มั่นใจว่าระบบของคุณได้รับการปกป้อง" คำแนะนำดังกล่าวไม่มีวิธีเลี่ยง (workaround) และบันทึกดังกล่าวไม่ได้ระบุมาตรการบรรเทาใด ๆ นอกเหนือจากการอัปเกรด

{{1}}ข้อกำหนดเรื่องสิทธิ์{{/1}}สมควรได้รับการพิจารณาอย่างใกล้ชิดยิ่งกว่าที่ {{2}}เวกเตอร์{{/2}} ให้ไว้ PR:H หมายความว่าผู้โจมตีจำเป็นต้องมีสิทธิ์เข้าถึงในระดับที่มีนัยสำคัญก่อนที่ช่องโหว่จะนำไปใช้ประโยชน์ได้ และในกรณีนี้ การเข้าถึงนั้นคือสิทธิ์ admin.ai_agent ซึ่งเอกสารของ Zammad ระบุว่าจำเป็นต่อการทำงานกับ AI Agents เลยทีเดียว ในระบบ helpdesk บุคคลดังกล่าวมักเป็นหัวหน้าทีมบริการที่ปรับแต่งตัวจัดหมวดหมู่ ตัวติดแท็ก และตัวสกัดข้อความ — ไม่จำเป็นต้องเป็นผู้ดูแลเซิร์ฟเวอร์ก็ได้ ถ้อยคำในประกาศคำแนะนำเองที่ว่า "ผู้ดูแลระบบที่มีสิทธิ์ในการสร้างหรือแก้ไข AI Agents" นั้นแคบกว่า "ใครก็ได้" และกว้างกว่า "root" หากไม่สามารถอัปเกรดได้ในทันที การจำกัดว่าใครบ้างที่ถือสิทธิ์นั้นจะช่วยลดกลุ่มคนที่สามารถเข้าถึงเส้นทางการเรียกใช้โค้ดได้ นั่นเป็นการอนุมานจากเวกเตอร์และเอกสารประกอบ ไม่ใช่แนวทางแก้ไขที่ผู้จำหน่ายเผยแพร่
ไม่มีเอกสารหลักฉบับใดวางโมเดลภาษาไว้ในเส้นทางการโจมตี คำสั่งทำงานภายในโปรเซส Ruby ของ Zammad เมื่อการกำหนดค่าของเอเจนต์ถูกเรนเดอร์ ไม่มีสิ่งใดในเอกสารแจ้งเตือนช่องโหว่ คอมมิต หรือบันทึกประจำรุ่นที่อธิบายว่าโมเดลเป็นผู้สร้างเพย์โหลด ฟีเจอร์ AI Agent มีฟิลด์ที่ผู้ดูแลระบบเขียนได้และผ่านการประมวลผลด้วยเทมเพลต และ AI เป็นพื้นผิวการโจมตีมากกว่าจะเป็นกลไก นั่นคือรูปแบบที่บันทึกชี้ให้เห็น: คำนิยามของเอเจนต์ — คำสั่ง เทมเพลต และตัวกรอง — คือการกำหนดค่าที่สั่งให้ทำงานได้ ซึ่งแก้ไขโดยผู้ที่งานคือสายสนับสนุน ไม่ใช่การตรวจสอบความปลอดภัย
วิธีแก้ของ Zammad นั้นพอเหมาะและจืดชืด: เปลี่ยนเมธอดหนึ่งจุด เพิ่มการทดสอบรีเกรสชันสองรายการ และอัปเวอร์ชันซึ่งปิดช่องโหว่อีกสิบเจ็ดช่องไปพร้อมกับช่องนี้ ส่วนที่ควรนำไปต่อยอดคือแบบจำลองการเปิดเผย การที่เฮลป์เดสก์อนุญาตให้หัวหน้าทีมสนับสนุนกำหนดเอเจนต์ ยังหมายความว่าอนุญาตให้หัวหน้าคนนั้นเขียนบางสิ่งซึ่งเซิร์ฟเวอร์จะรัน และสิ่งเดียวที่คั่นกลางระหว่างสองอย่างนั้นคือฟิลเตอร์ที่ต้องจัดการอย่างถูกต้องกับสำเนาที่ซ้อนกันทุกชุดของไวยากรณ์ที่มันตัดออก
