| Version | Support status |
|---|---|
The latest published GitHub release, and the main branch |
Supported |
| Earlier v4 releases | Best effort only; update to the latest release first unless the report is about upgrade, migration, or signing-key rotation |
| Anything before v4 | Unsupported |
Archived snapshots under archive/ or docs/archive/ |
Unsupported except as forensic evidence for a current vulnerability |
Astra Deck is self-distributed and has no store listing yet, so "latest release" means the newest tag on this repository rather than a store version.
Releases are built on one machine with no CI. Here's what you can confirm today and what you can't.
- Whether a download is intact. Release builds carry
release-manifest.jsonandSHA256SUMScovering every artifact. The steps are in Verifying a download. - Who built it. You can't prove that yet. No release signing key is published, so
SHA256SUMS.sigis absent, and the release path doesn't produce a build attestation. Treat releases as unsigned and prefer the source tree untilallowed-signerscarries a key. - What went into the build. Release builds also carry a CycloneDX SBOM for the npm build and packaging tooling. The extension itself bundles no npm packages.
- What changed and when. Every commit is public and
CHANGELOG.mdrecords each change. The userscripts are generated from the extension source, sonode sync-userscript.jsfollowed bynode scripts/check-userscript-drift.jsshows whether the committed files match it. - What each build can reach. Store-safe builds keep the authenticated companion handoff but drop AI, Ollama and user-selected remote origins. GitHub-full keeps those behind runtime prompts, with Cobalt limited to an authorized self-hosted instance.
- What leaves in a settings export. Exports strip API keys, tokens and other secrets.
- What can change without a release.
selector-packs.jsonandfeature-disable-feed.csvload at runtime, and both are signed (see High-Priority Classes below). The breakage feed can only pause a shipped feature. A Video Hider list you subscribe to also refreshes on its own, and only if you added one.
Use GitHub private vulnerability reporting from the repository Security tab for sensitive reports. Do not open a public issue for vulnerabilities, suspected credential exposure, signing-key incidents, exploit chains, or private logs.
Include:
- Affected Astra Deck version or commit.
- Browser, operating system, and install surface (
store-safe,github-full, userscript, or Astra Downloader companion). - Short impact summary and the vulnerable behavior.
- Minimal reproduction steps with secrets, account data, and local paths redacted.
- Relevant release artifact names, checksums, extension IDs, or advisory links when the issue involves packaging or provenance.
Do not include:
- API keys, cookies, bearer tokens, signing keys, or private repository data.
- Working exploit payloads beyond the minimum needed to explain impact.
- Full private logs, personal data, or unredacted local filesystem paths.
- YouTube account data that is not necessary to validate the issue.
Public issues are still appropriate for non-sensitive bugs, usability problems, documentation mistakes, and feature requests.
- Acknowledgement within 5 business days.
- Initial triage within 10 business days.
- Coordinated disclosure or GitHub Security Advisory timing after a fix path is understood.
- Signing-key exposure, active exploitation, extension permission bypass, and companion loopback authentication bypass reports are treated as urgent where maintainer availability permits.
- Signing-key exposure or release-key custody failure. Releases currently ship ZIP packages plus an unsigned XPI and the userscript, so this covers the CRX maintainer key held for self-hosted builds and any key used for a future store or AMO listing. Treat the unsigned XPI as unverified by design: report its lack of a signature as a packaging gap only if a release claims otherwise.
- Extension permission, host-permission, CSP, or fetch-proxy bypass.
- Astra Downloader loopback authentication, Host-header, DNS-rebinding, or request-validation bypass.
- Remote-feed authenticity.
selector-packs.jsonandfeature-disable-feed.csvare fetched at runtime and can change shipped behavior without a release. Both carry a detached ECDSA P-256 signature verified in the service worker against a public key inside the package, and both fail closed to the last-known-good copy. The breakage feed also signs a sequence and an expiry, and the worker refuses older sequences and expired copies. Report anything that gets an unsigned, mis-signed, substituted, rolled-back, or expired feed accepted. - Dependency compromise or malicious package/update-chain behavior.
- Release artifact, checksum, SBOM, attestation, or provenance mismatch.
- Sensitive export, diagnostics, transcript, cookie, or BYO-key disclosure.