<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Djini AI</title><link>https://staging.djini.ai/posts/</link><description>Recent content in Blog on Djini AI</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 15 Oct 2026 07:22:55 +0000</lastBuildDate><atom:link href="https://staging.djini.ai/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Pwn2Own Ireland 2026: Two Phones, Two Successful Exploits, and Third Place</title><link>https://staging.djini.ai/posts/pwn2own-ireland-2026-two-phones-two-successful-exploits-and-third-place/</link><pubDate>Thu, 15 Oct 2026 07:22:55 +0000</pubDate><guid>https://staging.djini.ai/posts/pwn2own-ireland-2026-two-phones-two-successful-exploits-and-third-place/</guid><description>&lt;p&gt;Last week, I traveled to Ireland to compete in &lt;strong&gt;Pwn2Own Ireland 2026&lt;/strong&gt;. I teamed up with Dimitrios and Tenia Valsamara to form &lt;strong&gt;Team ZyGoat&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="20261007_115814-2048x1153.jpg" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Keeping with our zygote-inspired team name, we decided to focus exclusively on Android smartphones, specifically the &lt;strong&gt;Samsung Galaxy S26&lt;/strong&gt; and &lt;strong&gt;Google Pixel 10&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;p&gt;Despite competing in only two categories, we successfully compromised both devices, earning a total of &lt;strong&gt;$125,000 in prize money, 27.5 Master of Pwn points, and third place overall&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Free Djini AI SAST: Now Fixes What It Finds</title><link>https://staging.djini.ai/posts/free-djini-ai-sast-now-fixes-what-it-finds/</link><pubDate>Wed, 14 Oct 2026 12:41:43 +0000</pubDate><guid>https://staging.djini.ai/posts/free-djini-ai-sast-now-fixes-what-it-finds/</guid><description>&lt;p&gt;Our &lt;a href="https://djini.ai/free-ai-mobile-app-source-code-scanner/"&gt;AI source-code scanner&lt;/a&gt; now brings the next step into GitHub: automated fixes, issues and pull requests. Connect your Android or iOS repository, run a scan, and review the proposed changes where your team already works.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Create your free account at &lt;a href="https://app.djini.ai/"&gt;app.djini.ai&lt;/a&gt; with 10 monthly AI Source Code scans.&lt;/strong&gt;&lt;/p&gt;&#10;&lt;h2 id="save-time-reduce-risk"&gt;Save time. Reduce risk.&lt;/h2&gt;&#10;&lt;p&gt;Security issues can expose customer data, delay releases and damage trust. But reviewing every code change takes time that development and security teams often don’t have.&lt;/p&gt;</description></item><item><title>Djini AI SAST: A Free AI Scanner for Mobile App Source Code</title><link>https://staging.djini.ai/posts/free-ai-mobile-app-source-code-scanner/</link><pubDate>Tue, 29 Sep 2026 09:31:22 +0000</pubDate><guid>https://staging.djini.ai/posts/free-ai-mobile-app-source-code-scanner/</guid><description>&lt;p&gt;Today we are releasing Djini AI SAST, a new scanner that finds security bugs in mobile app source code.&lt;/p&gt;&#10;&lt;p&gt;Here is the simple version. You point it at your code and it reads through the code, finds the weak spots, and tells you the exact line to fix. It works on Android and iOS. There is no app file to build, no emulator to boot, and no phone to plug in. Most scans finish in under a minute.&lt;/p&gt;</description></item><item><title>Hacking Optimus Prime: One Click to RCE on the TECNO Spark 30 Pro</title><link>https://staging.djini.ai/posts/tecno-spark-30-pro-one-click-rcetechnical-advisory/</link><pubDate>Tue, 25 Aug 2026 01:08:05 +0000</pubDate><guid>https://staging.djini.ai/posts/tecno-spark-30-pro-one-click-rcetechnical-advisory/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/2026/08/25/"&gt; August 25, 2026 &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/ken/"&gt; Ken Gannon &lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="story-time"&gt;Story Time&lt;/h2&gt;&#10;&lt;p&gt;In 2024, I bought an officially licensed Transformers Optimus Prime mobile phone, which was manufactured by Tecno.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="tecno_1.png" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Then…it sat in my drawer for a year and a half, because I got too busy.&lt;/p&gt;&#10;&lt;p&gt;But then, in December 2025 and January 2026, I decided to use our Djini AI tool to run a Pwn2Own-like assessment against the device. This means I needed to use Djini to analyze ALL of the apps on the device.&lt;/p&gt;</description></item><item><title>Pwn2Own 2025 – Part 1: Samsung Members WebView Takeover &amp; Intent Redirection (CVE-2025-21079)</title><link>https://staging.djini.ai/posts/pwn2own-2025-samsung-members-webview-takeover-and-intent-redirection/</link><pubDate>Thu, 13 Aug 2026 16:49:58 +0000</pubDate><guid>https://staging.djini.ai/posts/pwn2own-2025-samsung-members-webview-takeover-and-intent-redirection/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/2026/08/13/"&gt; August 13, 2026 &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/ken/"&gt; Ken Gannon &lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Product&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Samsung Members ( &lt;em&gt;com.samsung.android.voc&lt;/em&gt; )&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Affected versions&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Confirmed exploitable on &lt;em&gt;5.5.00.13&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fixed in&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;em&gt;5.5.01.3&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Vulnerability type&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;WebView Takeover and Intent Redirection&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CVE&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CVE-2025-21079&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Attacker model&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Remote Attacker – a malicious website must either be browsed to or clicked on&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Tested on&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Samsung S25&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;This post is &lt;strong&gt;Part 1 of our Pwn2Own 2025 series&lt;/strong&gt;, covering the vulnerability that provided the initial entry point into the Samsung Galaxy S25 exploit chain we demonstrated at &lt;strong&gt;Pwn2Own Ireland 2025&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Technical Advisory – Meta Horizon Shell — Automatic Dangerous Permission Grant via Virtual Input Injection</title><link>https://staging.djini.ai/posts/technical-advisory-meta-horizon-shell-automatic-dangerous-permission-grant-via-virtual-input-injection/</link><pubDate>Mon, 10 Aug 2026 08:13:39 +0000</pubDate><guid>https://staging.djini.ai/posts/technical-advisory-meta-horizon-shell-automatic-dangerous-permission-grant-via-virtual-input-injection/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/2026/08/10/"&gt; August 10, 2026 &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/ken/"&gt; Ken Gannon &lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="note-to-the-reader"&gt;Note to the Reader&lt;/h2&gt;&#10;&lt;p&gt;This vulnerability was identified during security research supported by Djini.ai’s Deep Scan capabilities.\&lt;/p&gt;&#10;&lt;p&gt;We also want to highlight that this exploit could have been used to enter Pwn2Own Ireland 2025. During that event, a valid entry against the Oculus 3S line of devices would have to demonstrate that a third part application could access the External Camera and Microphone hardware, without user consent.&lt;/p&gt;</description></item><item><title>Technical Advisory – Samsung Dressroom (Wallpaper &amp; Style) – Arbitrary File Write at System UID</title><link>https://staging.djini.ai/posts/technical-advisory-samsung-dressroom-wallpaper-style-arbitrary-file-write-at-system-uid/</link><pubDate>Thu, 30 Jul 2026 12:41:32 +0000</pubDate><guid>https://staging.djini.ai/posts/technical-advisory-samsung-dressroom-wallpaper-style-arbitrary-file-write-at-system-uid/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/ken/"&gt; Ken Gannon &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/2026/07/30/"&gt; July 30, 2026 &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;12:41 pm&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Product&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Wallpaper &amp;amp; Style / Dressroom ( &lt;em&gt;com.samsung.android.app.dressroom&lt;/em&gt; )&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Affected versions&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Confirmed exploitable on &lt;em&gt;2.8.10.24&lt;/em&gt; and &lt;em&gt;2.9.50.89&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fixed in&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;em&gt;2.9.50.90&lt;/em&gt; – entries are rejected if the entry contains either &lt;em&gt;../&lt;/em&gt; or &lt;em&gt;..\&lt;/em&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Vulnerability type&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Path Traversal (Zip-Slip) on backup restore → arbitrary file write at UID 1000 → WRITE_SECURE_SETTINGS bypass&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CWE&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CWE-22 — Improper Limitation of a Pathname to a Restricted Directory (“Path Traversal”)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Attacker model&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Local Physical Attacker or Malicious Owner – device must have the screen unlocked, a USB drive must be plugged into the device, and the owner manually drives a SmartSwitch restore&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Tested on&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Samsung S24, Samsung S25, and Samsung S26&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="note"&gt;Note&lt;/h2&gt;&#10;&lt;p&gt;This vulnerability was identified during security research supported by &lt;a href="https://www.djini.ai"&gt;Djini.ai&lt;/a&gt;’s Deep Scan capabilities.&lt;/p&gt;</description></item><item><title>Technical Advisory – Meta Quest System-Wide DoS via Unprotected Memory</title><link>https://staging.djini.ai/posts/technical-advisory-meta-quest-system-wide-dos-via-unprotected-memory/</link><pubDate>Wed, 17 Jun 2026 09:05:54 +0000</pubDate><guid>https://staging.djini.ai/posts/technical-advisory-meta-quest-system-wide-dos-via-unprotected-memory/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/ken/"&gt; Ken Gannon &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/2026/06/17/"&gt; June 17, 2026 &lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;9:05 am&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Product&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Meta Quest &lt;strong&gt;System Resource&lt;/strong&gt; ( &lt;em&gt;com.oculus.systemresource&lt;/em&gt; )&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Affected versions&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;em&gt;201.0.0.129.1682&lt;/em&gt; and below (the v201 OS train)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fixed in&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;vros 204&lt;/strong&gt; — the &lt;em&gt;com.oculus.systemresource&lt;/em&gt; application is removed entirely from the build&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Vulnerability type&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Denial of Service via Uncontrolled Resource Allocation&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CWE&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CWE-770 (Allocation of Resources Without Limits or Throttling); parent CWE-400&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Attacker model&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Local — any installed third-party app, no dangerous permissions (only normal, auto-granted &lt;em&gt;FOREGROUND_SERVICE&lt;/em&gt; + &lt;em&gt;QUERY_ALL_PACKAGES&lt;/em&gt; ). One user interaction: launching the attacker app.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Tested on&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Meta Quest 3S&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;&#10;&lt;p&gt;The &lt;strong&gt;System Resource&lt;/strong&gt; application on Meta Quest devices exposed an exported broadcast receiver (&lt;em&gt;SystemResourceReceiver&lt;/em&gt;) and an exported service (&lt;em&gt;SystemResourceService&lt;/em&gt;) with &lt;em&gt;no permission gate and no caller validation&lt;/em&gt;.\&lt;/p&gt;</description></item><item><title>OAuth in Mobile Apps: How Custom Schemes can leak Your Tokens</title><link>https://staging.djini.ai/posts/oauth-in-mobile-apps-how-custom-schemes-can-leak-your-tokens/</link><pubDate>Tue, 19 May 2026 13:28:16 +0000</pubDate><guid>https://staging.djini.ai/posts/oauth-in-mobile-apps-how-custom-schemes-can-leak-your-tokens/</guid><description>&lt;h3 id="oauth-20-the-protocol"&gt;OAuth 2.0: The Protocol&lt;/h3&gt;&#10;&lt;p&gt;OAuth 2.0 solves a delegation problem: how can a third-party application access resources on your behalf without ever learning your password? The answer is a framework (defined in &lt;a href="https://datatracker.ietf.org/doc/html/rfc6749"&gt;RFC 6749&lt;/a&gt;) that issues scoped, time-limited tokens in place of credentials. It is an &lt;em&gt;authorization&lt;/em&gt; protocol — it says what an application is allowed to do, not who the user is. Identity (authentication) is a separate concern layered on top via OpenID Connect (OIDC).&lt;/p&gt;</description></item><item><title>Detecting and Exploiting Insecure Deserialization with Djini.AI</title><link>https://staging.djini.ai/posts/detecting-exploiting-insecure-deserialization-djini-ai/</link><pubDate>Fri, 15 May 2026 09:52:38 +0000</pubDate><guid>https://staging.djini.ai/posts/detecting-exploiting-insecure-deserialization-djini-ai/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://djini.ai/author/djni-wp-agent/"&gt; Djini AI &lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Insecure deserialization is one of the most dangerous vulnerability classes in mobile applications — and one of the hardest to find manually. When an app reconstructs objects from raw data (Intents, backup files, deep links, IPC messages), an attacker who controls that data can inject malicious objects that execute arbitrary code during the reconstruction process. No authentication bypass needed, no SQL injection — just a carefully crafted data stream that the app’s own code turns into a weapon.&lt;/p&gt;</description></item><item><title>Intro to Intent redirections…and how to exploit them</title><link>https://staging.djini.ai/posts/intro-to-intent-redirections-and-how-to-exploit-them/</link><pubDate>Thu, 14 May 2026 11:01:59 +0000</pubDate><guid>https://staging.djini.ai/posts/intro-to-intent-redirections-and-how-to-exploit-them/</guid><description>&lt;p&gt;Android Intents are the core messaging system that allows components to talk to each other — whether that’s within the same app or across different apps on the device. They power pretty much everything, from launching Activities to broadcasting system events. They’re fundamental to how Android works.&lt;/p&gt;&#10;&lt;p&gt;Now, a lot of apps accept external input — through deep links, other applications, or IPC mechanisms — and use that input to construct or redirect Intent objects internally. When an attacker can influence where those Intents get routed, the result is a class of vulnerability known as Intent redirection. And it’s one of the most impactful attack primitives in Android security.&lt;/p&gt;</description></item><item><title>Unlimited Mobile Security Testing, Directly From Your AI Agent</title><link>https://staging.djini.ai/posts/mobile-security-testing-ai-agent-djini/</link><pubDate>Wed, 13 May 2026 10:54:36 +0000</pubDate><guid>https://staging.djini.ai/posts/mobile-security-testing-ai-agent-djini/</guid><description>&lt;h2 id="unlimited-mobile-security-testing-directly-from-your-ai-agent"&gt;Unlimited Mobile Security Testing, Directly From Your AI Agent&lt;/h2&gt;&#10;&lt;p&gt;Your AI agent can now connect directly to the Djini AI Agent and run mobile security tests and tasks in parallel, with no user interaction and no need to open the Djini UI.&lt;/p&gt;&#10;&lt;p&gt;Djini publishes an &lt;a href="https://a2aprotocol.ai/"&gt;Agent-To-Agent&lt;/a&gt; (A2A) compatible endpoint, so any agent that supports the protocol, Claude Code, OpenCode, and others, can connect to Djini – delegate tasks, and receive results automatically.&lt;/p&gt;</description></item><item><title>1-Click ATO: A studycase of common Android apps misconfigurations.</title><link>https://staging.djini.ai/posts/1-click-ato-a-studycase-of-common-android-apps-misconfigurations/</link><pubDate>Fri, 24 Apr 2026 00:00:41 +0000</pubDate><guid>https://staging.djini.ai/posts/1-click-ato-a-studycase-of-common-android-apps-misconfigurations/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;&#10;&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;&#10;&lt;h2 id="initial-analysis"&gt;Initial Analysis&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="manifest.png" alt="Figure from “1-Click ATO: A studycase of common Android apps misconfigurations.” — manifest"&gt;&lt;/p&gt;&#10;&lt;h2 id="deeplinks-and-their-final-destination"&gt;Deeplinks and Their Final Destination&lt;/h2&gt;&#10;&lt;h2 id="scheme-routing"&gt;Scheme Routing&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="handle_url.png" alt="Figure from “1-Click ATO: A studycase of common Android apps misconfigurations.” — handle url"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="getAction.png" alt="Figure from “1-Click ATO: A studycase of common Android apps misconfigurations.” — getAction"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="targetAppScheme.png" alt="Figure from “1-Click ATO: A studycase of common Android apps misconfigurations.” — targetAppScheme"&gt;&lt;/p&gt;&#10;&lt;h2 id="the-handler-logic"&gt;The Handler Logic&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="handlerLogic.png" alt="Figure from “1-Click ATO: A studycase of common Android apps misconfigurations.” — handlerLogic"&gt;&lt;/p&gt;</description></item><item><title>Automated API Security Testing for Mobile Backends</title><link>https://staging.djini.ai/posts/automated-api-security-testing-mobile-backends/</link><pubDate>Thu, 23 Apr 2026 08:33:34 +0000</pubDate><guid>https://staging.djini.ai/posts/automated-api-security-testing-mobile-backends/</guid><description>&lt;h2 id="description"&gt;Description&lt;/h2&gt;&#10;&lt;p&gt;Your mobile apps talk to backend APIs. Those APIs handle login credentials, personal data, payment information, and business logic. A vulnerability in any of them can mean a data breach, regulatory fines, or loss of customer trust.&lt;/p&gt;&#10;&lt;h2 id="the-problem-three-surfaces-three-setups-never-enough-coverage"&gt;The Problem: Three Surfaces, Three Setups, Never Enough Coverage&lt;/h2&gt;&#10;&lt;p&gt;Most organizations treat mobile security as three separate problems. Testing the Android app requires one set of tools, emulators, and expertise. Testing the iOS app requires another, with different devices, different toolchains, and different skill sets. And testing the backend APIs? That’s a third effort entirely, often owned by a different team with its own scanners, its own test environments, and its own backlog.&lt;/p&gt;</description></item><item><title>Unauthorized Device Command and Control</title><link>https://staging.djini.ai/posts/unauthorized-device-command-and-control/</link><pubDate>Sun, 01 Mar 2026 13:08:49 +0000</pubDate><guid>https://staging.djini.ai/posts/unauthorized-device-command-and-control/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;&#10;&lt;p&gt;The issue was caused by improper access control and missing input validation in the exported activity. The activity was intended to handle queries, but it accepted Intent data from any application without verifying the caller or enforcing permission checks. The supplied extras were forwarded directly into the AI processing pipeline and mapped to device control commands handled by a privileged backend component. Because no caller validation, permission enforcement, or input sanitization was implemented, attacker-controlled input was able to reach system-level APIs and execute sensitive operations.&lt;/p&gt;</description></item><item><title>Intro to Android WebViews and deep links…and how to exploit them</title><link>https://staging.djini.ai/posts/intro-to-android-webviews-and-deep-links-and-how-to-exploit-them/</link><pubDate>Wed, 28 Jan 2026 07:42:31 +0000</pubDate><guid>https://staging.djini.ai/posts/intro-to-android-webviews-and-deep-links-and-how-to-exploit-them/</guid><description>&lt;p&gt;Android WebView is a system component that allows applications to render web content directly inside a native app, and it is one of the most widely used building blocks in the Android ecosystem.&lt;/p&gt;&#10;&lt;p&gt;At the same time, deep links have become the primary way apps expose internal functionality to the outside world. When these two components intersect — when a deep link controls what a WebView loads — the result is one of the most common and dangerous classes of mobile vulnerabilities seen in real-world applications.&lt;/p&gt;</description></item><item><title>From WebView to Remote Code Injection</title><link>https://staging.djini.ai/posts/from-webview-to-remote-code-injection/</link><pubDate>Thu, 22 Jan 2026 14:13:37 +0000</pubDate><guid>https://staging.djini.ai/posts/from-webview-to-remote-code-injection/</guid><description>&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;&#10;&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;&#10;&lt;h2 id="initial-analysis"&gt;Initial Analysis&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="manifest_xml.png" alt="Figure from “From WebView to Remote Code Injection” — manifest xml"&gt;&lt;/p&gt;&#10;&lt;h2 id="the-jsinterface"&gt;The JSInterface&lt;/h2&gt;&#10;&lt;p&gt;&lt;img src="js_bridge_init.png" alt="Figure from “From WebView to Remote Code Injection” — js bridge init"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="js_bridge_finalize-1024x653.png" alt="Figure from “From WebView to Remote Code Injection” — js bridge finalize 1024x653"&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Checks whether the message is indeed handled by this handler (checks the &lt;em&gt;action&lt;/em&gt; attribute).&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;If yes, it handles it accordingly and gets the args from the &lt;em&gt;params&lt;/em&gt; attribute of the message.&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>