🇰🇷 한글 설명
Meshtastic 오픈 소스 메쉬 네트워킹 솔루션에서 특정 버전 미만 사용 시, 잘못된 문자 인코딩이 포함된 사용자 이름이 포함된 노드가 존재하면 iOS 앱을 통한 BLE 관리가 불가능해지는 취약점이 발견되었습니다. 이 문제는 악의적인 공격뿐만 아니라 일반적인 버퍼 절단 과정에서도 발생할 수 있으며, 잘못된 이름이 메쉬 네트워크를 통해 전파되어 광범위한 지역의 iOS 사용자의 기기 제어를 방해할 수 있습니다.
💡 쉬운 설명
잘못된 글자가 포함된 이름이 네트워크에 퍼지면 아이폰 앱으로 기기를 조절할 수 없게 됩니다. 이 문제는 실수로 발생할 수도 있으며, 기기를 다시 사용하려면 업데이트를 하거나 복잡한 명령어를 사용해야 합니다.
🇺🇸 원문 (English)
Meshtastic is an open source mesh networking solution. Prior to version 2.7.23.b246bcd, a single node advertising a User.long_name that contains a malformed character encoding can render other radios unusable over BLE when managed through the iOS app. The malformed name does not need to be maliciously crafted — it can arise from ordinary buffer truncation and has been observed occurring naturally in the wild. At least one code path could place a null terminator in the middle of a multibyte sequence, leaving a malformed User.long_name in the node database. The problem surfaced downstream: the iOS app enforced encoding validation and therefore cannot parse a node database once it contains a poisoned entry. This caused BLE sync to enter a fail/retry loop, resulting in loss of control over the affected device. For a typical user managing their radio with the iOS app, the device becomes effectively unusable until the poisoned node ages out of the on-device database, or unless they have an alternate management path (e.g., the Python CLI, which can be used to identify and remove the offending entries manually). Because the malformed name propagates through the mesh, the temporary presence of a single affected node can degrade BLE management for iOS users across a wide geographical area for an extended period. Less technical users have no straightforward recovery path. Starting in version 2.7.23.b246bcd, the firmware has added input sanitization and regression tests demonstrating recovery for already-poisoned devices. The apps have also taken steps to ensure more graceful handling of malformed encoding sequences as well.
📍 영향받는 시스템
Meshtastic firmware versions prior to 2.7.23.b246bcd
⚔️ 공격 벡터
잘못된 인코딩이 포함된 User.long_name을 가진 노드가 메쉬 네트워크에 광고(Advertising)되어 iOS 앱의 데이터베이스를 오염시킴
🛡️ 대응 방법
Meshtastic 펌웨어를 2.7.23.b246bcd 이상 버전으로 업데이트하거나, Python CLI를 사용하여 오염된 노드 항목을 수동으로 제거
🔧 검증 코드
명령어 실행 결과로 2.7.23.b246bcd 버전 또는 그 이상의 버전 번호가 출력되면 취약점이 해결된 상태입니다.
meshtastic --version 2>/dev/null | grep -E '2.7.23.b246bcd|higher'