Back to skill

Security audit

AccessMind

Security checks for vulnerabilities and agentic risk

Overview

This accessibility-audit skill is mostly related to its stated purpose, but it needs Review because it uses broad browser permissions and unsafe audit tooling that could expose page content or weaken browser protections.

Install only in a disposable browser profile or isolated test environment, and audit only sites you are authorized to test. Be aware that the extension can run on every site you visit, screenshots may be sent to local services on fixed ports, and some scripts weaken browser isolation or execute mutable third-party tooling. Avoid using this with banking, admin, intranet, production, or sensitive authenticated pages until permissions, dependency pinning, sandbox flags, and HTML rendering are fixed.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (8)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/full-audit.sh:199
Finding

Arbitrary JavaScript Execution Through Output Directory Injection

Content
View full analysis
> "$report" echo "" >> "$report" node -e " const fs = require('fs'); try { const data = JSON.parse(fs.readFileSync('$OUTPUT_DIR/axe-full-$TIMESTAMP.json', 'utf8')); const violations = data.violations || []; const incomplete = data.incomplete || []; const passes = data.passes || []; console.log('| Kategori | Sayı |'); console.log('|----------|------|'); console.log('| İhlaller | ' + violations.length + ' |'); console.log('| İncelenecek | ' + incomplete.length + ' |'); console.log('| Geçen | ' + passes.length + ' |'); console.log(''); if (violations.length > 0) { console.log('### İhlal Detayları'); console.log(''); violations.forEach(v => { console.log('#### ' + v.id); console.log(''); console.log('- **Etki:** ' + v.impact); console.log('- **Açıklama:** ' + v.description); console.log('- **Yardım:** ' + v.helpUrl); console.log('- **Etkilenen Element:** ' + v.nodes.length); console.log(''); }); } } catch (e) { console.log('Sonuçlar işlenemedi'); } " >> "$report" 2>/dev/null || echo "Sonuçlar işlenemedi" >> "$report" fi ``` The same construction is used for the Lighthouse report: ```bash node -e " const fs = require('fs'); try ...[truncated 1668 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
extension/devtools.js:289
Finding

Untrusted Content Rendered Through Extension innerHTML Sinks

Content
View full analysis
{ const item = document.createElement('div'); item.className = `violation-item ${v.severity}`; item.innerHTML = `
${v.wcag} ${v.severity.toUpperCase()}
${v.message}
${escapeHtml(v.element)} `; item.addEventListener('click', () => highlightElement(v.path)); list.appendChild(item); }); ``` ```javascript log.innerHTML = data.elements.map((el, i) => `
${i + 1}. ${el.tag}: "${el.text}"
` ).join(''); } catch (error) { log.innerHTML = `
Hata: ${error.message}
`; } ``` ```javascript if (response.findings) { resultsDiv.innerHTML = response.findings.map(f => `
${f.wcag}: ${f.message}
`).join(''); } ``` The popup repeats the unsafe AI-result rendering pattern: ```javascript results.findings.forEach(finding => { const li = document.createElement('li'); li.innerHTML = `${finding.wcag}: ${finding.message}`; li.style.borderLeftColor = finding.severity === 'critical' ? '#f87171' : finding.severity === 'serious' ? '#fbbf24' : '#60a5fa'; findingsList.appendChild(li); }); ``` ### Technical Analysis The extension inserts page-derived element text and AI or gateway response fields into `innerHTML`. Only `v.element` is escaped in the violation renderer; fields such as `finding.message`, `finding. ...[truncated 1351 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/accessmind-deep-crawler.py:116
Finding

Chromium Sandbox, Site Isolation, and Web Security Disabled During Untrusted Audits

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
scripts/full-audit.sh:46
Finding

Runtime Execution of Unpinned npm and Python Dependencies

Content
View full analysis
/dev/null || { echo "⚠️ Axe-core CLI çalıştırılamadı" } } run_pa11y() { echo "[2/8] Pa11y tarama..." npx pa11y "$URL" \ --standard "WCAG2$LEVEL" \ --reporter json \ --output "$OUTPUT_DIR/pa11y-$TIMESTAMP.json" 2>/dev/null || { echo "⚠️ Pa11y çalıştırılamadı" } } run_lighthouse() { echo "[3/8] Lighthouse denetimi..." npx lighthouse "$URL" \ --only-categories=accessibility \ --output=json \ --output-path="$OUTPUT_DIR/lighthouse-$TIMESTAMP.json" \ --chrome-flags="--headless --no-sandbox" \ --quiet } ``` The CI documentation also recommends unpinned installations: ```yaml - name: Install dependencies run: | pip install accessmind playwright playwright install chromium npm install -g axe-core pa11y ``` ### Technical Analysis `npx` may download and execute a package when a suitable local package is absent. No exact versions, lockfiles, integrity hashes, or `--no-install` control are used. The CI examples likewise install mutable latest versions, including global npm packages. Consequently, the code actually executed during an audit can differ from the code reviewed. Package compromise, dependency confusion, registry account takeover, or an incompatible upstream release can introduce arbitrary installation scripts and runtime behavior. ### Attack Path 1. An attacker compromises an upstream package, one of its transitive depend ...[truncated 667 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
scripts/agentic-a11y-evaluator.py:848
Finding

Mutable CDN JavaScript Executed Inside Audited Pages

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/voiceover-navigation-analyzer.py:21
Finding

Global Chrome Processes Can Be Killed and User Cache Recursively Deleted

Content
View full analysis
Dict: """Tarama öncesi hazırlık""" await self.close_all_browsers() await self.clear_browser_data() return { "status": "ready", "url": url, "timestamp": datetime.now().isoformat() } ``` ### Technical Analysis The code does not track a browser process created by the audit. Instead, it forcefully kills every process matching broad Chrome and ChromeDriver names. It then recursively removes the user's global Chrome cache rather than using a temporary audit profile. No invocation of `prepare_for_audit()` was identified elsewhere in the reviewed repository, so this is a dormant hazardous capability rather than a confirmed default execution path. It remains directly executable by a caller using the class. ### Attack Path 1. A caller instantiates `ChromeManager` and invokes `prepare_for_audit()`. 2. `pkill -9` immediately terminates all matching Chrome and ChromeDriver processes owned by the user. 3. Unsaved browser work and unrelated auto ...[truncated 571 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
extension/manifest.json:8
Finding

Browser Extension Requests All-Site Access Beyond On-Demand Audit Requirements

Content
View full analysis
" ], ``` ```json "content_scripts": [ { "matches": [""], "js": ["content.js"], "css": ["overlay.css"] } ], ``` ### Technical Analysis The extension already has `activeTab`, which supports user-triggered analysis of the selected page. Nevertheless, it also requests persistent host access to every URL and automatically injects its content script and stylesheet into every matching page. This violates least privilege and unnecessarily places extension code into authentication portals, banking pages, administrative applications, intranet systems, and other sensitive origins. The broad reach magnifies the impact of any current or future extension vulnerability. ### Attack Path 1. A user installs the extension and grants the requested permissions. 2. The browser automatically loads `content.js` on every permitted page, whether or not an audit was requested. 3. A vulnerability in the content script, messaging design, extension UI, or a future update is exposed across all visited origins. 4. A malicious page can interact with the injected extension surface and attempt to influence extension behavior. 5. Any successful extension compromise has a much larger set of sensitive pages available to target. ### Impact Assessment The permissions increase the blast radius of extension defects to virtually all websites visited by the user. The extension also possesses scripting, tabs, and storage capabilities, making least-privilege reduction important even though no direct credential-harvesting behavior was found. ]]>
Remediation
View remediation
` from persistent host permissions. - Remove the globally registered content script. - Use `activeTab` and inject audit code only after an explicit user action. - If persistent access is required for selected sites, use optional host permissions and request the narrowest origin at runtime. - Exclude privileged, browser-internal, file, and local administrative origins. - Document precisely why each permission is necessary. - Add extension-store permission-change review and automated manifest linting. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
extension/background.js:56
Finding

Sensitive Screenshots Sent to Unauthenticated Plaintext Localhost Services

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (152)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The finding suggests no real implementation for many advertised features and also a hardcoded target URL, making the skill much narrower than described. This is dangerous because broad trigger phrases may activate a tool that does something materially different from what the user intended.

Content

No source excerpt is available for this finding.

Unvalidated Output Injection

High
Category
Output Handling
Confidence
98% confidence
Finding

The code inserts AI response fields into innerHTML using template literals without escaping f.severity, f.wcag, or f.message. If the background service, model output, or any upstream component returns attacker-controlled HTML, this can trigger DOM XSS in the extension DevTools context, which is especially dangerous because extension contexts often have elevated privileges and access to sensitive extension APIs.

Content

Scanner excerpt · extension/devtools.js (reported line 479)May include surrounding context.

js
});
    
    if (response.findings) {
      resultsDiv.innerHTML = response.findings.map(f => `
        <div class="ai-finding ${f.severity}">
          <strong>${f.wcag}</strong>: ${f.message}
        </div>

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/aria-guide.md (reported line 58)May include surrounding context.

Landmark Roles

html
<!-- Otomatik landmark'lar -->
<header> → role="banner"
<nav> → role="navigation"
<main> → role="main"

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/behavioral-navigation-workflow.md (reported line 300)May include surrounding context.

... ```

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/common-issues.md (reported line 26)May include surrounding context.

Örnekler:

html
<!-- Bilgi veren -->
<img src="chart.png" alt="2024 satış grafik: %25 artış">

<!-- Dekoratif -->

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/common-issues.md (reported line 26)May include surrounding context.

Örnekler:

html
<!-- Bilgi veren -->
<img src="chart.png" alt="2024 satiş grafik: %25 artiş">

<!-- Dekoratif -->