Back to skill

Security audit

ars-academic-reviewer

Security checks for vulnerabilities and agentic risk

Overview

This is a transparent academic peer-review skill with disclosed optional external-model checks, but users should be careful with private manuscripts and API-key handling.

Before installing, treat manuscripts and review materials as private data. Leave cross-model verification off unless you explicitly want an external provider involved, use dedicated restricted API keys, and avoid running the documented Google curl pattern in environments where process arguments or URLs are logged.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/shared/cross_model_verification.md:455
Finding

Google API Key Exposed in Process Arguments

Content
View full analysis

Vulnerability Details

File Location: references/shared/cross_model_verification.md:455-457
Vulnerability Type: API credential exposure through command-line arguments
Risk Level: Medium

Vulnerable Code

bash
resp="$(curl -sS -w '\n%{http_code}' \
  "https://generativelanguage.googleapis.com/v1beta/models/${ARS_CROSS_MODEL}:generateContent?key=$GOOGLE_AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$(jq -n --arg prompt "$PROMPT" '{

Technical Analysis

The documented Gemini transport places GOOGLE_AI_API_KEY directly in the request URL passed to curl. Consequently, the complete credential-bearing URL may be visible in the process command line while the request is running.

Depending on the operating system and runtime configuration, process arguments may be accessible through process-listing tools, process inspection interfaces, monitoring agents, audit logs, crash diagnostics, shell tracing, or command telemetry. URLs may also be recorded by HTTP proxies and diagnostic infrastructure.

The request uses HTTPS and targets Google's documented API host, so the reviewed behavior does not demonstrate deliberate credential exfiltration. The vulnerability is the unnecessary exposure of a secret through observable command metadata.

Attack Path

  1. A user configures GOOGLE_AI_API_KEY and enables Gemini cross-model verification.
  2. The runtime executes the documented curl command.
  3. The shell expands the API key into the URL before starting curl.
  4. A local user, process monitor, telemetry collector, or logging component captures the command-line arguments or full request URL.
  5. The observer extracts the API key and reuses it against enabled APIs associated with the Google project.

Exploitation requires access to a process-observation or logging surface during execution. The Skill itself does not establish such access.

Impact Assessment

A captured key may permit unauthorized API requests within the restri ...[truncated 532 chars]

Remediation
View remediation

Remediation Suggestions

  1. Keep credentials out of URLs and process arguments. Prefer a provider-supported authorization header or an official SDK whose credential handling does not place secrets in command-line arguments.

  2. Use a protected configuration file when header authentication is unavailable. For example, generate a temporary curl configuration file with mode 0600, execute curl --config <file>, and securely remove the file immediately afterward. Ensure the temporary directory is private and resistant to symlink attacks.

  3. Avoid shell tracing around credential-bearing operations. Disable set -x and ensure command telemetry does not capture expanded secrets.

  4. Restrict the Google API key. Apply API restrictions, quota limits, billing alerts, and any available application or source restrictions. Use a dedicated key for this Skill rather than a credential shared with unrelated services.

  5. Document residual provider constraints. If Google requires query-parameter authentication for this endpoint, explicitly warn users that the URL contains a secret and may appear in process or proxy logs.

  6. Rotate potentially exposed credentials. Users who have executed this pattern in environments with process monitoring, shell tracing, or URL logging should revoke and replace the key.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Memory PoisoningPersistent Context Injection, Context Window Stuffing, Memory Manipulation
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (128)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| eic_agent | `references/eic_agent.md` |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| methodology_reviewer_agent | `references/methodology_reviewer_agent.md` |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| domain_reviewer_agent | `references/domain_reviewer_agent.md` |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| perspective_reviewer_agent | `references/perspective_reviewer_agent.md` |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| **devils_advocate_reviewer_agent** | **`references/devils_advocate_reviewer_agent.md`** |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `references/guides/reviewer_sprint_prompt_source.md` | Canonical marked source for the five inline sprint-reviewer Phase 1/2 prompt fragments and the synthesi

Hidden Instructions

High
Category
Prompt Injection
Confidence
93% confidence
Finding

The HTML comment embeds operational prompt guidance that may be invisible in normal rendered views while still affecting downstream model behavior if the raw file is consumed. Hidden instructions reduce auditability and can be used to smuggle constraints or behaviors that reviewers and integrators may miss, which is risky in an agent skill context.

Content

Scanner excerpt · references/editorial_synthesizer_agent.md (reported line 44)May include surrounding context.

md
5. Produce an immutable, source-ordered, non-ranking Revision Roadmap core
6. Ensure the Revision Roadmap format is directly compatible with `ars-academic-paper` revision mode input

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     This whole-file-dispatched protocol stays inline and is byte-sync-linted; the pointer is not a runtime include. -->

---

Hidden Instructions

High
Category
Prompt Injection
Confidence
91% confidence
Finding

This comment-delimited block contains substantive arbitration instructions, not mere documentation. Even though the content is quality-oriented, placing live behavioral guidance inside hidden comment markers creates an opaque prompt surface and establishes a mechanism that could later conceal malicious or policy-bypassing directives.

Content

Scanner excerpt · references/editorial_synthesizer_agent.md (reported line 144)May include surrounding context.

md
- **Run the opposite-style counterfactual.** Ask: *would this sub-claim's evidentiary assessment change if the same substance were rewritten in the opposite style?* If yes, the assessment is keying off surface form, not substance — **reassess on substance, or mark the sub-claim unevaluable** if its wording genuinely prevents a stable read.

Authorship (whether a sub-claim originated from a human or an AI reviewer) is **not** a decision input — the bias keys off prose style, not the author label.
<!-- SURFACE-FORM-PARITY-BLOCK:END -->

*Epistemic status: this is a prompt-surface instruction at the arbitration layer. It makes the parity standard explicit; it does not prove the model is free of the surface-form prior at runtime. The §F.3.6 directional counts (29 FN human / 10 FP AI) motivate the check; they are not a calibration target it claims to hit.*

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/devils_advocate_reviewer_agent.md (reported line 39)May include surrounding context.

md
## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/domain_reviewer_agent.md (reported line 38)May include surrounding context.

md
## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/eic_agent.md (reported line 37)May include surrounding context.

md
## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/methodology_reviewer_agent.md (reported line 38)May include surrounding context.

md
## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/perspective_reviewer_agent.md (reported line 38)May include surrounding context.

md
## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

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

Content

Scanner excerpt · references/devils_advocate_reviewer_agent.md (reported line 42)May include surrounding context.

md
n-phase paper-blind/paper-visible discipline).

---

## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

### Phase 1 — Paper-content-blind pre-commitment

You will receive:
- A sprint contract (JSON) under `## Contract`.
- Paper metadata only (`title`, `field`, `word_count`) under `## Paper Metadata`.
- When the run is criteria-aware, the pointer-only  binding manifest, the
  Target Criteria Brief, and an exact role-specific binding marker. These
  contain target criteria but no manuscript content.
- No paper content.

You MUST produce, in exactly this order:

1. `## Contract Paraphrase` — one paragraph per `acceptance_dimensions` entry, in your own words from the

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

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

Content

Scanner excerpt · references/domain_reviewer_agent.md (reported line 41)May include surrounding context.

md
n-phase paper-blind/paper-visible discipline).

---

## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

### Phase 1 — Paper-content-blind pre-commitment

You will receive:
- A sprint contract (JSON) under `## Contract`.
- Paper metadata only (`title`, `field`, `word_count`) under `## Paper Metadata`.
- When the run is criteria-aware, the pointer-only  binding manifest, the
  Target Criteria Brief, and an exact role-specific binding marker. These
  contain target criteria but no manuscript content.
- No paper content.

You MUST produce, in exactly this order:

1. `## Contract Paraphrase` — one paragraph per `acceptance_dimensions` entry, in your own words from the

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

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

Content

Scanner excerpt · references/eic_agent.md (reported line 40)May include surrounding context.

md
n-phase paper-blind/paper-visible discipline).

---

## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

### Phase 1 — Paper-content-blind pre-commitment

You will receive:
- A sprint contract (JSON) under `## Contract`.
- Paper metadata only (`title`, `field`, `word_count`) under `## Paper Metadata`.
- When the run is criteria-aware, the pointer-only  binding manifest, the
  Target Criteria Brief, and an exact role-specific binding marker. These
  contain target criteria but no manuscript content.
- No paper content.

You MUST produce, in exactly this order:

1. `## Contract Paraphrase` — one paragraph per `acceptance_dimensions` entry, in your own words from the

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

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

Content

Scanner excerpt · references/perspective_reviewer_agent.md (reported line 41)May include surrounding context.

md
n-phase paper-blind/paper-visible discipline).

---

## v3.6.2 Sprint Contract Protocol

<!-- Canonical inline-prompt source: references/guides/reviewer_sprint_prompt_source.md.
     The dispatched H3 bodies stay inline and are byte-sync-linted; this pointer is not a runtime include. -->

You operate in two phases when invoked under a sprint contract. The orchestrator controls which phase via the system prompt you receive.

### Phase 1 — Paper-content-blind pre-commitment

You will receive:
- A sprint contract (JSON) under `## Contract`.
- Paper metadata only (`title`, `field`, `word_count`) under `## Paper Metadata`.
- When the run is criteria-aware, the pointer-only  binding manifest, the
  Target Criteria Brief, and an exact role-specific binding marker. These
  contain target criteria but no manuscript content.
- No paper content.

You MUST produce, in exactly this order:

1. `## Contract Paraphrase` — one paragraph per `acceptance_dimensions` entry, in your own words from the

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/eic_agent.md (reported line 177)May include surrounding context.

md
- Quick scan of title, abstract, conclusion
- Assessment: Is this topic timely? Does it fit the journal scope?
- No numeric score is recorded at this step — the first-impression scan produces no numeric output; scoring happens downstream per the active mode's output contract
<!--  C6: the former "first impression score (1-10)" fed no output field and is retired.
     Mode-neutral wording: contract modes emit criterion-bound categorical
     judgements; calibration measures a bounded error profile without creating
     a paper-quality score. Neither consumes a first-impression number. -->

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/devils_advocate_reviewer_agent.md (reported line 326)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/domain_reviewer_agent.md (reported line 291)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/editorial_synthesizer_agent.md (reported line 295)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/eic_agent.md (reported line 215)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/methodology_reviewer_agent.md (reported line 322)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Memory Manipulation

High
Category
Memory Poisoning
Confidence
80% confidence
Finding

Skill manipulates agent memory, state, or stored context. Memory corruption can alter personality, override safety rules, or cause unpredictable behavior.

Content

Scanner excerpt · references/perspective_reviewer_agent.md (reported line 305)May include surrounding context.

md
## Output Discipline

Keep your review **brief but complete**. State each finding and your verdict directly; do not pad them with repeated qualifiers, apologetic framing, or restated caveats. Concise does **not** mean under-caveated — preserve every material uncertainty and limitation; cut only redundancy and hedging that adds no information. One clear statement of a caveat beats three softened ones.

*Epistemic status: these are prompt-surface instructions. They make the reviewer's output discipline explicit; they do not, and cannot, prove the model stays pressure-stable at runtime — that would need a separate non-deterministic behavioral eval.*

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · references/guides/reviewer_sprint_prompt_source.md (reported line 1)May include surrounding context.

md
# Reviewer Sprint Prompt Source

This file is the single editing source for the prompt text shared by the five
reviewer seats and the sprint-contract synthesizer. It does not provide a

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/devils_advocate_reviewer_agent.md:111

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/domain_reviewer_agent.md:110

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/eic_agent.md:109

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/guides/reviewer_sprint_prompt_source.md:117

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/guides/sprint_contract_protocol.md:26

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/methodology_reviewer_agent.md:104

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
references/perspective_reviewer_agent.md:110