Assumptions

May 10, 2026 ยท View on GitHub

This document describes the security assumptions and boundaries of the Hex ecosystem.

For controls that address threats under these assumptions, see Mitigations.

What We Assume

About Maintainers

AssumptionImplication
Development environments may be compromisedBuild provenance cannot be guaranteed without attestations
Maintainers are responsible for their package securityRegistry does not audit package contents
Maintainers may make mistakesLeaked credential detection, but cannot prevent all exposures

About Users

AssumptionImplication
Users execute packages in trusted environmentsRegistry cannot protect against local exploits
Users are responsible for evaluating trustworthinessDownload counts and metadata provided, but no endorsement
Users have secure credential storageTokens stored locally; compromise is user's responsibility

About Infrastructure

AssumptionImplication
Cloud providers (Google Cloud, AWS, Fastly) operate securelyInfrastructure compromise outside our control
TLS provides confidentiality and integrity in transitNo additional transport encryption
Cryptographic primitives (RSA, SHA-256, SHA-512) are secureRSA-PKCS1-SHA512 signatures and SHA-256 checksums depend on this

About Clients

AssumptionImplication
Official clients implement verification correctlySecurity depends on client-side checks
Users use current client versionsOld clients may have vulnerabilities
Clients run in trusted local environmentsLocal cache tampering outside our control

What We Do NOT Guarantee

Package Content

Non-GuaranteeReason
Packages are safe to useWe do not audit source code
Packages do what they claimNo functional verification
No malicious packages existDetection is imperfect; controls reduce but don't eliminate risk

Maintainer Identity

Non-GuaranteeReason
Real-world identity of maintainersAccount verification is email-based only
Organization membership implies employmentNo employment verification

Availability

Non-GuaranteeReason
100% uptimeMaintenance windows and incidents may occur
Protection against all DDoSAttacks may cause temporary unavailability

Historical Packages

Non-GuaranteeReason
All historical versions are safeVulnerabilities may exist in old versions
Retired packages are removedKept available for reproducibility

Security Boundaries

Registry Responsibility

We are responsible for:

  • Protecting registry infrastructure
  • Ensuring integrity of distributed artifacts
  • Authenticating publishing operations
  • Providing audit capabilities

We are NOT responsible for:

  • Security of maintainer environments
  • Security of package contents
  • Security of user environments
  • Vulnerabilities in packages

Trust Model

Tip

What users CAN trust:

  • Artifact matches what maintainer published (integrity)
  • Registry metadata is authentic (signatures)
  • Publishing required authentication

Caution

What users CANNOT assume:

  • Package is safe to execute
  • Maintainer is trustworthy
  • Package has no vulnerabilities
  • Dependencies are safe

Future Improvements

Planned features that will change (but not eliminate) these assumptions:

FeatureImpact on Assumptions
Trusted Publishing (OIDC)Provides build provenance; reduces "maintainer environment" assumption
Malware scanningProvides some content assurance; still cannot guarantee safety
Signed attestationsProvides verifiable claims about build process
WebAuthn/PasskeysReduces account compromise risk

See Mitigations for current status of these features.