One Article Review

Accueil - L'article:
Source Google.webp ProjectZero
Identifiant 8221934
Date de publication 2022-08-24 12:04:44 (vue: 2022-11-25 18:05:33)
Titre FORCEDENTRY: Sandbox Escape
Texte Posted by Ian Beer & Samuel Groß of Google Project Zero We want to thank Citizen Lab for sharing a sample of the FORCEDENTRY exploit with us, and Apple’s Security Engineering and Architecture (SEAR) group for collaborating with us on the technical analysis. Any editorial opinions reflected below are solely Project Zero’s and do not necessarily reflect those of the organizations we collaborated with during this research. Late last year we published a writeup of the initial remote code execution stage of FORCEDENTRY, the zero-click iMessage exploit attributed by Citizen Lab to NSO. By sending a .gif iMessage attachment (which was really a PDF) NSO were able to remotely trigger a heap buffer overflow in the ImageIO JBIG2 decoder. They used that vulnerability to bootstrap a powerful weird machine capable of loading the next stage in the infection process: the sandbox escape. In this post we'll take a look at that sandbox escape. It's notable for using only logic bugs. In fact it's unclear where the features that it uses end and the vulnerabilities which it abuses begin. Both current and upcoming state-of-the-art mitigations such as Pointer Authentication and Memory Tagging have no impact at all on this sandbox escape.An observation During our initial analysis of the .gif file Samuel noticed that rendering the image appeared to leak memory. Running the heap tool after releasing all the associated resources gave the following output: $ heap $pid ------------------------------------------------------------ All zones: 4631 nodes (826336 bytes)                          COUNT    BYTES     AVG   CLASS_NAME   TYPE   BINARY              =====    =====     ===   ==========   ====   ======             1969   469120   238.3   non-object      825    26400    32.0   JBIG2Bitmap  C++   CoreGraphics
Envoyé Oui
Condensat $pid  $versi|  24  26400  32  4e  62  64  69  6a  6f  7ffa22c4c000  825  =====  @  axspeechimplementation  builds  by  bytes  c++  completion:  componentswithstring:  contains  count  datawithcontentsofurl:  decompresseddatausingalgorithm:3  find  forkey:  forkey:@  has  identity:  is  key:  nskeye|  objectforkey:@  on  options:  returns  running  setobject:  slideshowkit  the  then  to  under  value:  which  |  |bplist00|  |darchive|  |iverx$ob|  |jectst$t|  |ony$arch|  |op /system/library/accessibilitybundles/ /system/library/accessibilitybundles/axspeechimplementation /system/library/frameworks/avfaudio /system/library/privateframeworks/ /system/library/privateframeworks/sharing /system/library/privateframeworks/slideshowkit /tmp/com 00000000 00000018 00000020 00000028 00000030 00000038 00000040 00000048 18a8395 1969 2007 2019 2020 238 394681493 4631 469120 7ffa22d44000 826336 === ==== ====== ========== >condition >rows then >settings `pgrep aaa aaaa abc abcdef ability able about abuses accept access accessibilitysharedsupport accessibilityutilities according across add added addentriesfromdictionary: addition additionally address address option advent aes128 aes128decryptwithpassword:nsdata after against aggregate ahead akdevice all allobjects alloc allocate allocates allow allowable allowed allowevaluation allowevaluation method allowevaluation:  allowing allows alltmpfiles almost already also always amount amskeepalive analysis analyze another any anything appeared appears apple apple’s applemediaservices keepalive object arbitrary arbitrary method architecture are arg arg1 arg2 arg2 argument arg3 arg3; arg4; argument arguments arm around array arraybyaddingobject: arraywithobject: art asmkeepalive object assign assigns associated assuming attached attachment attack attacker attackers attempt attributed audit authentication authkit isn authkit which author is automatically available average avfaudio avg avspeechsynthesisvoice avspeechsynthesisvoice class avspeechsynthesisvoice is avspeechsynthesisvoice object axspeechimplementation based basic example beautified because been beer before begin beginswith being below beyond big bin binary bit bitmap blob blocks blog bootstrap both boundaries bplist00 bplist00 binary breaking broadly buffer bug bugs build builder building buildnumber builds built bundle bundle library bundle to bundle/axspeechimplementation bundle; bundlewithpath: bundlewithpath:@ but bytes c:expression cache calicalendaranonymizer call called calls can case cases cast cast which casting cause causes certain certainly chain challenge changes check citizen class classdump can classes cleanup clearly click cloudfront code code: coder codes collaborated collaborating collection collections com com/library/archive/documentation/macosx/conceptual/bpsystemstartup/chapters/creatingxpcservices combination come command commcenter commcenter  commcenter is commcenter process commcenter target commcenter to commcenter: commcenter` complex computational conclusion condition condition and conditions connected considers constrained constraining consumer contained containing contains contents context context:evaluatemobilesubscriberidentity: context:nil context:x control convert copies copy core coregraphics coretelephony coretelephonyclient correct corresponds corruption could count cover create created creating critical ctf dezhouinstrumenz challenge ctxpcservicecarrierbundleinterface ctxpcservicesubscriberinterface ctxpcservicesubscriptioncontext current data datawithcontentsofurl: dealloc selector decimal declared declares decodeobjectofclass:nspredicate decodeobjectofclasses:allowed decoder decompr
Tags Vulnerability Technical
Stories
Notes ★★★
Move


L'article ne semble pas avoir été repris aprés sa publication.


L'article ne semble pas avoir été repris sur un précédent.
My email: