1. 개요
여기에 나와있는 문자들은 모두 이미지로 되어 있으니 안심하자. |
iOS 기기에서 버전에 따라 특정 문자열을 보면 앱이 튕기고, 심하면 하드리셋을 해야 하는 문제이다.
CoreText 렌더링에 문제가 있어서 발생하는 버그이다.
그러나 문제가 있는 만큼 악용사례들도 심심찮게 볼 수 있다.
2. iOS 6에서의 버그
2.1. 개요
Bug In Apple’s CoreText Allows Specific String Of Characters To Crash iOS 6, OS X 10.8 Apps 기사에서 언급된 괴문자와 관련된 버그를 이르는 말.일단 해당 문자열 자체에는 아무런 뜻이 담겨 있지 않지만,[1] 이게 기술적인 문제를 불러일으키는 것으로 유명하다.
이 아랍 문자를 iOS 6과 OS X 10.8에서 띄우면 프로그램이 뻗거나, 최악의 경우 OS가 탑재된 제품 자체에 치명적인 타격을 준다. iOS 7과 OS X 10.9(Marvericks)에서는 피해 보고가 아직 없다. 이는 iOS와 OS X에 탑재된 Cocoa 프레임워크의 일부분인 CoreText API의 유니코드 텍스트 렌더링 부분에 버그가 있어서 그렇다고. iOS 7과 OS X 10.8.5 업데이트에서 버그가 수정되었다.
이 글에 따르면, 구체적으로는 다음과 같은 문제가 발생한다고 한다.
- 해당 문자열이 포함된 웹 페이지에 들어갈 경우: 웹 브라우저가 죽는다.
- 해당 문자열이 포함된 푸시 메시지를 수신할 경우: 단말기가 리붓된다. 리붓된 상태에서 푸시 로그를 확인하면 또다시 리붓된다.
- 메신저로 해당 문자열을 수신할 경우: 메신저 푸시가 뜨면서 단말기가 리붓된다. 메신저로 들어가면서 수신한 메시지를 보려고 하면 메신저가 죽는다.
- 누군가가 Wi-Fi의 SSID로 해당 문자열을 쓸 경우: 설정 앱에서 Wi-Fi SSID를 검색하는 순간 바로 설정 앱이 다운된다.
페이스북은 이 문자열을 담벼락이나 타임라인에 올릴 수 없도록 차단했다. 트위터 또한 이 문자열을 트윗하지 못하도록 차단했지만, 이 문자열이 포함된 기존 트윗을 RT할 수는 있기 때문에 주의해야 한다. 그리고 바이두에서도 차단되었다.
2.2. 해결 방법
OS X 사용자는 10.9(Marvericks) 버전 또는 10.8.5 버전으로 업데이트하면 해결된다.iOS가 탑재된 기기를 사용하는 유저들은 기기를 iOS 7 버전으로 업데이트하거나, iOS 6 이전 버전의 기기를 탈옥한 유저는 Cydia의 기본 소스인 Cydia/Telesphoreo에서 GlyphPatch 패키지를 찾아서 설치하거나 보안 수정 코드를 참조해서 직접 수정하면 된다.
2.3. 참고
- iOS6 및 Mac OS X 10.8에 심각한 버그 특정 텍스트
- 텍스트 한줄로 iOS와 OS X 앱을 강제로 충돌시킬 수 있는 심각한 취약점 발견! 보안 업데이트 시급
- 해당 문자열이 포함된 트윗[2]
3. iOS 8에서의 버그
3.1. 개요
2015년 5월 27일[3] 나인투파이브맥(9to5Mac)에서 새롭게 발견된 버그. 원글 iOS 6때에도 문제를 일으켰던 CoreText 라이브러리의 버그 때문에 특정한 문자열이 포함되어 있는 메시지를 알림으로 받을 때 프로그램 매니저와 SpringBoard가 크래쉬되어 리스프링되거나 재부팅되는 버그이다. 관련기사
CVE 엔트리가 생겼다! CVE-2015-1157
해당 문자열의 유니코드 코드 포인트 덤프 크래쉬 로그
h 주변의 문자는 아랍어가 아니라 인도언어중 하나인 마라티어 문자다.
한편, CoreText 라이브러리는 iOS와 Mac이 동시에 사용하기 때문에, Mac에서도 유사한 버그를 재현할 수 있다. Terminal.app을 실행시키고 다음 문장을 쳐 보자.
telnet galadriel.gentoo.moe
(2015-10-14부로 서버 가동을 하고 있지 않다. 더불어, 해당 텔넷 서버의 코드는 이 리포지토리에 있다.)Apple 공식 페이지에 해당 이슈가 올라왔다.#
We are aware of an iMessage issue caused by a specific series of unicode characters and we will make a fix available in a software update.
3.2. 영향을 받는 기기 목록
- iOS 8.3 이하를 사용 중인 기기
- OS X Yosemite를 사용 중인 기기
- Apple Watch
3.3. 문제의 악용 사례
2015년 5월 28일, 이 버그가 대한민국에 널리 퍼진 이후로 각종 테러가 이어지고 있다.
먼저 사파리 상에서 단순히 저 메시지가 적혀있는 게시물을 열람했을 때는 특별히 문제가 보고되지 않고 있다.
카카오톡 단체방이 2년 전보다 활성화된 측면과 대한민국에서의 iPhone 6의 흥행으로 iOS 8이 어느정도 보급이 되어있는 상태인데, 저 문자를 단톡방에서 보내고 엄청나게 욕을 먹는 사례가 이어지고 있다. 이유인 즉슨, iOS 8의 기기에서는 저 문자를 보기만 하면 크래쉬가 일어나게 때문.
아프리카TV와 같은 실시간 스트리밍 서비스 앱에서도 비슷한 팅김 현상이 나타나고 있으며, 역시 해당 메시지를 채팅방에서 도배를 하고 다니는 악성 유저가 존재하는 상황이다. 아이폰으로 방송 시청하다가 갑자기 튕겼을 때, 다시 돌아와서 접속하면 아랍어 문자에 대한 성토와 괴문자 사용자
만약 피해를 주기 위한 목적으로 특정 다수에게 피해를 줄 경우 법적 문제로까지 비화될 수 있는 상황.
3.4. 임시적인 해결 방법
3.4.1. Apple에서 공식적으로 제시한 해결 방법 #
- Siri에게 읽지 않은 메시지를 읽어달라고 요청한다.
- Siri를 이용해 해당하는 악의적 메시지에게 답한다. 답장 후에는, 메시지 앱을 다시 열 수 있을 것이다.
- 이 이슈가 계속되면, 해당 메시지를 길게 누르고 기타를 누른 후 스레드에서 해당 메시지를 삭제해라.
3.4.2. 잠금 화면에서의 메시지
- 홈 화면의 설정 앱을 실행시킨다.
- 알림을 탭한다.
- 메시지를 탭한다.
- 잠금 화면에서 보기를 끄기로 변경한다.
3.4.3. 카카오톡
이 버그는 문자가 렌더링될 때 발생하므로 해당 메시지를 보이지 않게 수십개의 메시지를 날려 문제가 되는 텍스트를 위로 밀어주면 일단 크래쉬되지는 않는다.[4]3.4.4. 메시지 앱을 열 수 없는 경우
- 메시지 목록을 볼 때에 문제가 발생하므로 Siri를 이용해서 온 사람에게 답장을 날려주면 메시지 앱을 다시 열 수 있다.[5]
- 사진 앱을 이용해 사진으로 답장을 보내면 메시지 앱을 다시 열 수 있다.[6]
3.5. 해결 방법
3.5.1. iOS 8.4 설치
2015년 7월 1일(KST) iOS 8.4가 릴리스 되었으며, 해당 버전에선 괴문자 버그가 해결되었다.3.5.2. Cydia에서 해당 문제의 패치를 설치하는 방법
탈옥한 사용자들만 이용 가능하다.- https://cydia.akemi.ai에 들어가 Main Repo 옆 링크를 눌러 배포처 소스를 자신이 사용하는 패키지 관리자에 추가한다.
- IneffectivePower를 검색해 해당 트윅을 설치하고 기기를 재부팅한다.
4. iOS 10에서의 버그
4.1. 이모지 조합 버그
🏳-0-🌈다른 문자 버그를 알아도 이 문자 버그는 별로 유명하지 않기 때문에 몰랐을 것이다.
하이픈(-)은 제외하고 다음 문자[7]를 보내면 받는 기기가 멈춰버린다.
문자를 수신하는 순간 바로 먹통이 되어 버리므로 버그를 피할수 없다. 3~5분 후 재부팅되면서 원상태로 복구된다(!).
5. iOS 11에서의 버그
5.1. 칸나다어 버그
위의 칸나다어 문자가 포함된 메시지를 받으면 시스템에서 문자 시간과 시간을 다시 로드하려고 계속 시도하고 메시지 앱을 누를 때마다 리스프링이 되거나 메시지 앱이 실행이 되지 않는다.
이전 버전에도 적용되는지에 대해서는 알려지지 않았으나 iOS 11.3 Beta 2에서는 나타나지 않는 걸로 알려져있다.
5.1.1. 해결 방법
iOS 11.2.6 설치5.2. Black Dots 버그
해당 이미지에 있는 이모지를
이 영상에 따르면 Black Dots라는 이름과는 달리 검은 원 이모지는 죄가 없고 RLO와 LRO가 번갈아 나오면서 렌더링에 문제를 일으킨 것이라고 한다.
5.2.1. 해결 방법
iOS 11.0 부터 iOS 11.4 최신 베타(5월 9일 2018년 기준)인 DB4, PB4까지 적용되는 버그임으로 업데이트로는 해결 불가능하고 메시지 앱을 멀티테스킹 창에서 지우고 재부팅 후 3D 터치로 새 메시지 작성을 누르면 정상적으로 메시지앱 실행 가능하다.6. iOS 12에서의 버그
6.1. 개요
2019년 2월 13일 EverythingApplePro가 새롭게 발견한 버그이다.
iOS 12.2 정식 버전에서 고쳐진 것으로 확인된다.
7. iOS 13에서의 버그
7.1. Sindhi Italian Flag 버그
이탈리아 국기, 바이러스 등의 이모지를 신디어(sindhi) 문자로 보내면 ios가 그대로 멈춰버리는 심각한 버그이다. 링크iOS 14에서는 해결됐는지 아무것도 일어나지 않는다.
해결 방법은 그냥 과감하게 하드리셋(전원키와 볼륨 다운 키를 동시에 15~20초 이상 길게 눌러 강제 재부팅)하자.
[1] 아랍어와 다른 언어가 뒤섞여 있다. 정확히는 밑의 자음은 아랍어가 맞지만, 위쪽의 부호 부분은 벵골어에 가깝다.[2] 현재는 트위터측에서 트윗 내용을 바꿔 둔 상태라 iOS 구버전 사용자도 들어가도 괜찮다.[3] 현지시각으로 26일[4] 하지만 iOS 사용자가 모르고 이전 메시지를 보려다가 크래쉬 될 수 있다.[5] 야, 왜 그랬어?!와 같은 메시지를 보내면 좋다.[6] 보낼만한 사진이 없다면 그냥 검은사진 찍자.가운데손가락 올리고 찍어 보내자[7] 흰 깃발, 숫자 0(0️⃣ 아님), 무지개 순서로 이모지[8] 장난으로라도 링크대로 장난을 하지 마는 것을 추천한다.[9] 현재 접속 불가[10] - 영어로는 hyphen. 대시(Dash) 라고도 한다.