미유키의 심심풀이 글적기판~

Posted
Filed under 잡담/컴퓨터 이야기
iOS6와 OS X 10.8 마운틴 라이언 사용자 분들은 각별한 주의가 필요한 사건이 발생 하였습니다.

사실 이 버그가 국내에 알려진지는 몇일 지나지 않았지만,
정말 대형 버그란 사실은 아는 분이 별로 없는 듯 싶습니다.

일단 간단하게 사건을 설명 하자면
일정 문자열이 나열 되어 있는 글자를 위에 설명한 OS를 가진 장치가
엑세스를 하게 되면 그 앱이 죽어 버리는 문제가 발생 합니다.
버그문자열

버그문자열

그런데 문제는 그리 단순하지 않습니다.

정확히 위 문제가 발생하는 조건을 말씀 드리자면,
특수문자가 화면에 보여 지는 순간 앱이 죽습니다.
(정확히 이야기 하자면, "화면에 텍스트를 표시할 때 이용하는 코어텍스트(CoreText) 폰트 렌더링 프레임워크의 버그" 라고 합니다.)

이 특수 문자열이 푸시 메시지나 메신져로 들어오게 되면 아주 골치 아픈 문제가 발생해 버립니다.
또한 테스트 결과 wifi의 SSID 로 이 문자를 쓰게 되도 문제가 발생 되는 현상을 확인 하였습니다.

일단 발생하는 문제를 알려 드리자면 다음과 같습니다.
- 특수문자가 포함된 웹 페이지에 들어감
증상 : 웹 브라우저가 죽어 버립니다.
- 특수문자가 들어간 푸시 메시지를 수신할 경우
증상 : 단말기가 리붓 되어 버립니다., 단말기가 리붓된 상태에서 푸시로그를 확인하면 또다시 리붓됨
- 메신져로 특수문자를 수신할 경우
증상 : 메신져 푸시가 뜨면서 단말기 리붓됨, 메신저로 들어가면서 수신한 메시지를 보려고 하면 메신저가 죽어 버림.
- 누군가가 wifi의 SSID로 위 특수 문자를 쓸 경우
증상 : 설정에서 wifi를 검색하는 화면에 들어가면 설정이 죽어 버림.


일단 위와 같은 문제가 발생하는 데이터를 분석해 보았는데
다음과 같으니, 개발자 분들께서는 꼭 참고 하시기 바랍니다.

발생하는 조건은 UTF-8 환경입니다.

실제 문제가 발생하는 문자 부분은 아래와 같습니다.
실제 문제 발생 부분

실제 문제 발생 부분

- 문자열에서 버그 발생 포인트 hex
D8 AE 20 CC B7 CC B4 CC 90 D8 AE

- 이 중 실제 문제를 일으키는 코드 부분
D8 AE 20 CC B7 CC B4 CC 90 D8 AE
(표시 되지 않은 부분의 경우 utf-8 규격에만 맞는 데이터라면 다른걸로 바뀌더라도 문제가 발생합니다.)

궁금하신분은 아래 more 부분을 열어 보시면;; 위에 설명한 기기의 경우 바로 앱이 죽어 버리는 결과를 보실 수 있습니다!
(참고로 기본 오류 문자열이 아닌. 제가 가능 여부를 확인하기 위해 커스터마이징 한 문자열 입니다.)
오픈주의!주의!주의!주의!주의!

more..



P.S. 사실 나쁜쪽으로 응용하는 분들이 많아 질까 하는 생각에
글을 써야 될까 말아야 될까 고민도 많았지만,
모르는 채로 지나가면 패치가 배포되기 전에 매우 큰 일로 번저 나갈 가능성이 보여,
혹시나, 앱 개발자나, 보안 개발자분들이 조금이라도 일찍 알아 주시길 바라며 이 글을 써 봅니다.

P.S.2 대형 메신저 업체에 위와 같은 문제를 조치해 달라는 메일을 보냈으나,
과연 언제쯤 처리를 해 줄지 미지수네요...
2013/09/04 23:44 2013/09/04 23:44