T09 · Insecure Skill Coding Practices
- Location
scripts/ms-todo-oauth.py:36- Finding
Published OAuth Client Secret Used as an Automatic Fallback
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to manage Microsoft To Do as advertised, but it ships a reusable OAuth client secret and persists sensitive login tokens without permission hardening.
Review before installing. Use your own Azure app registration, do not rely on the embedded fallback secret, avoid passing client secrets on the command line, restrict or remove the local token cache when done, treat exported task JSON as private data, and confirm any delete-list or delete-task action before allowing an agent to run it.
scripts/ms-todo-oauth.py:36Published OAuth Client Secret Used as an Automatic Fallback
scripts/ms-todo-oauth.py:64OAuth Token Cache Is Persisted Without Enforced Owner-Only Permissions
scripts/ms-todo-oauth.py:1267OAuth Client Secret Can Be Supplied Through Process Arguments
requirements.txt:6Dependencies Are Installed from Unbounded Version Ranges Without Integrity Pinning
The README admits built-in fallback Azure app credentials and a committed client secret in the script, which is materially more sensitive than a normal task-management CLI. Shipping embedded OAuth confidential-client credentials enables anyone with the skill to reuse the application identity and can facilitate unauthorized Graph access attempts, tenant abuse, or secret leakage and replay.
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Referenced artifact was not completely inspected
3. Built-in fallback values in `scripts/ms-todo-oauth.py`
Detected: suspicious.dynamic_code_execution, suspicious.exposed_secret_literal