{"id":21488,"date":"2018-05-10T16:51:57","date_gmt":"2018-05-10T20:51:57","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=21488"},"modified":"2018-05-10T16:56:48","modified_gmt":"2018-05-10T20:56:48","slug":"black-dot-unicode-bug","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/05\/10\/black-dot-unicode-bug\/","title":{"rendered":"&ldquo;Black Dot&rdquo; Unicode Bug"},"content":{"rendered":"<p><a href=\"https:\/\/9to5mac.com\/2018\/05\/09\/black-dot-bug-unicode-text-bug-to-crash-iphone-and-ipads\/\">Benjamin Mayo<\/a>:<\/p>\n<blockquote cite=\"https:\/\/9to5mac.com\/2018\/05\/09\/black-dot-bug-unicode-text-bug-to-crash-iphone-and-ipads\/\">\n<p>A new Unicode text bug is being spread around today, popularised by a <a href=\"https:\/\/www.youtube.com\/watch?v=0fepqIO57f8\">video by EverythingApplePro<\/a>. It&rsquo;s being called the &lsquo;black dot&rsquo; bug because of its origins on Android as a bug relating to WhatsApp: it was being spread with the following emoji: &lt;&#x26AB;&gt;&#x1F448;&#x1F3FB;. The iOS version of this bug is a bit different in its mechanics, but neither variants actually rely on the visible black dot character to cause the freezes and crashes.<\/p>\n<p>The secret is that the strings contain thousands of hidden invisible Unicode characters, which churns through CPU cycles as the system attempts to process them. If this specially crafted text is sent through Messages, it will result in repeated crashes when the recipient tries to read it.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/9to5mac.com\/2018\/05\/09\/black-dot-bug-unicode-text-bug-to-crash-iphone-and-ipads\/#comment-3892500309\">ctxppc<\/a>:<\/p>\n<blockquote cite=\"https:\/\/9to5mac.com\/2018\/05\/09\/black-dot-bug-unicode-text-bug-to-crash-iphone-and-ipads\/#comment-3892500309\">\n<p>I&rsquo;ve already said it but Apple should revisit the text rendering architecture. Unicode is so complex it cannot be trusted in the same process as the app (or SpringBoard). Rendering should be done off-process just like how the window server on macOS deals with windows, Mission Control, and the mouse cursor (which continue to work even when an app freezes).<\/p>\n<p>Once a particular string hangs or crashes the rendering process, it should be blacklisted and dealt appropriately until an update comes around which fixes the issue. The process could even report the blacklisted string to Apple (with permission from the user) so that it could be fixed early on.<\/p>\n<\/blockquote>\n<p>Various Web rendering and font tasks are also handled out-of-process already.<\/p>\n<p>Previously: <a href=\"https:\/\/mjtsai.com\/blog\/2018\/02\/15\/another-ios-crash-caused-by-sending-unicode-character\/\">Another iOS Crash Caused By Sending Unicode Character<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Benjamin Mayo: A new Unicode text bug is being spread around today, popularised by a video by EverythingApplePro. It&rsquo;s being called the &lsquo;black dot&rsquo; bug because of its origins on Android as a bug relating to WhatsApp: it was being spread with the following emoji: &lt;&#x26AB;&gt;&#x1F448;&#x1F3FB;. The iOS version of this bug is a bit [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2018-05-10T20:56:51Z","apple_news_api_id":"60519a50-bbff-4473-aa1b-6fb559afe962","apple_news_api_modified_at":"2018-05-10T20:56:52Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAA==","apple_news_api_share_url":"https:\/\/apple.news\/AYFGaULv_RHOqG2-1Wa_pYg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[],"tags":[248,131,394,140,31,1472,30,1529,141,258],"class_list":["post-21488","post","type-post","status-publish","format-standard","hentry","tag-android","tag-bug","tag-coretext","tag-imessage","tag-ios","tag-ios-11","tag-mac","tag-macos-10-13","tag-messages","tag-unicode"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=21488"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21488\/revisions"}],"predecessor-version":[{"id":21496,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21488\/revisions\/21496"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=21488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=21488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=21488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}