Psychic Paper: iOS Sandbox Escape
11–20 of 61 posts
Re: Psychic Paper: iOS Sandbox Escape
#12The author mentions that this bug saved him 1000s of hours in development. How is a sandbox escape useful in development? Can someone give me an example?
Re: Psychic Paper: iOS Sandbox Escape
#13If you made two directories:
SomeApp
SomeApp%
And then launch the folder with the % sign then the code that checks for valid signatures will check in the directory without the %, but the code that actually launches the binary will still run the code in the directory with the %.So all you need to do is get any binary with a valid sig and put it in the SomeApp folder while putting the code you actually want to run in SomeApp%.
Re: Psychic Paper: iOS Sandbox Escape
#14Once binary plists were introduced, it was only a matter of time before it became the macOS equivalent of windows registry. The fact that Apple is maintaining multiple parsers, and apparently added yet another in response to this bug, just smells bad.
Seems like a significant amount of time.
Re: Psychic Paper: iOS Sandbox Escape
#15Once binary plists were introduced, it was only a matter of time before it became the macOS equivalent of windows registry. The fact that Apple is maintaining multiple parsers, and apparently added yet another in response to this bug, just smells bad.
…in OS X 10.2? In 2002?[0] Seems like a significant amount of time. [0]: https://en.wikipedia.org/wiki/Property_list#History
Re: Psychic Paper: iOS Sandbox Escape
#16Maybe we should take this as a lesson that we should use the simplest marshalling format that adequately captures our use cases rather than using a swiss-army knife format like XML.
Your security-sensitive parser should not attempt to tolerate invalid input.
Probably you should not have multiple separate implementations of it, either.
Re: Psychic Paper: iOS Sandbox Escape
#17Once binary plists were introduced, it was only a matter of time before it became the macOS equivalent of windows registry. The fact that Apple is maintaining multiple parsers, and apparently added yet another in response to this bug, just smells bad.
Plists are the best of both worlds. They're a file format rather than a system database, so user-specific config goes in ~/Library/, application-specific config goes in the *.app/ bundles, and system-wide config is in /System or /Library. But it's also a unified format, so each program doesn't need to implement its own parser, and users and developers don't have to wonder how application XYZ decided to escape backslashes, in its config file.
How are they "the macOS equivalent of windows registry"? Or is that just a generic techno-slur?
Re: Psychic Paper: iOS Sandbox Escape
#18Once binary plists were introduced, it was only a matter of time before it became the macOS equivalent of windows registry. The fact that Apple is maintaining multiple parsers, and apparently added yet another in response to this bug, just smells bad.
Binary plists are identifiable to ascii plists, they’re just more compact. plutil is a utility that can convert them back and forth. Internally the plist classes can be passed either to load and they won’t bat an eye.
Re: Psychic Paper: iOS Sandbox Escape
#19Maybe we should take this as a lesson that we should use the simplest marshalling format that adequately captures our use cases rather than using a swiss-army knife format like XML.
I’m not sure that there were much better choices available at the time. IIRC property lists date back to NextStep. By the time stuff like JSON started popping up, plists were pervasive all throughout OS X. Typical legacy problem!
Re: Psychic Paper: iOS Sandbox Escape
#20Maybe we should take this as a lesson that we should use the simplest marshalling format that adequately captures our use cases rather than using a swiss-army knife format like XML.
Problem is legacy software tends to use XML. iOS can be considered legacy at this point. Plists are prevalent at every level of iOS.