Skip to content

Security policy

Supported versions

Security fixes land on the current published train (1.1.x). Older lines should upgrade; there is no multi-year LTS. Best-effort triage for the immediately previous minor (1.0.x) continues through approximately 2027-02-27 — after that, upgrade is required. There is no contractual patch SLA.

The current published train is 1.1.x. Applications require >=1.0.0; PyPI publishes v1.1.2.

Version Supported
1.1.x Yes (published train — requirement >=1.0.0; published v1.1.2)
1.0.x Best-effort security triage through approximately 2027-02-27; upgrade to 1.1.x

Reporting a vulnerability

Please do not open a public GitHub issue for security vulnerabilities.

Disclosure channel (required)

Open a private GitHub security advisory. This is the dedicated disclosure channel for Hedron — use it even if you also email the maintainer. Advisories give a private thread, artifact tracking, and coordinated publication.

Process (best-effort)

  1. File the private advisory with the details below.
  2. Expect acknowledgment within a few business days (no contractual security SLA).
  3. Coordinated disclosure is preferred; allow reasonable time before public discussion.
  4. Fixes target the current repository train (1.1.x); see Supported versions above.

Alternate contact

If GitHub advisories are unavailable to you, email odosmatthews@gmail.com (package author / maintainer contact in package metadata) with the same details and note that you could not open an advisory. Prefer the advisory form whenever possible — a personal inbox is not a dedicated security mailbox and is best-effort only.

Include:

  • Affected package(s) and versions
  • A minimal reproduction
  • Impact assessment (confidentiality, integrity, availability)
  • Whether a fix is already known

Severity classes (best-effort):

Class Examples Target acknowledgment
Critical RCE, auth bypass in first-party packages Same or next business day
High CSRF/session break in defaults, XSS via renderer bug Few business days
Medium / Low Hardening gaps, docs misclaims Best-effort backlog

Credit is offered in release notes / advisories when reporters want it. Advisory cadence follows GitHub Security Advisories when a fix ships — there is no fixed monthly bulletin.

Scope

In scope: Hedron first-party packages (hedron, hedron-core, adapters, Explorer, data, charts, jinja) and their documented secure defaults (escaping, CSRF, redirects, trust types, asset URLs).

Out of scope: application-authored HDJ/templates that embed untrusted content, third-party plugins, Posit/Connect host misconfiguration, and vulnerabilities that only appear when operators disable documented secure defaults.

Prefer secure defaults

  • Keep CSRF, TrustedHost, and redirect allowlists enabled.
  • Do not disable escaping or pass untrusted HTML into trusted-HTML APIs.
  • Prefer polling for job status unless you accept the experimental SSE/WebSocket posture (HEDRON_SECURITY_RISK_ACCEPTANCE=experimental-live under production).
  • Under production, omit [tool.hedron] plugins to load none, or set an explicit allowlist.
  • Treat session secrets and worker shared state as production requirements — see Secrets and workers.

Accepted residuals (honest gaps)

These remain accepted residuals on the current train — document them; do not market them away:

  • Plugin / Explorer abuse corpus beyond default guards
  • Explorer live traces (EXPLORER-10-001, Deferred on 0.10.x)
  • Idiomorph / morphing (MORPH-048, Deferred)
  • Human AT sessions (protocol Verified; compensated sessions Planned — #86)
  • Application-owned authz / multi-tenant isolation (out of framework scope)
  • TrustedHtml.reviewed / trusted HDJ as explicit trust sinks
  • Soft CI performance budgets are not product SLOs

See Public 1.0 readiness.

Language

This policy describes maintainer intent. It is not a warranty, SLA, or insurance product.