T09 · Insecure Skill Coding Practices
- Location
SKILL.md:82- Finding
Accessibility enablement and removal commands overwrite the device-wide service list
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:82-87
Additional Locations:references/app-button-remap.md:79-84,docs/rcu-app-button-remap.md:123-126,docs/rcu-app-button-remap-engineering.md:310-312
Vulnerability Type: Destructive replacement of shared accessibility configuration
Risk Level: MediumComplete Code Snippet
bash adb install --no-incremental app-release.apk adb shell settings put secure enabled_accessibility_services <pkg>/<pkg>.RemapService adb shell settings put secure accessibility_enabled 1The documented undo operation is:
bash adb shell settings put secure enabled_accessibility_services ''Technical Analysis
enabled_accessibility_servicesis a shared secure setting containing the complete list of enabled accessibility-service components. The documentedsettings putcommands replace that entire value.The installation command does not merge the remapper component into the existing list. Consequently, enabling the remapper through this procedure removes any previously enabled accessibility services. Likewise, the undo command clears the complete list rather than removing only the remapper.
The modification therefore exceeds the scope implied by enabling or disabling this individual service. Although the remapper legitimately needs accessibility access and the operation is disclosed, the instructions do not preserve unrelated device configuration. No evidence shows malicious intent.
Attack Path
- A device already has one or more accessibility services enabled, such as assistive technology or another user-selected automation or security service.
- The user asks the agent to install and enable the button-remapping Skill.
- The agent follows the documented command:
bash adb shell settings put secure enabled_accessibility_services <pkg>/<pkg>.RemapService - Android replaces the complete enabled-service list with only the remapper component.
- Existing accessibil ...[truncated 818 chars]
- Remediation
View remediation
Remediation Suggestions
Prefer directing the user to Android's Accessibility Settings so the service is enabled or disabled explicitly through the platform UI.
If ADB automation is required:
- Read the current
enabled_accessibility_servicesvalue. - Parse it as a colon-separated component list.
- Add the remapper component only if it is absent.
- Write back the merged list without changing unrelated entries.
- During removal, delete only the remapper component.
- Disable the global
accessibility_enabledflag only when no accessibility services remain. - Verify the resulting list and report the exact change to the user.
Replace the blanket undo command with a component-specific removal procedure. Apply the same correction consistently in
SKILL.mdand all referenced documentation.- Read the current
