Skip to content

Security: Gracker/SmartPerfetto

Security

SECURITY.md

Security Policy

Reporting a Vulnerability

SmartPerfetto processes Android performance traces, which may contain sensitive device information (app package names, system calls, kernel events). We take security and privacy seriously.

If you discover a vulnerability, please do not file a public GitHub issue. Instead:

Preferred: Use GitHub's private security advisory reporting.

Alternative: Email smartperfetto@gracker.dev with:

  • A description of the vulnerability and its impact
  • Steps to reproduce (a minimal proof of concept helps)
  • Your name / handle for attribution (optional)

The in-product Agent-assisted feedback flow follows the same boundary. Marking a candidate as security-sensitive prevents a public draft and routes the user to the private advisory path. SmartPerfetto never submits the report automatically.

Response Timeline

Phase Target
Acknowledgement Within 48 hours
Initial assessment Within 7 days
Patch + public advisory Within 30 days (critical) / 90 days (non-critical)

If a vulnerability is actively being exploited, we may publish a patched release before the full disclosure window elapses.

Scope

In scope:

  • SmartPerfetto backend (backend/)
  • SmartPerfetto Perfetto plugin (perfetto/ui/src/plugins/com.smartperfetto.AIAssistant/)
  • Skill system (backend/skills/)
  • CI/CD workflows (.github/workflows/)
  • Shell scripts in scripts/ and backend/scripts/

Out of scope:

  • The upstream Perfetto project (perfetto/ submodule root) — please report upstream Perfetto issues to google/perfetto.
  • Third-party dependencies — please report to the respective maintainers.
  • Social engineering, physical attacks, DoS against our infrastructure.

Supported Versions

SmartPerfetto is pre-1.0 and under active development. Security patches target main; older tags receive fixes only on request.

Version Supported
main (latest)
Tagged 0.x releases ⚠️ Best effort

Our Security Practices

  • No secrets in repo: API keys, tokens, and credentials live in .env files (gitignored) or GitHub Secrets.
  • LLM trust boundary: User-provided trace data and AI-generated content never flow into SQL statements or shell commands without validation.
  • Sandboxed trace processing: trace_processor_shell runs as a subprocess with restricted HTTP RPC ports (9100–9900).
  • Input redaction: Logged request bodies and device properties go through sanitizeLogData before persistence (see backend/src/services/sessionLogger.ts).
  • Public-artifact boundary: Agent-assisted GitHub drafts and local contribution bundles use the shared public-artifact sanitizer. Drafts reject structural prompt attacks and redact credentials, emails, device/network identifiers, absolute paths, and package identities before preview.
  • Validated Agent output: External-issue triage runs without tools, accepts only a bounded JSON contract with real source-run references, and falls back deterministically when provider pinning or validation fails.
  • No GitHub write credential: The feedback assistant builds an HTTPS issues/new URL only. It accepts no GitHub token and calls no GitHub API.

Acknowledgements

We will credit reporters in release notes unless requested otherwise. Thank you for helping keep SmartPerfetto safe.

There aren't any published security advisories