
Informe y pruebas de concepto para CVE-2021-30862, vulnerabilidad de RCE de un solo clic en iOS iTunes U
En 2021, CodeColorist publicó sus escritos sobre las vulnerabilidades Mistuned, una serie de vulnerabilidades que afectan a iTunes Store y permiten la ejecución remota de código con un solo clic. Notablemente, demostró cómo abrir la calculadora sin ninguna corrupción de memoria, solo con un error de lógica. Durante este período, estaba investigando esquemas de URL en varias aplicaciones, porque 2 años antes había reportado un problema de seguridad relacionado con el esquema de URL itms-services:// de App Store. Un esquema de URL que encontré bastante similar era el esquema itms-itunesu:// de iTunes U. En ese momento, no tenía idea de que aceptaba entrada proporcionada por el usuario y pensé que solo se usaba para abrir la aplicación, pero más tarde me di cuenta de que no era así.
Al leer su escrito, una cosa me llamó particularmente la atención: el escape del sandbox de Jung Hoon Lee usando itmss:// durante Pwn2Own 2014. En ese momento, iTunes Store aceptaba URLs arbitrarias y las cargaba gustosamente en su SUWebView, incluso si no eran de Apple (CVE-2014-8840). En este punto, quizás puedas adivinar hacia dónde me dirijo. Noté que itmss:// era muy similar al esquema de URL de iTunes U, así que decidí ver si iTunes U cargaría google.com en su vista web. Y he aquí que lo hizo. Luego decidí intentar usar la misma API de iTunes que se usó en los bugs de Mistuned para intentar abrir la calculadora, sin esperar que funcionara, pero para mi mayor sorpresa, funcionó. Resulta que tanto iTunes Store como iTunes U comparten esta misma API. ¿Y qué hay del UAF de Mistuned? ¿Estaba también en iTunes U? Resulta que también lo estaba, y pude crear una prueba de concepto que hace fallar iTunes U al liberar memoria dos veces (POC_6.html). Adjunté algunas de las POCs que envié a Apple, así como un intento de una primitiva fakeobj/addrof de esta vulnerabilidad en main.js con ayuda del escrito de Mistuned, aunque si mal no recuerdo, no logré que la primitiva fakeobj funcionara completamente. Puedes leer el escrito de CodeColorist para obtener más información sobre el impacto de estas vulnerabilidades, pero en resumen, permiten recuperar muchos datos sensibles de la víctima, así como una potencial RCE con un solo clic.
Cronología de divulgación