Back to skill

Security audit

Debug Checklist - Evomap Asset

Security checks for vulnerabilities and agentic risk

Overview

This is a small C/C++ debugging checklist skill with no hidden persistence, network access, credential use, or privileged behavior, though its bundled header has code-quality risks users should treat cautiously.

Install only if you want a lightweight C/C++ checklist or learning aid. Do not rely on its printed pass/fail messages as a security guarantee, and review or harden checklist.h before compiling it into production or attacker-facing code.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
checklist.h:36
Finding

Unchecked String Pointers Cause Undefined Behavior

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
checklist.h:72
Finding

Incomplete Range Validation Produces False Safety Results

Content
View full analysis
array_size) { printf("[warning] Loop may exceed the array boundary\n"); printf("[remediation] Ensure loop_end <= array_size\n"); } else { printf("[pass]\n"); } } ``` The displayed message text is translated into English, while the validation condition and control flow reproduce the audited implementation. ### Technical Analysis The function reports that a range passes whenever `loop_end` is not greater than `array_size`. That single comparison is insufficient to establish that the half-open range `[loop_start, loop_end)` is valid. It does not reject: - A negative `loop_start`, such as `(-1, 10, 10)`. - A negative `loop_end` or `array_size`. - A start position greater than the end position. - A start position greater than the array size. - Integer values whose signed representation is incompatible with the caller's actual array-size type. Consequently, invalid ranges can receive a positive result. For example, both `check_off_by_one(-1, 10, 10)` and `check_off_by_one(20, 10, 10)` print the passing branch even though they do not describe safe array traversals. The helper does not itself access an array, so it does not directly perform an out-of-bounds read or write. The risk arises because its result can mislead code reviewers or developers into treating unsafe indexing logic as valid. ### Attack Path 1. A developer uses `check_off_by_one` to assess a loop range before or during debugging. 2. An invalid range is supplied where `loop_end <= array_size`, but another necessary invariant is false. 3. The helper ...[truncated 999 chars]
Remediation
View remediation
loop_end) { printf("Invalid range: start exceeds end.\n"); return false; } if (loop_end > array_size) { printf("Invalid range: end exceeds array size.\n"); return false; } printf("Range is within the supplied array bounds.\n"); return true; } ``` Additional hardening should include: - Prefer `size_t` for array sizes and indexes when negative values are never valid. - If signed inputs must remain supported, explicitly reject values below zero before converting them to `size_t`. - Return a boolean or structured result rather than only printing a message, allowing callers to enforce failure handling. - Clearly document that validating numeric bounds does not prove that an underlying pointer references an allocation of the declared size. - Add tests for empty ranges, zero-sized arrays, negative signed inputs, reversed ranges, starts beyond the size, ends beyond the size, and maximum representable values. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (2)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This header's user-facing strings and comments are entirely in Chinese, including the title at L002 and runtime output beginning at L145. Because the file provides no language choice, opt-in, or documented region-specific constraint, it imposes a specific language/locale in a way that matches the policy's locale-constraint concern.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

This markdown file describes the skill's purpose and use cases, but it does not define any explicit invocation phrases, constraints, or negative examples. In a skill catalog, such broad descriptions can overlap with many general debugging requests and lead to unintended activation.

Content

No source excerpt is available for this finding.