Skip to content

Security: koke1997/timenow

Security

SECURITY.md

Security Policy

Supported Versions

Version Support Status
2.4.x ✅ Fully supported
2.1.x ⚠️ Security fixes only
2.0.x ⚠️ Security fixes only
1.0.x ❌ Unsupported
< 1.0 ❌ Unsupported

Reporting a Vulnerability

Please DO NOT open a public GitHub issue for security vulnerabilities.

Instead, report vulnerabilities privately by emailing:

📧 ivan.kokalovic@protonmail.com

Include as much of the following as possible:

  • Description of the vulnerability
  • Steps to reproduce
  • Affected version(s)
  • Potential impact
  • Suggested fix (if any)

Response Timeline

Action Timeframe
Acknowledgement 48 hours
Initial assessment 7 days
Fix (critical) 30 days

We will keep you informed of progress throughout the process.

Scope

In Scope

  • Backend API (authentication, authorization, input validation, injection)
  • SDK clients (data integrity, transport security)
  • Mesh consensus and Ed25519 signing (cryptographic weaknesses, replay attacks)
  • Dependency vulnerabilities (outdated or compromised transitive dependencies)

Out of Scope

  • Self-hosted frontend cosmetic issues (UI glitches, styling inconsistencies)
  • Documentation typos

Disclosure Policy

We follow a coordinated disclosure model:

  • Reporters are asked to keep vulnerability details confidential until a fix is released.
  • We provide a 90-day disclosure window from the initial report before public disclosure.
  • A CVE will be requested for critical issues to ensure broad visibility and traceability.

Security Best Practices for Deployers

  • Run behind a reverse proxy (e.g., Nginx, Caddy, Traefik) — do not expose the backend directly to the internet.
  • Use TLS for all connections to protect data in transit.
  • Restrict access to /metrics — monitoring endpoints should not be publicly reachable.
  • Rotate API keys regularly and revoke unused credentials.
  • Keep Orekit data updated to ensure accurate time reference computations.

Release Verification

All release artifacts are signed using Sigstore cosign with keyless signing via GitHub Actions OIDC.

Verify a release artifact

# Install cosign
# https://docs.sigstore.dev/system_config/installation/

# Download the artifact, signature, and certificate
RELEASE="v2.2.0"
curl -LO "https://github.com/koke1997/timenow/releases/download/${RELEASE}/timenow-cli-${RELEASE}.tar.gz"
curl -LO "https://github.com/koke1997/timenow/releases/download/${RELEASE}/timenow-cli-${RELEASE}.tar.gz.sig"
curl -LO "https://github.com/koke1997/timenow/releases/download/${RELEASE}/timenow-cli-${RELEASE}.tar.gz.cert"

# Verify
cosign verify-blob timenow-cli-${RELEASE}.tar.gz \
  --signature timenow-cli-${RELEASE}.tar.gz.sig \
  --certificate timenow-cli-${RELEASE}.tar.gz.cert \
  --certificate-identity-regexp "https://github.com/koke1997/timenow" \
  --certificate-oidc-issuer "https://token.actions.githubusercontent.com"

Software Bill of Materials (SBOM)

Each release includes a CycloneDX SBOM (timenow-sbom-vX.Y.Z.cdx.json) attached to the GitHub release. This lists all dependencies and their versions for supply chain verification.

Known Security Considerations

  • Ed25519 key generation depends on system entropy. On systems with poor entropy sources (e.g., early-boot VMs, containers without /dev/urandom seeding), key quality may be degraded.
  • Mesh consensus trusts GPS input. GPS signals are spoofable; in high-security environments, consider supplementary time sources or signal authentication.
  • No authentication by default. The backend API ships without authentication enabled. Deployers must configure authentication before exposing the service to untrusted networks.

There aren’t any published security advisories