Skip to content

docs: add security policy and Dependabot configuration - #86

Merged
jeoliva merged 1 commit into
masterfrom
docs/security-policy-and-dependabot
Jul 29, 2026
Merged

docs: add security policy and Dependabot configuration#86
jeoliva merged 1 commit into
masterfrom
docs/security-policy-and-dependabot

Conversation

@jeoliva

@jeoliva jeoliva commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Adds the two files the repo was missing now that CI is in place, and makes the README's security paragraph link to the new policy — the cross-reference was one-way.

SECURITY.md

  • Reporting goes through private vulnerability reporting, which is now enabled on this repo, with a short fallback for anyone who can't reach the form. No invented contacts, no SLA.
  • Spells out that srtgo links whatever libsrt you install, so a libsrt CVE can't be fixed by a change here, and how to check what you actually linked. Worth knowing: the build uses a bare #cgo LDFLAGS: -lsrt and never invokes pkg-config, so pkg-config --modversion srt tells you what pkg-config can see, not what you linked.
  • Recommends libsrt >= 1.5.6 (CVE-2026-55869 and CVE-2026-55868, both CVSS 9.1, both fixed in 1.5.6), quoting the README so the two can't drift. 1.4.2 remains the build minimum — different question, different number.
  • Records GO-2026-5024 / CVE-2026-39824 as an accepted risk: Windows-only, NewNTUnicodeString is never called here, and the fix lands only in x/sys v0.44.0, which declares go 1.25.0.

.github/dependabot.yml

Weekly version updates for gomod and github-actions, the latter grouped so a checkout bump and a setup-go bump arrive as one PR rather than triggering two full libsrt-from-source CI runs.

The one deliberate ignore holds golang.org/x/sys at v0.1.x. From v0.31.0 it requires go 1.23.0 and from v0.42.0 go 1.25.0, either of which would raise the toolchain floor for every downstream consumer of a module that declares go 1.12 on purpose.

It uses a versions range rather than update-types for a specific reason: update-types is dropped on security runs — dependabot-core's Config::IgnoreCondition#ignored_versions returns early when security_updates_only is set — so an update-types ignore would still allow a security PR to drag the go directive up. A versions range is honoured on both paths.

The knowingly accepted consequence is documented in both files: if an x/sys alert is ever raised, this also suppresses its security-update PR. That is not the case today — the advisory for CVE-2026-39824 is unreviewed and carries no affected-version ranges, so it raises no alert, and the repo currently has none open. The ignore configures updates only; it cannot dismiss or hide an alert.

Docs and config only — no Go code changes. go vet clean and the suite passes unchanged.

🤖 Generated with Claude Code

Adds SECURITY.md and .github/dependabot.yml, and links the README's security
paragraph to the new policy so the cross-reference works in both directions.

SECURITY.md documents where to report (private vulnerability reporting is
enabled on this repository), that srtgo is a binding and vendors no copy of
libsrt -- so a libsrt CVE cannot be fixed by a change here -- and the
recommended libsrt floor of 1.5.6. That number matches the README and is
deliberately distinct from the 1.4.2 needed to build. It also notes the build
uses a bare `-lsrt` and no pkg-config, so `pkg-config --modversion srt` is not
a reliable answer to "what did I link".

dependabot.yml enables version updates for gomod and github-actions, and holds
golang.org/x/sys at v0.1.x: from v0.31.0 it requires go 1.23.0 and from v0.42.0
go 1.25.0, either of which would raise the toolchain floor for every consumer
of a module that declares go 1.12 on purpose. The ignore uses a `versions`
range rather than `update-types`, because dependabot-core drops `update-types`
on security runs (Config::IgnoreCondition#ignored_versions returns early when
security_updates_only is set), so an `update-types` ignore would still let a
security PR drag the go directive up.

SECURITY.md records the resulting trade-off as an accepted risk for
GO-2026-5024 / CVE-2026-39824: Windows-only, never called here, and fixed only
in an x/sys release that declares go 1.25.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jeoliva
jeoliva merged commit b413dee into master Jul 29, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant