อ่าน แล้วประเมิน ก่อนเชื่อ
ค้นหา ที่คั่นไว้
security

Signal แก้บั๊กที่อาจให้คู่สนทนายังได้ยินเสียงคุณหลังกดวางสาย ควรอัปเดตทุกเครื่อง

บั๊กในระบบโทรของ Signal อาจทำให้คำสั่งวางสายไม่ปิดสายจริง เสียงยังส่งถึงคู่สนทนา แก้แล้วใน Android 8.27.0, iOS 8.30.0 และ Desktop 8.29.0

การ์ด: Signal
สารบัญ (9 หัวข้อ)
  1. สรุปประเด็นสำคัญ
  2. บั๊กนี้ทำงานอย่างไร
  3. Signal แก้อย่างไร
  4. เครื่องฉันได้ตัวแก้หรือยัง
  5. วิธีเช็กเวอร์ชันและอัปเดต
  6. ระหว่างนี้ควรระวังอะไรเพิ่ม
  7. ไทม์ไลน์
  8. แหล่งข่าวต่างกันตรงไหน
  9. บทวิเคราะห์จาก ReadEval

ลองนึกภาพว่าคุณกดวางสาย Signal แล้วหันไปคุยเรื่องส่วนตัวกับคนข้าง ๆ โดยไม่รู้ว่าไมโครโฟนยังส่งเสียงไปหาคู่สนทนาเมื่อครู่ นี่คือสิ่งที่บั๊กในส่วนโทรของ Signal เปิดช่องให้เกิดได้ ข่าวดีคือ Signal แก้ไปแล้วตั้งแต่เดือนกันยายน และยังไม่มีรายงานว่ามีใครใช้โจมตีจริง

ทุกการโทรใน Signal มี "คิวคำสั่ง" ที่จัดการเหตุการณ์ของสายทีละรายการ ทั้งสัญญาณที่เครื่องอีกฝั่งส่งมาและคำสั่งจากเครื่องคุณ รวมถึงคำสั่งวางสาย ปัญหาคือคิวนี้ไม่จำกัดว่าอีกฝั่งส่งเหตุการณ์เข้ามาได้มากแค่ไหน และไม่มีช่องทางลัดให้คำสั่งวางสาย คู่สนทนาที่ตั้งใจร้ายจึงอาจถมคิวจนเต็ม คำสั่งวางสายของคุณอาจไปไม่ถึง สายจึงไม่ถูกปิดจริง เสียงและอาจรวมถึงภาพยังถูกส่งออกไป ขณะที่คุณเข้าใจว่าสายจบแล้ว

เหมือนธนาคารที่เรียกบัตรคิวทีละใบ ถ้ามีคนกดบัตรรัว ๆ จนเครื่องออกบัตรเต็ม คำขอ "ปิดบัญชี" ของคุณก็ไม่ได้เข้าคิว ต่างกันตรงที่ในธนาคารคุณยังเห็นว่าเรื่องค้างอยู่ แต่ในบั๊กนี้คุณอาจไม่รู้ตัว และคนที่ทำได้ต้องเป็นคนที่อยู่ในสายเดียวกับคุณเท่านั้น ไม่ใช่คนแปลกหน้าที่ไหนก็ได้ อีกข้อที่ควรรู้คือบั๊กนี้อยู่ที่ขั้นตอนวางสาย ไม่ได้ทำให้การเข้ารหัสของ Signal อ่อนลง

บันทึกช่องโหว่สากลให้คะแนนความร้ายแรง 9.3 จาก 10 ซึ่งอยู่ในระดับวิกฤต เพราะทำผ่านเครือข่ายได้และไม่ซับซ้อน แต่ควรรู้ข้อจำกัดด้วย นักวิจัยที่เผยแพร่เรื่องนี้ใช้เพียงโปรแกรมจำลองแนวคิด ไม่ได้สาธิตกับการโทรจริง Signal ไม่ได้ออกประกาศ และยังไม่ตอบคำถามของสื่อ ส่วนหน่วยงานความมั่นคงไซเบอร์ของสหรัฐฯ (CISA) ประเมินว่ายังไม่พบการโจมตี

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

ลงลึกสรุปประเด็น รายละเอียด วิธีเช็ก และบทวิเคราะห์

สรุปประเด็นสำคัญ

  • บั๊กอยู่ที่ไหน: RingRTC ไลบรารีโอเพนซอร์สที่ Signal ใช้ทำระบบโทรเสียงและวิดีโอ ทุกรุ่นก่อน 2.72.0 ช่องโหว่นี้คือ CVE-2026-113380 คะแนน CVSS 4.0 เท่ากับ 9.3 (วิกฤต)
  • ผลที่อาจเกิด: คู่สนทนาที่ตั้งใจร้ายทำให้คำสั่งวางสายของคุณไม่ปิดสายจริง เสียง และ "อาจรวมถึง" ภาพ ยังถูกส่งต่อ บันทึก CVE ไม่ได้ยืนยันเรื่องภาพ และไม่มีแหล่งใดบอกว่าเสียงหลุดไปได้นานเท่าไร
  • แก้แล้ว: Signal แก้โค้ดเมื่อ 4 ก.ย. 2026 และออก RingRTC 2.72.0 วันเดียวกัน แอปที่มีตัวแก้คือ Android 8.27.0, iOS 8.30.0 และ Desktop 8.29.0 ขึ้นไป (ReadEval ตรวจจากโค้ดของ Signal บน GitHub)
  • ยังไม่พบการโจมตีจริง: CISA ประเมินในบันทึก CVE ว่า Exploitation: none และ The Register กับ Help Net Security ระบุว่าช่องโหว่นี้ไม่อยู่ในรายการช่องโหว่ที่ถูกใช้โจมตีจริง (KEV)

บั๊กนี้ทำงานอย่างไร

แผนภาพก่อนและหลังแก้บั๊ก: ก่อนแก้ คำสั่งวางสายต้องต่อคิวเดียวกับเหตุการณ์จากอีกฝั่งจนอาจไปไม่ถึงเมื่อคิวเต็ม หลังแก้ ระบบควบคุมสายเห็นธงขอวางสายโดยไม่ต้องรอคิว และรอปิดสายไม่เกิน 5 วินาที

ระบบโทรของ Signal ใช้ "ระบบควบคุมสาย" (state machine) ที่รับเหตุการณ์ผ่านคิวขนาด 256 รายการ แล้วจัดการทีละรายการตามลำดับ บันทึก CVE อธิบายสั้น ๆ ว่า "คู่สนทนาที่ทำให้คิวของสายอิ่มตัว สามารถขัดขวางไม่ให้การวางสายฝั่งเครื่องคุณรื้อสายลง (พร้อมเสียงและอาจรวมถึงภาพ) ได้"

บันทึกของนักวิจัยที่ใช้ชื่อบน GitHub ว่า Imahian อธิบายต้นเหตุว่า RingRTC "ไม่จำกัดอัตราเหตุการณ์ที่มาจากคู่สนทนา และไม่มีช่องทางพิเศษให้คำสั่งวางสาย" CyberInsider ซึ่งอ่านโค้ดที่แก้แล้วเสริมว่าโค้ดปิดสายแบบเดิมอาจหยุดกลางทางเมื่อเจอข้อผิดพลาด ทำให้ขั้นตอนเก็บกวาดที่เหลือถูกข้ามไป

ReadEval ตั้งใจไม่ลงรายละเอียดวิธีทำให้คิวเต็ม เพราะไม่จำเป็นต่อการป้องกันตัว สิ่งที่ผู้ใช้ควรรู้คือผู้โจมตีต้องอยู่ในสายเดียวกับคุณ บันทึกของนักวิจัยเริ่มจากการโทรหาเหยื่อตามปกติ และบันทึก CVE ระบุว่าต้องอาศัยการมีส่วนร่วมของเหยื่อในระดับจำกัด (passive) ทั้งสองแหล่งไม่ได้บอกว่าบั๊กนี้เกิดกับการโทรแบบกลุ่มด้วยหรือไม่

Signal แก้อย่างไร

ตัวแก้คือ commit ชื่อ "Ensure calls terminate completely in corner cases" (ทำให้สายปิดสมบูรณ์แม้ในกรณีขอบ) ของ Jim Gustafson วิศวกรของ Signal ลงวันที่ 4 ก.ย. 2026 และอยู่ใน CHANGELOG ของ RingRTC 2.72.0 จากโค้ดที่แก้ ReadEval และ CyberInsider พบตรงกันว่ามีสามส่วน

  1. ธงขอวางสาย: เมื่อคุณกดวางสาย ระบบตั้งค่าสถานะ "ขอปิดสาย" ไว้แยกจากคิว ระบบควบคุมสายจึงเห็นคำขอนี้ได้เองโดยไม่ต้องรอเหตุการณ์ที่ค้างในคิว
  2. จำกัดเวลารอ: การรอให้ระบบควบคุมสายปิดตัวมีเพดาน 5 วินาที ถ้าเกินหรือเกิดข้อผิดพลาด ระบบบันทึกไว้แล้วเก็บกวาดต่อ ไม่หยุดกลางทาง
  3. ชุดทดสอบใหม่: CyberInsider ระบุว่ามีการทดสอบที่จำลองคิวเต็ม แล้วตรวจว่าการวางสายปิดการเชื่อมต่อ ปิดเสียงขาออก และตัดช่องส่งข้อมูลเสียง (RTP) จริง

เครื่องฉันได้ตัวแก้หรือยัง

Signal ไม่ได้ออกประกาศหรือระบุในบันทึกการอัปเดตว่ารุ่นไหนแก้บั๊กนี้ บันทึกของ Signal Desktop 8.29.0 เขียนเพียงว่า "ปรับแต่งเล็กน้อย แก้บั๊ก และเพิ่มประสิทธิภาพ" ReadEval จึงเปิดโค้ดของแอปทั้งสามบน GitHub แล้วดูว่า RingRTC รุ่นไหนถูกใส่ไว้ในแต่ละรุ่นของแอป ผลคือ

แอปรุ่นแรกที่มี RingRTC 2.72.0วันที่ติดแท็กรุ่นบน GitHubรุ่นก่อนหน้า (ยังมีบั๊ก)รุ่นล่าสุดที่พบ ณ 22 ต.ค. 2026
Signal Android8.27.09 ก.ย. 20268.26.x ใช้ RingRTC 2.71.08.33.1 (RingRTC 2.73.0)
Signal iOS (iPhone, iPad)8.30.022 ก.ย. 2026 (เบต้า 16 ก.ย.)8.29.0 ใช้ RingRTC 2.71.08.34.0 (RingRTC 2.72.1)
Signal Desktop (Windows, Mac, Linux)8.29.01 ต.ค. 2026 (เบต้า 23 ก.ย.)8.28.0 ใช้ RingRTC 2.71.08.32.0 (RingRTC 2.72.1)

ที่มา: ไฟล์กำหนดไลบรารีของแต่ละรุ่นใน repo Signal-Android (gradle/libs.versions.toml), Signal-iOS (Podfile.lock) และ Signal-Desktop (package.json) บน GitHub

ข้อควรรู้: วันที่ในตารางคือวันที่ Signal ติดแท็กรุ่นในโค้ด ไม่ใช่วันที่ร้านแอปปล่อยให้ทุกคนแน่นอน ร้านแอปมักทยอยปล่อยอัปเดต ตารางนี้เป็นการตรวจของ ReadEval ไม่ใช่คำยืนยันจาก Signal และ ReadEval ไม่พบข้อมูลแยกรายประเทศ แต่แอปบน Google Play และ App Store เป็นรุ่นเดียวกันทั่วโลก ถ้าเลขรุ่นของคุณเท่ากับหรือสูงกว่าตัวเลขในคอลัมน์ที่สอง แปลว่ามีตัวแก้แล้ว

วิธีเช็กเวอร์ชันและอัปเดต

ขั้นตอนตามหน้าช่วยเหลือของ Signal "How do I ensure Signal is up to date?"

Android และ iPhone/iPad

  1. เปิด Signal แล้วไปที่ Signal Settings > Help > Version เพื่อดูเลขรุ่น (Android ต้อง 8.27.0 ขึ้นไป iOS ต้อง 8.30.0 ขึ้นไป)
  2. ถ้ายังต่ำกว่า ให้เปิดหน้า Signal ใน Google Play หรือ App Store แล้วกด อัปเดต (Update) หรือเปิด signal.org/install บนมือถือเพื่อไปหน้าร้านแอป
  3. ถ้าอยากให้อัปเดตเองในอนาคต ให้เปิดการอัปเดตแอปอัตโนมัติตามหน้าช่วยเหลือของ Google หรือ Apple ที่ Signal ลิงก์ไว้

คอมพิวเตอร์ (Signal Desktop)

  1. ดูเลขรุ่น: บน Windows และ Linux ไปที่ Help > About บน Mac ไปที่เมนู Signal Desktop > About Signal Desktop (ต้อง 8.29.0 ขึ้นไป)
  2. บน Windows และ Mac แอปตรวจอัปเดตเองเป็นระยะและตอนเปิดแอป ถ้ามีอัปเดตจะมีแถบสีน้ำเงินเหนือรายการแชต ให้กด "Click to restart Signal" หรือ "Click to download update" หรือไปที่ Signal Settings > Update Signal ถ้าไม่เห็นแถบ ให้ปิดแอปแล้วเปิดใหม่
  3. บน Debian และ Ubuntu แอปอัปเดตผ่าน APT ใช้แอป Software Updater หรือพิมพ์คำสั่งนี้ใน Terminal แล้วเปิด Signal ใหม่
shell
sudo apt update && sudo apt install signal-desktop

อย่าลืมเครื่องที่เปิดไม่บ่อย เช่น iPad หรือคอมพิวเตอร์อีกเครื่องที่ลิงก์บัญชีไว้ เพราะ Signal บนเครื่องเหล่านี้ใช้โทรได้เช่นกัน และบั๊กนี้อยู่ในทุกแพลตฟอร์ม

ระหว่างนี้ควรระวังอะไรเพิ่ม

  • หลังวางสาย ดูให้แน่ใจว่าหน้าจอการโทรหายไปแล้ว นักวิจัยแนะนำให้ตรวจว่าตัวบอกสถานะการโทรหายไปจริงหลังกดวางสาย
  • กับสายจากคนที่คุณไม่ไว้ใจ อย่าเพิ่งพูดเรื่องสำคัญทันทีหลังวางสาย ข้อนี้เป็นคำแนะนำของ ReadEval สำหรับเครื่องที่ยังอัปเดตไม่ได้ ไม่ใช่คำแนะนำจาก Signal
  • ไม่ต้องเปลี่ยนรหัสผ่านหรือ PIN Malwarebytes ระบุว่าบั๊กนี้ไม่เกี่ยวกับรหัสผ่านที่ถูกขโมยหรือบัญชีที่ถูกเจาะ

ไทม์ไลน์

วันที่เหตุการณ์
4 ก.ย. 2026Signal ลงโค้ดแก้ และติดแท็ก RingRTC 2.72.0
8–9 ก.ย. 2026Signal Android อัปเดตเป็น RingRTC 2.72.0 แล้วออกรุ่น 8.27.0
9–22 ก.ย. 2026Signal iOS อัปเดตเป็น RingRTC 2.72.0 เบต้า 8.30.0 ออก 16 ก.ย. และรุ่นจริง 22 ก.ย.
23 ก.ย.–1 ต.ค. 2026Signal Desktop อัปเดตเป็น RingRTC 2.72.0 เบต้า 8.29.0 ออก 23 ก.ย. และรุ่นจริง 1 ต.ค.
20 ต.ค. 2026MITRE เผยแพร่ CVE-2026-113380 พร้อมลิงก์ไปยังบันทึกของนักวิจัย CISA ประเมินว่ายังไม่พบการโจมตี
20–22 ต.ค. 2026CyberInsider, The Register, Malwarebytes และ Help Net Security รายงานข่าว Signal ยังไม่ตอบคำถามของสื่อ

ยังไม่ชัดว่านักวิจัยแจ้ง Signal ก่อนหรือไม่ บันทึกของนักวิจัยไม่มีลำดับเวลาการแจ้ง และ Signal ไม่ได้ให้เครดิตใครใน commit หรือ CHANGELOG

แหล่งข่าวต่างกันตรงไหน

  • รุ่นแอปที่แก้แล้ว: The Register, Help Net Security, CyberInsider และ Malwarebytes ไม่มีใครระบุได้ Malwarebytes เห็น Android 8.32.2 และ iPad 8.32 (1910) และ "เชื่อว่า" แก้แล้วแต่ยืนยันไม่ได้ ตัวเลขทั้งสองสูงกว่ารุ่นขั้นต่ำที่ ReadEval ตรวจพบ จึงสอดคล้องกัน
  • "ออกในเดือนกันยายน": The Register อ่านจากประวัติของ Signal Desktop ว่า RingRTC 2.72.0 ออกเดือนกันยายน ซึ่งถูกสำหรับตัวไลบรารี (4 ก.ย.) แต่ Desktop รุ่นปกติที่มีตัวแก้ออกจริงวันที่ 1 ต.ค. ส่วนที่ออกในเดือนกันยายนเป็นรุ่นเบต้า
  • ถูกใช้โจมตีหรือยัง: The Register, Help Net Security และ Malwarebytes บอกว่าไม่มีรายงาน CyberInsider ไม่ได้พูดถึง ReadEval ใช้การประเมินของ CISA ในบันทึก CVE (Exploitation: none) เป็นหลัก
  • ภาพหลุดด้วยไหม: ทุกแหล่งใช้คำว่า "อาจ" ตามบันทึก CVE ยังไม่มีใครยืนยันว่าภาพวิดีโอค้างได้จริง
  • ความหนักแน่นของหลักฐาน: คะแนน 9.3 มาจากบันทึก CVE ที่ MITRE เผยแพร่ ไม่ใช่จาก Signal และฐานข้อมูล NVD ยังอยู่ระหว่างวิเคราะห์ ส่วนโค้ดสาธิตของนักวิจัยเป็นแบบจำลองที่ไม่ได้ทดสอบกับการโทรจริง อย่างไรก็ตาม การที่ Signal เขียนโค้ดแก้และชุดทดสอบสำหรับกรณีคิวเต็มโดยตรง แสดงว่าปัญหาในโค้ดมีอยู่จริง

บทวิเคราะห์จาก ReadEval

Val · โต๊ะความปลอดภัย

บั๊กนี้น่ากังวลในหลักการ แต่ความเสี่ยงจริงของผู้ใช้ส่วนใหญ่ต่ำ และแก้ได้ด้วยการอัปเดตแอปเท่านั้น จุดที่ทำให้เรื่องนี้ฟังดูน่ากลัวคือมันโจมตีความเชื่อพื้นฐานที่สุดของการโทร ว่ากดวางแล้วต้องจบ แต่ผู้โจมตีต้องเป็นคนที่คุณยอมคุยด้วยอยู่แล้ว ยังไม่มีใครแสดงให้เห็นว่าทำได้กับการโทรจริง และ Signal แก้ไปก่อนข่าวออกราวหกสัปดาห์ สิ่งที่ควรติดใจมากกว่าคือการสื่อสาร Signal แก้ปัญหาที่บันทึก CVE ให้คะแนนวิกฤต โดยไม่บอกผู้ใช้ในบันทึกการอัปเดต และไม่ตอบสื่อหลายแห่ง ผู้ใช้จึงต้องพึ่งการเปิดโค้ดเพื่อรู้ว่าตัวเองปลอดภัยหรือยัง สำหรับแอปที่ขายจุดเด่นเรื่องความเป็นส่วนตัว การบอกผู้ใช้ตรง ๆ ว่ารุ่นไหนปลอดภัย น่าจะช่วยได้มากกว่านี้

แหล่งที่มา

  1. CVE.org: CVE-2026-113380 (บันทึก CVE, คะแนน CVSS 4.0 และการประเมิน SSVC ของ CISA)
  2. GitHub signalapp/ringrtc: commit "Ensure calls terminate completely in corner cases" (4 ก.ย. 2026)
  3. GitHub signalapp/ringrtc: CHANGELOG (v2.72.0)
  4. GitHub signalapp/ringrtc: เปรียบเทียบ v2.71.0 กับ v2.72.0
  5. GitHub Signal-Android: รุ่น RingRTC ที่ใช้ใน v8.27.0 (และแท็กรุ่นอื่น)
  6. GitHub Signal-iOS: รุ่น RingRTC ที่ใช้ใน 8.30.0 (และแท็กรุ่นอื่น)
  7. GitHub Signal-Desktop: รุ่น RingRTC ที่ใช้ใน v8.29.0 (และแท็กรุ่นอื่น)
  8. GitHub Signal-Desktop: บันทึกรุ่น v8.29.0
  9. Imahian: บันทึกของนักวิจัยเรื่อง CVE-2026-113380
  10. Signal Support: How do I ensure Signal is up to date?
  11. The Register: Signal bug could keep your mic and camera on after hangup
  12. Help Net Security: Signal RingRTC vulnerability (CVE-2026-113380)
  13. CyberInsider: Signal fixes critical flaw that could keep audio active after hangup
  14. Malwarebytes: Signal bug could let someone keep listening after you hang up