implicit-intent-audit

Detect implicit-intent, broadcast, and PendingIntent leaks in decompiled Android apps.

48|27|Updated Jul 30, 2026
One-click install
npx skills add https://github.com/abisheikM1/Tribunal --skill implicit-intent-audit-abisheikm1
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: implicit-intent-audit
Source: https://github.com/abisheikM1/Tribunal/tree/main/legacy-harness/skills/implicit-intent-audit
Command: npx skills add https://github.com/abisheikM1/Tribunal --skill implicit-intent-audit-abisheikm1

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Android apps that send Intents or broadcasts without pinning a recipient leak sensitive extras (tokens, PII, auth codes) to any installed app, and mutable PendingIntents let attackers act with the app's identity. Manually grepping decompiled source for these patterns is slow and error-prone. ## Core Features & Use Cases - Static sink detection: Consumes sinks.json from the harness and flags sendBroadcast, setAction, and implicit startActivity sinks, downgrading hits that pin a component and flagging mutable PendingIntents. - Human-run dynamic test hints: Generates adb, am, and Drozer commands for an authorized tester to confirm which apps resolve an action or receive leaked extras. - TTP catalog and chaining playbook: Five documented techniques (T1-T5) mapped to MASVS/MASTG, with chaining paths into api-pivot, exported-components, and webview-audit. - Use Case: During an authorized bug bounty assessment, run the detector against a decompiled APK to find an unprotected sendBroadcast leaking a session token, then confirm it on a test device with a benign logging receiver. ## Quick Start Run the implicit-intent-audit detector against the sinks.json for my target APK hash and list every broadcast or implicit intent that could leak sensitive extras.

Frequently Asked Questions about implicit-intent-audit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find implicit intent leaks in an Android APK?

Decompile the APK, run grep_sinks.py to produce sinks.json, then run audit_implicit_intents.py with the target hash. It groups sendBroadcast, setAction, and implicit startActivity hits by file with risk notes and adb test hints.

How to test Android broadcast interception on a device?

Use adb shell cmd package query-receivers -a <action> to see who claims the action, then register a benign logging receiver or use Drozer app.broadcast.send on an authorized device to observe leaked extras.

What makes a PendingIntent hijackable in Android?

A PendingIntent is hijackable when it is mutable (FLAG_MUTABLE or no immutability flag before API 31) or wraps an empty or implicit base Intent. A recipient can then fill in the blanks and send the Intent with the app's identity and permissions.

Does this skill work without a rooted device or emulator?

Yes for static detection: the audit script only reads sinks.json and prints findings. Dynamic confirmation steps like adb broadcasts and Drozer require an authorized test device, but nothing is auto-executed.

Why does the detector downgrade some sendBroadcast findings?

When setPackage, setComponent, or setClassName appears on the same line, the broadcast is likely targeted rather than implicit, so the note is downgraded. You should still verify the component is not attacker-influenced.