If you discover a security vulnerability, please follow these steps:
- Do not create a public issue on this repository.
- In the top navigation of this repository, click the Security tab.
- In the top right, click the Report a vulnerability button.
- Fill out the provided form with:
- A description of the vulnerability
- Steps to reproduce the issue
- Potential impact
- Suggested fix (if you have one)
We will acknowledge your report within 48 hours and provide an estimated timeline for a fix.
Your help is greatly appreciated! Responsible disclosure of security vulnerabilities helps protect our entire community.
Facts a maintainer would need at 2am if the release identity is compromised. Generic incident-response steps (rotating credentials, revoking OAuth apps, publishing advisories) are not duplicated here — GitHub's own docs update faster than a checked-in runbook.
- Release path:
logcships as self-contained per-RID binaries (win-x64, linux-x64, osx-x64) attached to the GitHub Release by.github/workflows/release.yamlon therelease: publishedtrigger, using the workflow's ownGITHUB_TOKEN(contents: write). This repo publishes nothing to NuGet —<IsPackable>false</IsPackable>makes the workflow's NuGet jobs skip via thehas-packagesgate (see ADR-0001). The skipped NuGet job references aNUGET_API_KEYsecret; if that secret exists in this repo's settings it is dead weight — during an incident, delete it. - Fallback: none. There is no publish identity outside GitHub itself — a compromise of the release path IS a compromise of the GitHub account or repository (branch/rule tampering, malicious Release asset swap).
- Owner: @Chris-Wolfgang.
- Downstream consumers: no known Wolfgang.* dependents (this is an end-user CLI, not a library). Unknown third parties may have downloaded release binaries — a compromised release requires editing the Release notes with a warning and deleting/replacing the affected assets, since binaries cannot be recalled.
- Package coordinates for unlisting: none on nuget.org. The unit of revocation is the GitHub Release asset: delete the compromised asset(s) from the release and, if the tag itself is suspect, delete and re-tag from an audited commit.
Every release carries three verifiable artifacts, generated by release.yaml from the exact build that was published:
-
SLSA build-provenance attestation — each
logc-<rid>archive is attested (keyless, workflow OIDC identity) at build time, before it is attached to the release. Verify a download:gh attestation verify logc-win-x64.zip --repo Chris-Wolfgang/Log-Compressor
-
SBOM —
logc.bom.json(CycloneDX JSON) lists the full dependency graph of the shipped binary. -
Reproducible-build manifest —
reproducible-build-manifest.jsonrecords the byte-reproduciblelogc.dllhash, the SDK that produced it, and reference hashes for every release asset. docs/REPRODUCIBLE-BUILD.md walks through rebuilding from source and comparing hashes.
Binary (Authenticode) signing is tracked separately in #153 and is blocked on obtaining a code-signing certificate.