את השיחות של Signal מנהלת ספרייה בשם RingRTC, ובגרסאות שלפני 2.72.0 יש בה חולשה שנוגעת לרגע שבו אתם מנתקים. לפי הרשומה, מי שנמצא איתכם בשיחה יכול להציף את תור האירועים שלה ובכך לשבש את היכולת של הניתוק המקומי לסגור את השיחה, כולל ערוץ הקול שלה ואפשר שגם ערוץ הווידאו. הציון הוא 9.3 מתוך 10 בסולם CVSS 4.0.
מה החולשה?
שיחה אינה דבר אחד אלא רצף של מצבים: מתקשרים, מצלצל, מחובר, מנותק. את המעבר בין המצבים מנהל רכיב שמקבל אירועים אחד אחרי השני מתוך תור ומטפל בכל אחד בתורו, והרכיב הזה נקרא מכונת מצבים, FSM. גם הלחיצה שלכם על ניתוק היא אירוע כזה, שנכנס לאותו תור ומחכה שם לתורו.
כאן נכנסת לתמונה הבעיה. הצד השני בשיחה שולח גם הוא אירועים, ולפי הרשומה הוא יכול לשלוח מהם כל כך הרבה עד שהתור מתמלא. כשזה קורה, הבקשה שלכם לסגור את השיחה אינה מטופלת כפי שהיא אמורה. הסיווג הרשמי של הכשל הוא CWE-754, כשל בבדיקה של מצב חריג, וזה בדיוק מה שקרה כאן: תור מוצף הוא מצב חריג, והקוד לא התייחס אליו.
ההבדל בין זה לבין באג שמפיל שיחה הוא ההבדל בין תקלה לבין בעיית פרטיות. כשניתוק נכשל, הצד השני לא מאבד את השיחה, אלא נשאר בה. הרשומה אומרת שמה שאינו נסגר הוא השיחה עם ערוץ הקול שלה, ואפשר שגם עם ערוץ הווידאו. ראוי לשים לב שהניסוח הזה הוא של הרשומה עצמה, והיא מסייגת את הווידאו ולא קובעת לגביו.
הדירוג הולם את זה. הוא מסמן פגיעה גבוהה בסודיות, ובניגוד לרוב החולשות הוא מסמן גם קיום של היבט בטיחות, המטריקה שבסולם CVSS 4.0 מיועדת למקרים שבהם התוצאה אינה נמדדת רק בנתונים. מיקרופון שנשאר פתוח כשמי שמחזיק בו משוכנע שסגר אותו הוא בדיוק מקרה כזה.
מי מושפע?
הרשומה מגדירה את הטווח כספריית RingRTC בגרסאות שלפני 2.72.0, בשימוש של Signal. כלומר כל מי שמשתמש באפליקציה עם גרסה של הספרייה הזאת שקדמה לתיקון, בכל פלטפורמה.
ושווה להיות ישרים לגבי מה שהרשומה אינה נותנת: היא נוקבת בגרסה של הספרייה, לא בגרסה של האפליקציה. משתמש שפותח את Signal בטלפון רואה את מספר הגרסה של האפליקציה, ואין בדף הזה נתון שמתרגם בין השניים. לכן השאלה המעשית אינה איזו גרסת RingRTC רצה אצלכם אלא אם האפליקציה מעודכנת.
בישראל Signal נפוץ, ובמיוחד אצל מי שבחר בה דווקא בגלל הפרטיות: עיתונאים, אנשי מקצוע שמנהלים שיחות רגישות, ואנשים שהעבירו לשם את השיחות שהם לא רוצים שיישמרו אצל אף אחד. זה הקהל שהחולשה הזאת נוגעת לו יותר מכל, כי כל ההיגיון שבבחירה באפליקציה הזאת הוא שליטה במי שומע מה.
האם מנוצלת בפועל?
עד כה לא דווח על ניצול בפועל, נכון לעדכון האחרון של הרשומה ב-20 באוקטובר 2026. היא אינה מופיעה בקטלוג ה-KEV של CISA, סוכנות הסייבר האמריקאית, הרשימה שמסמנת חולשות שנראו בשימוש אמיתי.
שווה להבין גם מה הניצול דורש. הרשומה מתארת את התוקף כצד בשיחה, לא כמישהו שיושב ברשת ומקשיב. כלומר זה אינו תרחיש שבו אדם זר מפעיל את המיקרופון שלכם מרחוק, אלא תרחיש שבו מי שאתם דיברתם איתו בוחר לא לתת לשיחה להיסגר. הידיעה הזאת מצמצמת את מי שיכול לעשות את זה, והיא גם מה שהופכת את התרחיש למטריד.
את התיקון עצמו אפשר לראות בהשוואה בין גרסה 2.71.0 ל-2.72.0 במאגר הקוד של RingRTC.
מה עושים?
1. עדכנו את Signal. מכיוון שהרשומה נוקבת בגרסת ספרייה ולא בגרסת אפליקציה, הדרך המעשית היא לוודא שהאפליקציה עצמה מעודכנת לגרסה הזמינה האחרונה: ב-Google Play או ב-App Store דרך מסך העדכונים, ובגרסת המחשב דרך בדיקת העדכונים בתפריט האפליקציה.
2. הפעילו עדכון אוטומטי לאפליקציה אם הוא כבוי. חולשה שהתיקון שלה נמצא בספרייה פנימית היא בדיוק המקרה שבו אין לכם דרך לדעת לבד שצריך לעדכן, והעדכון האוטומטי הוא מה שסוגר את הפער בלי שתצטרכו לעקוב.
3. אחרי שיחה שהתנהגה מוזר, אל תסתמכו על מסך הניתוק לבד. גם ב-Android וגם ב-iOS מופיע בחלק העליון של המסך סימן שמראה שהמיקרופון או המצלמה פעילים. אם הסימן הזה דולק אחרי שניתקתם, סגרו את האפליקציה לגמרי.
4. אם אתם מנהלים שיחה רגישה עם מי שאינכם סומכים עליו, זכרו שלפי הרשומה הצד השני בשיחה הוא מי שיכול לעשות את זה. בשיחות כאלה שווה לוודא בסופן שהשיחה אכן נסגרה, ולא רק שהמסך חזר לרשימת הצ'אטים.