Back to skill

Security audit

accessibility-auditor

Security checks for vulnerabilities and agentic risk

Overview

This skill provides accessibility auditing guidance and examples; its risks are mainly copy-paste CI hardening issues, not hidden or malicious behavior.

Safe to install for accessibility-audit assistance. Before using the CI/CD sample, pin npm packages and GitHub Actions versions, prefer lockfile-installed binaries such as npx --no-install or package scripts, and restrict workflow permissions to the minimum needed for reporting.

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
references/examples.md:1033
Finding
Unpinned Third-Party Packages Executed in the CI Pipeline## Vulnerability Details **File Location**: `references/examples.md`, lines 1033-1064 **Vulnerability Type**: Unpinned executable CI dependencies **Risk Level**: Medium ### Vulnerable Code ```yaml - name: Start application run: | npm start & npx wait-on http://localhost:3000 - name: Install accessibility testing tools run: | npm install -g @axe-core/cli npm install -g pa11y npm install -g lighthouse - name: Run axe-core accessibility tests run: | axe http://localhost:3000 \ --tags wcag2a,wcag2aa,wcag21aa \ --reporter json \ --output axe-results.json - name: Run Pa11y accessibility tests run: | pa11y http://localhost:3000 \ --standard WCAG2AA \ --reporter json \ --output pa11y-results.json - name: Run Lighthouse accessibility audit run: | lighthouse http://localhost:3000 \ --only-categories=accessibility \ --output=json \ --output-path=lighthouse-a11y.json \ --chrome-flags="--headless" - name: Run Playwright accessibility tests run: npx playwright test tests/accessibility/ ``` ### Technical Analysis The example CI workflow installs globally or invokes several npm packages without specifying reviewed, immutable versions. The global `npm install` commands resolve the currently published versions of `@axe-core/cli`, `pa11y`, and `lighthouse`. Likewise, `npx wait-on` and `npx playwright` may download packages from the configured registry if suitable local installations are unavailable. This behavior makes the code executed by the workflow mutable without any corresponding change to the repository. Package installation can execute package lifecycle scripts, while the resulting CLI tools execute directly inside the CI runner. A c ...[truncated 2204 chars]
Remediation
## Remediation Suggestions 1. Add all accessibility tools and helper CLIs to the project's `devDependencies` using exact, reviewed versions: ```json { "devDependencies": { "@axe-core/cli": "REVIEWED_EXACT_VERSION", "lighthouse": "REVIEWED_EXACT_VERSION", "pa11y": "REVIEWED_EXACT_VERSION", "playwright": "REVIEWED_EXACT_VERSION", "wait-on": "REVIEWED_EXACT_VERSION" } } ``` 2. Commit the generated `package-lock.json` and continue installing dependencies exclusively with `npm ci`. 3. Remove global `npm install -g` commands from the workflow. 4. Invoke lockfile-installed binaries through package scripts or `npx --no-install`, which prevents `npx` from silently downloading missing packages: ```yaml - name: Start application run: | npm start & npx --no-install wait-on http://localhost:3000 - name: Run Playwright accessibility tests run: npx --no-install playwright test tests/accessibility/ ``` 5. Use dependency review, automated update tooling, provenance verification, and periodic package audits before accepting version changes. 6. Define explicit least-privilege GitHub Actions permissions, such as `contents: read`, and grant pull-request write access only to the specific job that requires it. 7. Pin third-party GitHub Actions to reviewed immutable commit SHAs rather than mutable major-version tags. 8. Avoid exposing repository secrets to workflows triggered by untrusted pull-request content.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (8)

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
> 📎 **Code example 1** (javascript) — see [references/examples.md](references/examples.md)
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The GitHub Actions workflow runs `npx playwright test tests/accessibility/` without pinning the Playwright package version. If Playwright is not already installed as a locked project dependency, `npx` may resolve and execute a package version from the registry at runtime, creating a supply-chain risk and undermining build reproducibility. In CI context, this is moderately dangerous because the command executes code automatically on every workflow run.

Static analysis

No suspicious patterns detected.