Back to skill

Security audit

Essay Humanizer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed local essay-rewriting tool with expected model assets and scripts, though users should be careful with academic-integrity rules, dependency installation, and optional remote hosting.

Install only if you are comfortable running local ML dependencies and downloading the base model. Use a virtual environment, avoid hosted API mode for sensitive essays unless you control the server and transport security, and use the rewritten output only in ways allowed by your institution or publisher.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
scripts/install_deps.sh:9
Finding

Unpinned Dependency Installation with Unconditional Global Upgrades

Content
View full analysis

Vulnerability Details

File Location: scripts/install_deps.sh, line 9
Vulnerability Type: Unpinned third-party dependencies and unsafe environment-wide upgrades
Risk Level: Medium

Vulnerable Code

bash
echo "Installing MLX + inference deps (requires Apple Silicon macOS)..."
pip install --upgrade mlx mlx-lm transformers

The related documentation also recommends unpinned installation of optional server dependencies at SKILL.md, line 87:

bash
pip install fastapi uvicorn[standard]

Technical Analysis

The installation script retrieves mutable package versions and their transitive dependencies from the active Python package index. It neither pins exact versions nor verifies package hashes. The --upgrade option may also replace packages in the user's current Python environment, rather than limiting changes to an isolated environment.

Python package installation can execute package build and installation logic. Consequently, a compromised upstream release, malicious package-index configuration, dependency-confusion condition, or compromised transitive dependency could execute code under the invoking user's account. Even without a malicious package, an incompatible future release could alter audited behavior or break other software in the same environment.

This finding concerns the installation process. No evidence was found that the currently named packages are malicious.

Attack Path

  1. An attacker compromises a named or transitive package release, or influences the package index used by pip.
  2. A user follows the documented Quick Start and runs bash scripts/install_deps.sh.
  3. Line 9 invokes pip install --upgrade without version or hash constraints.
  4. pip downloads the attacker-controlled or otherwise unaudited package version and executes its installation logic.
  5. The payload runs with the permissions of the user who launched the installer and may modify that us ...[truncated 630 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin all direct and transitive dependencies to reviewed versions in a lock file.
  2. Generate and verify cryptographic hashes, and install with pip install --require-hashes.
  3. Create and use a dedicated virtual environment instead of modifying the active environment.
  4. Remove the unconditional --upgrade behavior.
  5. Configure and document a trusted package index.
  6. Apply equivalent version and hash controls to the optional FastAPI and Uvicorn dependencies.
  7. Periodically review and intentionally update the lock file after security and compatibility testing.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

YARA rule 'php_webshell_known': Known PHP webshell families (c99, r57, b374k, WSO, etc.) [webshells]

Critical
Category
YARA Match
Confidence
90% confidence
Finding

YARA rule matched a known webshell pattern (PHP, Python, JSP, or ASPX webshell).

Content

Scanner excerpt · assets/adapters/adapters.safetensors.json (reported line 1)May include surrounding context.

json
mZycC47/P7OTgPOTqRXNA5tR6QOvwfQroaOIM51r+aOUsxGbmDF9i6+gkCu3g/h7naBZU6rtbruknsErrp1+I5EvSsONpMfTnitAo6Ok6FOpYijLn+qI46hGTBN1gmKLvfjJG6XzUiuhzz5DmGROw5zEBpOoWwQLhcoto51fKwuAO4kTqohKG5AIKbOlwC/bh/V4O62XewuUIvVToFvjg6cY7RueQhnbqsLqE6PNgHOjMZpDrP7Iy6odfEOiUv9zrsWUK6HhWGutJZqLrMQQG5FEYjOwKFwri1i225QmfUuYsrCzo8oiK6XcwEOmhfWLhGOoI6LKr4OMfKm7puXRc5Yl4FOu5pHrok7Cg7uuwKu/Ttqrrl/m26XGUOOOzs5rmeGzY5tTzNuSMFHbp0wnY6fTi5OVggRzrn0K068Gi4OhqCVzrdoWM660KfusuDBTuykga7H6aIuqTiVbp33We5f0OluvpfQrtzBtk5psS5unJTkDrKfrK6/tZwu7mXpDhu+7M63RRSOSBmT7lrrHA64nykuda2hTqGlac6w2k/OlOynLitwxY6dlEFO3HyErmLxNo51CkbNwGjibqDBc46sNMBOxty6DhTQ946SQr4OfszDbq9Mmi6C6n9t3P9RzrcjdW6eJa8OAkolDo8i9c6clv2OhEnRzqdZgK6pCC8uiVUWrr6sJo6SsULO7nj8DoNTcs5dhELuoWiYzr9Dpw6GcqBupF8xjq0JF26vb8COw+P2zo8Rsy6OszsuZdgvTnkT846TJS1OhbHZ7qzzC6699IpOrdjhDr7uhI6g9rxuYeToDpgbsU6heyhutHsdLnGG6w5YxRjupYWmbqAjym6/gHwOI3hhrkTvQk7kpLBOmpDuTrtvgo5/4o1OjDWRzuHFGm6iBFRuKP2vzoVAYU6v7kNuwuwBjqQXLk5AqQAu+XQyDno/Ci6XnGBulWlLLpWBJ66yChGOs7377koONA5fhnEOanSybls9uU6bA

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 15)May include surrounding context.

md
| LoRA adapters | `assets/adapters/adapters.safetensors.json` | 12.3 MB base64 JSON; auto-decoded to binary on first run |

YARA rule 'privilege_escalation_tools': Privilege escalation tools and techniques [hacktools]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · assets/adapters/adapters.safetensors.json (reported line 1)May include surrounding context.

json
oivus69Qo4ups2v7rzcYm6rDPiOtJPkLrc/tC62O3puXyVmrl5UAO79THFuTvMb7qED186ddBLOtqFVbrUYo06S1laujZoM7qhPba6l0mxOeW56zrZ8GS54hexOTLEmTik32o6t7UqurlFsDkNQ8I4A2ehugfzNTqY8Pk68PYXum9Ns7qgoiq7vLO0OUKWCDoEiTa6GufEOpjX+blSos46I5KEOt1lhznisr04ipi0Ojhtp7pfo2o6mp6buIm4uTo4dBc6Cz36OWXHKLrdWSG7zvfYOTmU3rrjkDE5XXuROnS7ETqr0qG6H7x8OrO4njqXXp04mc+quO72C7oSdfs67jyPuvPS3Tm+3pA6qu+euL3RpLrcoKO5/JSsun8FF7qEnLs6diktuxCaTjpspyS6Rm5BulmdhLiOcQi7nclCujadUDqZx8U6HnS7uqhGYzpWH6g6ekLGut8FdDk8A/Q66KoyOppqpDoIqTc6xn4yOiapGrsB3DK6MpPbuiRi3jr4LNq6DsbQOdrm5rlrNJw6rt5Ius1rCTvFceK6NQdEulfNR7ouLPc6UhSBupHOeDrWKy26n5d4OdkK9roeEgq6SJCIOuW9bbqtMZ26E/ebun+8UbpTIBM63cL0Or9qfzi7Uy06eJ6Pt9szSrq8iUO6Rr76OdvFDTrZaU65Qb0TuqE6UrpEjI26MJsROCsburp5q965K9+1OmVYq7r9WwI7MJr7OtAv0ToCnv+6j7SvOmHFBzrLGp056WM2Ot8g3rmpewy6YQMDOcLgxjolA1Y5hlTmuWjWCTv/wx66HgfeOgE0cjr80924AhgUugzxMjsfsa+62TpEuuEGOrra8lu5p3N5OXvNMTrfhsQ6DXYJuyJo0DjwopW6FWrWusd9FzoZLKI52YpKugXNT7odFTu68Fm6tyGvUTqi7S66darvOvhco7ha0Cs7EvCPOvdF+rolM086iBRUuGu0Zbr7Yaw6fOG9OS6hWrrYaKO6p1

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill advertises executable components that read and write local files, including decoding adapter data and running installer/inference scripts, but it does not declare any explicit tool scope or permissions. This creates an authorization and transparency gap: an orchestrator or user may invoke the skill without clear awareness that it can modify the filesystem, increasing the risk of unintended file access or writes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The optional hosted API sends user essay text to a remote HTTP service, but the skill provides no privacy, retention, logging, or data-handling warning. Because essay drafts may contain personal, academic, or proprietary content, users could unknowingly transmit sensitive text off-device to a network-accessible service, especially since the server is exposed on 0.0.0.0 for multi-user use.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

This JSON file contains a natural-language note directing the system to 'target human-like variability when humanizing.' That instruction steers output style toward concealing AI characteristics, which is a policy-relevant behavioral directive embedded in config data rather than a neutral statistical description.

Content

No source excerpt is available for this finding.