Back to skill

Security audit

screen-off

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed macOS display-toggle utility, but users should be careful with options that can turn off the only visible screen or persist display state across reboot.

Before installing, understand that this tool can change monitor state immediately. Run --status first, avoid --force unless you have another way to recover visibility, and use --permanent only when you are comfortable with the display setting surviving reboot.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • 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 (3)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README explicitly documents commands that can disable the only active display and persist that state across reboot, but it does not present a prominent safety warning near those examples about possible blackout, temporary loss of UI visibility, or recovery steps. In the context of an agent skill, this omission increases the chance of accidental self-lockout or disruption when a user or automated system invokes the tool without understanding the consequences.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code’s natural-language interface, including the module docstring and command help text, is written in Chinese only, which imposes a specific language on users. The policy allows locale constraints only when the skill offers opt-in or clearly documents a justified regional scope, neither of which is present here.

Content

No source excerpt is available for this finding.

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Confidence
50% confidence
Finding

Dynamic getattr() with a non-literal attribute name can access arbitrary object attributes, potentially bypassing access controls.

Content

Scanner excerpt · screen-off.py (reported line 66)May include surrounding context.

python
"CGDisplayIsOnline", "CGDisplayIsMain", "CGDisplayPixelsWide",
              "CGDisplayPixelsHigh", "CGDisplayUnitNumber",
              "CGDisplayVendorNumber", "CGDisplayModelNumber"):
    _fn = getattr(_lib, _name)
    _fn.argtypes = [CGDirectDisplayID]
    _fn.restype = ctypes.c_uint32

Static analysis

No suspicious patterns detected.