Back to skill

Security audit

Dashboard Manager

Security checks for vulnerabilities and agentic risk

Overview

This skill is a narrow local dashboard helper that reads and writes one configured data.json file, with some data-integrity and install hygiene issues but no evidence of deception, exfiltration, or destructive behavior.

Install only if you want this skill to modify the configured Jarvis dashboard data file automatically. Consider backing up data.json, disabling or controlling autosync if available, and removing the unnecessary fs/path dependency declarations before use.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
index.js:31
Finding

Non-Atomic Database Updates Can Cause Data Loss or Corruption

Content
View full analysis
n.id === noteId); if (note) { note.status = 'processed'; await saveDatabase(db); console.log(`✅ Note #${noteId} marquée comme traitée`); return true; } console.warn(`⚠️ Note #${noteId} introuvable`); return false; } ``` ### Technical Analysis Each mutation loads the entire JSON database, changes an in-memory copy, and overwrites the original file. There is no mutex, serialized write queue, revision check, file lock, transactional database mechanism, or atomic temporary-file replacement. If two exported mutation functions execute concurrently, both can read the same initial version. Each then writes a different modified copy, and the final writer silently discards the first writer's changes ...[truncated 2036 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
skill.json:7
Finding

Unnecessary Registry Dependencies for Node.js Core Modules

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation states that pending notes can be retrieved and marked as processed, but it does not clearly warn users that notes may be automatically transitioned out of the pending state. This can lead to loss of visibility, skipped review, or accidental destruction of workflow state if the automation processes notes unexpectedly.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly describes a silent background loop that reads notes and writes to data.json every few seconds without conversational interaction or an explicit user-facing warning. Autonomous background modification of persisted state can surprise users, hide unintended actions, and make it easier for harmful or erroneous updates to occur without informed consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill's operational description and instructions are presented in French, which effectively forces a specific language for users reading the documentation. Under the policy, language constraints should either be optional for the user or explicitly justified as region- or audience-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

Le code formate explicitement les dates avec toLocaleString('fr-FR', ...), ce qui impose une langue/locale déterminée. La politique demande d'éviter de forcer une langue sans choix utilisateur ou justification clairement documentée, et aucune option d'opt-in ou justification régionale n'apparaît ici.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

La mise à jour du statut système utilise aussi toLocaleString('fr-FR', ...), ce qui impose le français pour les sorties temporelles. Aucune possibilité de sélection de langue/locale ni justification métier explicite n'est fournie dans le fichier.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description is written only in French ("Gère les interactions avec le dashboard Jarvis"), which indicates a language-specific presentation without any stated user choice or region-specific justification. This can violate language/locale policy when the skill does not explicitly offer multilingual support or explain the locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

This JavaScript test file emits all user-facing status and error messages in French, such as the initialization and test-progress logs. The file does not offer any language selection or explain a justified French-only locale requirement, which is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.