Commit e6193ab
feat(apkauditor): detect Jetpack Navigation deep-link Intent-extra injection
Adds a rule + correlation check for the forced-navigation bug class reported in
YWH-PGM7888-591 (BookBeat): an exported activity hosts a NavHostFragment, and
NavController.handleDeepLink() trusts the android-support-nav:controller:
deepLinkIds/deepLinkArgs/deepLinkExtras Intent extras from whatever launches it
-- letting any co-installed app force navigation to an arbitrary destination by
numeric ID, bypassing login/profile gating (CWE-284).
- ANDROID_RULES: new 'nav_deeplink_ids' pattern rule matches the Navigation
library's deep-link extra key constants and NavController.handleDeepLink(
call sites in decompiled class content.
- Correlation step (after manifest + dex analysis, before grouping): if that
rule fired AND the app declares an exported activity without a permission,
push one consolidated, named finding ('nav_deeplink_forced_navigation') --
listing the exposed activities and manual verification/PoC steps (apktool +
nav-graph enumeration + adb cold-start test), mirroring the report's own
remediation guidance.
- Verified with a functional test: a decompiled-content sample mirroring the
report's evidence fires the new rule, and the correlation filter correctly
isolates only the truly exported+unprotected activity from a mixed list.
Note: this flags the pattern for manual verification (matching this rule
engine's existing heuristic style) -- it does not walk res/navigation/*.xml to
enumerate destinations/build a PoC the way the report's companion tool does;
that would need AXMLParser support for arbitrary res/navigation XML, tracked as
a possible follow-up.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent b4d27a9 commit e6193ab
1 file changed
Lines changed: 26 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
830 | 830 | | |
831 | 831 | | |
832 | 832 | | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
833 | 838 | | |
834 | 839 | | |
835 | 840 | | |
| |||
3102 | 3107 | | |
3103 | 3108 | | |
3104 | 3109 | | |
| 3110 | + | |
| 3111 | + | |
| 3112 | + | |
| 3113 | + | |
| 3114 | + | |
| 3115 | + | |
| 3116 | + | |
| 3117 | + | |
| 3118 | + | |
| 3119 | + | |
| 3120 | + | |
| 3121 | + | |
| 3122 | + | |
| 3123 | + | |
| 3124 | + | |
| 3125 | + | |
| 3126 | + | |
| 3127 | + | |
| 3128 | + | |
| 3129 | + | |
| 3130 | + | |
3105 | 3131 | | |
3106 | 3132 | | |
3107 | 3133 | | |
| |||
0 commit comments