O2 UKのVoLTEおよびWiFi Calling技術の実装に欠陥があり、ターゲットに電話をかけることで、誰でもその人の大まかな位置やその他の識別情報を公開できる可能性がある。
この問題はセキュリティ研究者のダニエル・ウィリアムズによって発見された。この欠陥は2023年2月からO2 UKのネットワーク上に存在していた可能性が高く、昨日解決された。
O2 UKはヴァージン・メディアO2が所有する英国の通信サービス・プロバイダー。2025年3月現在、同社は英国全土で約2,300万人のモバイル顧客と580万人のブロードバンドクライアントを抱えていると報告しており、同国の主要プロバイダーの1つとして位置づけられている。
2017年3月、同社は通話時の音質と回線の信頼性を向上させるため、「4G Calling」のブランド名でIPマルチメディア・サブシステム(IMS)サービスを開始した。
しかし、ウィリアムズがこのような通話中のトラフィックを分析しているときに発見したように、通信当事者間で交換されるシグナリング・メッセージ(SIPヘッダー)は、IMSI、IMEI、セルの位置情報など、あまりにも冗長で、明らかになりすぎている。
「私がネットワークから受け取った応答は非常に詳細で長く、他のネットワークで見たことのないものでした」とウィリアムズは説明する。
「メッセージには、O2が使用しているIMS/SIPサーバー(Mavenir UAG)のバージョン番号や、コール情報を処理するC++サービスによって時折発生するエラーメッセージ、その他のデバッグ情報などの情報が含まれていました」。

出典:mastdatabase.co.uk
通話によるユーザーの特定
ルート化されたGoogle Pixel 8のNetwork Signal Guru(NSG)アプリを使用して、ウィリアムズは通話中に交換された生のIMSシグナリングメッセージを傍受し、セルIDをデコードして、通話受信者が最後に接続したセルタワーを突き止めた。
そして、セルタワーの地図を提供する公開ツールを使って、タワーの地理座標を割り出した。

出典:mastdatabase.co.uk
電波塔が密集している都市部では、その精度は100m2(1076ft2)に達するだろう。農村部では、ジオロケーティングの精度は落ちるが、それでもターゲットを明らかにすることはできる。
ウィリアムズは、このトリックが、ターゲットが海外にいるときにも有効であることを発見し、デンマークのコペンハーゲンにいる被験者の位置を特定した。

出典:mastdatabase.co.uk
O2 UKが修正を確認
ウィリアムズによれば、彼は2025年3月26日と27日に何度もO2 UKに連絡して調査結果を報告したが、回答は得られなかったという。
最終的に、彼は今日O2 UKから問題が修正されたことを直接確認し、テストを通じてこれを確認した。
ヴァージン・メディアの広報担当者は声明の中で、修正が実施されたことを確認し、顧客は自分自身を守るために何か行動を起こす必要はないと述べた。
「私たちのエンジニアリングチームは、何週間にもわたって修正に取り組み、テストを行ってきました – 私たちは、これが現在完全に実装されていることを確認することができ、テストでは、修正が機能したことを示唆しており、当社の顧客は、任意のアクションを取る必要はありません “とヴァージンメディアO2は語った。
O2に、この欠陥が悪用されることが知られているかどうか、またそれに応じて顧客に通知する予定があるかどうかを尋ねたが、回答は得られなかった。
5/20更新– 暴露期間に関する記述を修正し、記事を更新しました。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px; width: 100%; } .ia_button { width: 100%; } .
Comments