Security Audit
telegram-mini-app
github.com/sickn33/antigravity-awesome-skillsTrust Assessment
telegram-mini-app 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 3 findings: 2 critical, 0 high, 1 medium, and 0 low severity. Key findings include Unvalidated initDataUnsafe leads to authentication bypass and data manipulation, Direct use of unvalidated parameters in cryptocurrency transaction, Unpinned dependency in npm install command.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 33/100, indicating areas for improvement.
Last analyzed on February 20, 2026 (commit e36d6fd3). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings3
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Unvalidated initDataUnsafe leads to authentication bypass and data manipulation The skill demonstrates the use of `window.Telegram.WebApp.initDataUnsafe` to retrieve user information (e.g., `user.first_name`, `user.id`). The skill itself acknowledges this as a 'high' severity 'Sharp Edge' if not validated. `initDataUnsafe` can be easily tampered with by a malicious client. Without server-side validation of the `initData` signature, an attacker can forge user identities, leading to impersonation, unauthorized access to features, or manipulation of data that relies on user identity (e.g., referral systems, scores, or even payment authorizations if `initData` is used in that context). Implement robust server-side validation for `initData` using the `checkSignature` method provided by the Telegram Web App API. All critical operations and data retrievals relying on `initData` must be preceded by this validation. | LLM | SKILL.md:30 | |
| CRITICAL | Direct use of unvalidated parameters in cryptocurrency transaction The `PaymentButton` component directly uses `amount` and `to` parameters to construct and send a TON blockchain transaction via `tonConnectUI.sendTransaction`. If these parameters are derived from unvalidated user input, a malicious user could manipulate the `amount` to send an incorrect value or change the `to` address to exfiltrate funds to an attacker-controlled wallet. This represents a critical financial security vulnerability. All parameters (`amount`, `to`) used in cryptocurrency transactions must be thoroughly validated on a trusted backend server before the transaction is initiated. This includes type checking, range validation for `amount`, and ensuring `to` is a legitimate and intended recipient address. | LLM | SKILL.md:109 | |
| MEDIUM | Unpinned dependency in npm install command The `npm install @tonconnect/ui-react` command specifies a package without a version number. This will install the `latest` version available at the time of execution. This practice introduces a supply chain risk, as future versions of the package could introduce breaking changes, vulnerabilities, or even malicious code. It makes builds non-deterministic and harder to audit. Always pin dependency versions in `npm install` commands (e.g., `npm install @tonconnect/ui-react@1.0.0`). For production environments, use a `package-lock.json` or `yarn.lock` file to ensure deterministic builds. | LLM | SKILL.md:79 |
Scan History
Embed Code
[](https://skillshield.io/report/e14de0a035481099)
Powered by SkillShield