{"id":7267,"date":"2025-09-28T10:03:35","date_gmt":"2025-09-28T10:03:35","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2025\/09\/28\/google-project-zero-details-aslr-bypass-on-apple-devices-using-nsdictionary-serialization\/"},"modified":"2025-09-28T10:03:35","modified_gmt":"2025-09-28T10:03:35","slug":"google-project-zero-details-aslr-bypass-on-apple-devices-using-nsdictionary-serialization","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2025\/09\/28\/google-project-zero-details-aslr-bypass-on-apple-devices-using-nsdictionary-serialization\/","title":{"rendered":"Google Project Zero Details ASLR Bypass on Apple Devices Using NSDictionary Serialization"},"content":{"rendered":"<p>    Google Project Zero Details ASLR Bypass on Apple Devices Using NSDictionary Serialization<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>A Google Project Zero researcher has detailed a novel technique for remotely leaking memory addresses on Apple\u2019s macOS and iOS.<\/p>\n<p>This method can bypass a key security feature, <a href=\"https:\/\/cybersecuritynews.com\/kaslr-exploited-apple-silicon\/\" target=\"_blank\" rel=\"noreferrer noopener\">Address Space Layout Randomization (ASLR)<\/a>, without relying on traditional memory corruption vulnerabilities or timing-based side-channel attacks.<\/p>\n<p>The research originated from a 2024 discussion within the Project Zero team about <a href=\"https:\/\/googleprojectzero.blogspot.com\/2025\/09\/pointer-leaks-through-pointer-keyed.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">finding<\/a> new ways to achieve remote ASLR leaks on Apple devices.<\/p>\n<p>The researcher discovered a trick applicable to services that deserialize attacker-provided data, re-serialize the resulting objects, and then send the data back.<\/p>\n<p>While no specific, real-world vulnerable attack surface was identified, a proof-of-concept was created using an artificial test case involving Apple\u2019s <code>NSKeyedArchiver<\/code> serialization framework on macOS.<\/p>\n<p>The researcher responsibly disclosed the findings to Apple, which addressed the underlying issue in its security updates on March 31, 2025.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-the-attack-mechanism\"><strong>The Attack Mechanism<\/strong><\/h2>\n<p>The technique hinges on the predictable behavior of data serialization and the internal workings of Apple\u2019s <code>NSDictionary<\/code> objects, which are essentially hash tables.<\/p>\n<p>The attack\u2019s goal is to leak the memory address of the <code>NSNull<\/code> singleton, a unique, system-wide object whose memory address is used as its hash value.<\/p>\n<p>Leaking this hash value is equivalent to leaking the object\u2019s address, which would undermine ASLR for the shared cache where it resides.<\/p>\n<p>The attack unfolds in several steps:<\/p>\n<ul class=\"wp-block-list\">\n<li>An attacker first crafts a serialized <code>NSDictionary<\/code> object. This dictionary contains a mix of <code>NSNumber<\/code> keys, whose hash values can be controlled, and a single <code>NSNull<\/code> key.<\/li>\n<li>The <code>NSNumber<\/code> keys are carefully chosen to occupy specific \u201cbuckets\u201d within the hash table, creating a known pattern of filled and empty slots.<\/li>\n<li>The victim application deserializes this object, creating the dictionary in memory. When the application re-serializes the object to send it back, it iterates through the hash table buckets in a predictable order.<\/li>\n<li>The position of the <code>NSNull<\/code> key in the returned data reveals which bucket it was placed in. This leaks partial information about its address, specifically the result of the address modulo the table\u2019s size.<\/li>\n<\/ul>\n<p>To reconstruct the full 64-bit address, the technique employs the Chinese Remainder Theorem. By sending an array of dictionaries of varying sizes (each with a different prime number of buckets), an attacker can gather multiple pieces of information about the address.<\/p>\n<p>Combining these results makes it possible to calculate the complete memory address of the <code>NSNull<\/code> singleton, effectively breaking ASLR for that memory region.<\/p>\n<p>This research demonstrates that using raw object pointers as hash keys in data structures can lead to direct information leaks if the serialized output is exposed.<\/p>\n<p>Unlike classic <a href=\"https:\/\/cybersecuritynews.com\/snailload-side-channel-attack\/\" target=\"_blank\" rel=\"noreferrer noopener\">side-channel attacks<\/a> that measure timing differences, this method relies on the deterministic output of the serialization process.<\/p>\n<p>The researcher suggests the most robust mitigation is to avoid using object addresses as lookup keys or to hash them with a keyed hash function to prevent the address from being exposed.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 94%,rgb(169,184,195) 100%)\"><strong>Follow us on <a href=\"https:\/\/news.google.com\/publications\/CAAqMggKIixDQklTR3dnTWFoY0tGV041WW1WeWMyVmpkWEpwZEhsdVpYZHpMbU52YlNnQVAB?hl=en-IN&amp;gl=IN&amp;ceid=IN:en\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google News<\/a>, <a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>, and <a href=\"https:\/\/x.com\/cyber_press_org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a> for daily cybersecurity updates. <a href=\"https:\/\/cybersecuritynews.com\/contact-us\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Contact us<\/a> to feature your stories.<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/aslr-bypass-on-apple-devices\/\">Google Project Zero Details ASLR Bypass on Apple Devices Using NSDictionary Serialization<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Guru Baran<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/aslr-bypass-on-apple-devices\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Google Project Zero Details ASLR Bypass on Apple Devices Using NSDictionary Serialization A Google Project Zero researcher has detailed a novel technique for remotely leaking memory addresses on Apple\u2019s macOS and iOS. This method can bypass a key security feature, Address Space Layout Randomization (ASLR), without relying on traditional memory corruption vulnerabilities or timing-based side-channel [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[129,63,131,648],"tags":[130],"class_list":["post-7267","post","type-post","status-publish","format-standard","hentry","category-cyber-security","category-cyber-security-news","category-vulnerability","category-vulnerability-news","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/7267"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=7267"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/7267\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=7267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=7267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=7267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}