Skip to content

Latest commit

 

History

History
89 lines (75 loc) · 7.37 KB

File metadata and controls

89 lines (75 loc) · 7.37 KB

Attack Tree Analysis for jetbrains/compose-multiplatform

Objective: To execute arbitrary code on a user's device (desktop, mobile, or web) running a Compose Multiplatform application, or to exfiltrate sensitive data handled by the application, by exploiting vulnerabilities specific to the Compose Multiplatform framework.

Attack Tree Visualization

                                      +-------------------------------------------------+
                                      |  Execute Arbitrary Code OR Exfiltrate Data     |
                                      |  via Compose Multiplatform Vulnerabilities      |
                                      +-------------------------------------------------+
                                                        |
         +--------------------------------+--------------------------------+--------------------------------+
         |                                |                                |                                |
+--------+--------+             +--------+--------+             +--------+--------+
|  Compose UI     |             |  Compose       |             |  Platform-     |
|  Vulnerabilities|             |  Compiler/     |             |  Specific      |
+--------+--------+             |  Runtime       |             |  Integration   |
         |                        |  Vulnerabilities|             |  Vulnerabilities|
+--------+--------+             +--------+--------+             +--------+--------+
|***1. Input    ***|             |  A. Deserial-  |             |***a. Android  ***|
|***Validation ***|             |  ization       |             |***  Intent   ***|
|***Bypass in  ***|             |  Issues        |             |***  Hijacking***|
|***Composable [!]***|             |  (Skiko) [!]   |             |***  (Compose)[!]***|
+----------------+             +----------------+             +----------------+
                                                                 |***b. iOS      ***|
                                                                 |***  URL Scheme***|
                                                                 |***  Hijacking***|
                                                                 |***  (Compose)[!]***|
                                                                 +----------------+
                                                     +--------+--------+
                                                     |  d. Desktop    |
                                                     |     (Skiko)    |
                                                     |     Vulner-   |
                                                     |     abilities[!]  |
                                                     +----------------+
  • Description: This attack vector targets Composables that handle user input (e.g., TextField, custom input components) but fail to properly validate or sanitize that input. An attacker could inject malicious code or data that is then processed by the application, potentially leading to code execution or data exfiltration.
  • Example (Web): A TextField that accepts user input without sanitizing for HTML/JavaScript tags. An attacker could inject <script>alert('XSS')</script>, which would execute JavaScript in the user's browser.
  • Example (Mobile/Desktop): A Composable that takes user input and uses it to construct a file path without proper validation. An attacker could use path traversal techniques (../) to access files outside the intended directory.
  • Likelihood: Medium
  • Impact: High
  • Effort: Low
  • Skill Level: Intermediate
  • Detection Difficulty: Medium
  • Description: Skiko, the graphics library used by Compose for Desktop and Web, might have vulnerabilities related to the deserialization of data, such as fonts, images, or other resources. If an attacker can control the data being deserialized (e.g., by providing a malicious font file), they might be able to trigger arbitrary code execution.
  • Example: An application loads a custom font from an untrusted source. The font file is crafted to exploit a deserialization vulnerability in Skiko, leading to code execution when the font is loaded.
  • Likelihood: Low
  • Impact: Very High
  • Effort: High
  • Skill Level: Expert
  • Detection Difficulty: Hard
  • Description: Similar to Deserialization Issues, but more general. Any vulnerability in Skiko on desktop platforms could be exploited. This could include buffer overflows, use-after-free errors, or other memory corruption issues.
  • Example: A crafted image file exploits a buffer overflow in Skiko's image processing code, allowing the attacker to overwrite memory and execute arbitrary code.
  • Likelihood: Low
  • Impact: Very High
  • Effort: High
  • Skill Level: Expert
  • Detection Difficulty: Hard
  • Description: This attack targets Android applications built with Compose that improperly handle Intents. If an Activity, Service, or BroadcastReceiver is exposed (exported) without proper protection, another application can send it a malicious Intent, potentially triggering unintended actions, data leaks, or code execution.
  • Example: An Activity with an intent-filter that doesn't specify android:exported="false" and doesn't validate the data received in the Intent. Another app can send an Intent with malicious data to this Activity, causing it to perform actions it shouldn't.
  • Likelihood: Medium
  • Impact: High
  • Effort: Low to Medium
  • Skill Level: Intermediate
  • Detection Difficulty: Medium
  • Description: Similar to Android Intent hijacking, this targets iOS applications that register custom URL schemes but don't properly validate the data received through those schemes. An attacker can craft a malicious URL that, when opened, triggers unintended actions within the vulnerable application.
  • Example: An app registers the URL scheme myapp://. An attacker crafts a URL like myapp://evil.com/exploit and tricks the user into opening it. If the app doesn't validate the URL, it might execute code or access data based on the evil.com/exploit part.
  • Likelihood: Medium
  • Impact: High
  • Effort: Low to Medium
  • Skill Level: Intermediate
  • Detection Difficulty: Medium