Trust Assessment
upnote received a trust score of 65/100, placing it in the Caution category. This skill has some security considerations that users should review before deployment.
SkillShield's automated analysis identified 5 findings: 0 critical, 5 high, 0 medium, and 0 low severity. Key findings include Unencoded parameters in x-callback-url calls.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 25/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings5
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| HIGH | Unencoded parameters in x-callback-url calls The `scripts/upnote.sh` script constructs `upnote://x-callback-url` URLs using several user-provided inputs without proper URL-encoding. This allows an attacker to inject additional parameters or modify existing ones within the x-callback-url scheme, potentially altering the UpNote application's behavior in unintended ways. For example, an attacker could inject `&new_window=true` or other undocumented parameters into a `noteId` field if it contains special characters like `&` or `=`. While the `urlencode` function is present and used for some parameters (e.g., `--title`, `--text`), it is inconsistently applied. Apply the `urlencode` function to all user-controlled variables before appending them to the `upnote://x-callback-url` string. Specifically, `NOTE_ID` (line 50), `NOTEBOOK_ID` (line 70), `FILTER_ID` (line 85), `MODE` (line 93), and the IDs passed to `--note-id`, `--notebook-id`, `--tag-id`, `--filter-id`, `--space-id` (lines 100-104) should all be URL-encoded. | LLM | scripts/upnote.sh:50 | |
| HIGH | Unencoded parameters in x-callback-url calls The `scripts/upnote.sh` script constructs `upnote://x-callback-url` URLs using several user-provided inputs without proper URL-encoding. This allows an attacker to inject additional parameters or modify existing ones within the x-callback-url scheme, potentially altering the UpNote application's behavior in unintended ways. For example, an attacker could inject `&new_window=true` or other undocumented parameters into a `noteId` field if it contains special characters like `&` or `=`. While the `urlencode` function is present and used for some parameters (e.g., `--title`, `--text`), it is inconsistently applied. Apply the `urlencode` function to all user-controlled variables before appending them to the `upnote://x-callback-url` string. Specifically, `NOTE_ID` (line 50), `NOTEBOOK_ID` (line 70), `FILTER_ID` (line 85), `MODE` (line 93), and the IDs passed to `--note-id`, `--notebook-id`, `--tag-id`, `--filter-id`, `--space-id` (lines 100-104) should all be URL-encoded. | LLM | scripts/upnote.sh:70 | |
| HIGH | Unencoded parameters in x-callback-url calls The `scripts/upnote.sh` script constructs `upnote://x-callback-url` URLs using several user-provided inputs without proper URL-encoding. This allows an attacker to inject additional parameters or modify existing ones within the x-callback-url scheme, potentially altering the UpNote application's behavior in unintended ways. For example, an attacker could inject `&new_window=true` or other undocumented parameters into a `noteId` field if it contains special characters like `&` or `=`. While the `urlencode` function is present and used for some parameters (e.g., `--title`, `--text`), it is inconsistently applied. Apply the `urlencode` function to all user-controlled variables before appending them to the `upnote://x-callback-url` string. Specifically, `NOTE_ID` (line 50), `NOTEBOOK_ID` (line 70), `FILTER_ID` (line 85), `MODE` (line 93), and the IDs passed to `--note-id`, `--notebook-id`, `--tag-id`, `--filter-id`, `--space-id` (lines 100-104) should all be URL-encoded. | LLM | scripts/upnote.sh:85 | |
| HIGH | Unencoded parameters in x-callback-url calls The `scripts/upnote.sh` script constructs `upnote://x-callback-url` URLs using several user-provided inputs without proper URL-encoding. This allows an attacker to inject additional parameters or modify existing ones within the x-callback-url scheme, potentially altering the UpNote application's behavior in unintended ways. For example, an attacker could inject `&new_window=true` or other undocumented parameters into a `noteId` field if it contains special characters like `&` or `=`. While the `urlencode` function is present and used for some parameters (e.g., `--title`, `--text`), it is inconsistently applied. Apply the `urlencode` function to all user-controlled variables before appending them to the `upnote://x-callback-url` string. Specifically, `NOTE_ID` (line 50), `NOTEBOOK_ID` (line 70), `FILTER_ID` (line 85), `MODE` (line 93), and the IDs passed to `--note-id`, `--notebook-id`, `--tag-id`, `--filter-id`, `--space-id` (lines 100-104) should all be URL-encoded. | LLM | scripts/upnote.sh:93 | |
| HIGH | Unencoded parameters in x-callback-url calls The `scripts/upnote.sh` script constructs `upnote://x-callback-url` URLs using several user-provided inputs without proper URL-encoding. This allows an attacker to inject additional parameters or modify existing ones within the x-callback-url scheme, potentially altering the UpNote application's behavior in unintended ways. For example, an attacker could inject `&new_window=true` or other undocumented parameters into a `noteId` field if it contains special characters like `&` or `=`. While the `urlencode` function is present and used for some parameters (e.g., `--title`, `--text`), it is inconsistently applied. Apply the `urlencode` function to all user-controlled variables before appending them to the `upnote://x-callback-url` string. Specifically, `NOTE_ID` (line 50), `NOTEBOOK_ID` (line 70), `FILTER_ID` (line 85), `MODE` (line 93), and the IDs passed to `--note-id`, `--notebook-id`, `--tag-id`, `--filter-id`, `--space-id` (lines 100-104) should all be URL-encoded. | LLM | scripts/upnote.sh:100 |
Scan History
Embed Code
[](https://skillshield.io/report/0ccf2561203f2f5d)
Powered by SkillShield