The sweep the operator asked for after the nginx finding: which other projects publish CVEs somewhere the scanner cannot use?
Before the changelog-attribution fix: 20 unusable sources. After: 5 — and all five are redundant, because the same project also publishes an advisory feed (redis, gitea, minio, clickhouse). Nothing is lost through those.
One real find, the same shape as nginx.ONLYOFFICE/DocumentServer publishes no GitHub advisories, and the registry pointed its CHANGELOG.md at the GitHub blob page — 636KB of markup in which the release headings do not survive HTML-stripping. Result: 24 CVEs visible, 0 attributable. The raw URL attributes all 24.
Rather than fix one registry line, advisory-scan now normalises github.com/../blob/.. → raw.githubusercontent.com, fixing every entry present and future. lasuite-drive bumps documentserver, so this was live.
Genuinely blind after all that: mattermost-lts and mumble — no advisory feed, no attributable changelog, no CVE data anywhere the registry points. mattermost is the notable one: it does publish security bulletins, but client-side rendered, so a text sweep sees nothing. Their scans can therefore report 0 while nothing was measured, so /cve-check now renders those two as ? with the reason.
The output deliberately separates a blind recipe from an unparseable page: conflating them made 5 harmless redundancies read as 5 gaps, which is the kind of noise that gets a security signal ignored.
22 recipes · 2 with NO usable CVE source: mattermost-lts, mumble
· 5 unparseable page(s) elsewhere (harmless where a feed covers them)
76 tests unchanged.
The sweep the operator asked for after the nginx finding: which other projects publish CVEs somewhere the scanner cannot use?
**Before the changelog-attribution fix: 20 unusable sources. After: 5 — and all five are redundant**, because the same project also publishes an advisory feed (redis, gitea, minio, clickhouse). Nothing is lost through those.
**One real find, the same shape as nginx.** `ONLYOFFICE/DocumentServer` publishes **no** GitHub advisories, and the registry pointed its `CHANGELOG.md` at the GitHub **blob** page — 636KB of markup in which the release headings do not survive HTML-stripping. Result: 24 CVEs visible, **0 attributable**. The raw URL attributes all 24.
Rather than fix one registry line, `advisory-scan` now normalises `github.com/../blob/..` → `raw.githubusercontent.com`, fixing every entry present and future. lasuite-drive bumps documentserver, so this was live.
**Genuinely blind after all that: `mattermost-lts` and `mumble`** — no advisory feed, no attributable changelog, no CVE data anywhere the registry points. mattermost is the notable one: it *does* publish security bulletins, but client-side rendered, so a text sweep sees nothing. Their scans can therefore report `0` while nothing was measured, so `/cve-check` now renders those two as **`?`** with the reason.
The output deliberately separates a blind **recipe** from an unparseable **page**: conflating them made 5 harmless redundancies read as 5 gaps, which is the kind of noise that gets a security signal ignored.
```
22 recipes · 2 with NO usable CVE source: mattermost-lts, mumble
· 5 unparseable page(s) elsewhere (harmless where a feed covers them)
```
76 tests unchanged.
Follow-up to the nginx blind spot. Sweeping all 22 recipes for sources whose CVEs
are USABLE (structured advisory feed, or a changelog attributable to releases)
rather than merely visible.
Before the changelog-attribution fix: 20 unusable sources. After: 5, and all five
are redundant - the same project also publishes an advisory feed (redis, gitea,
minio, clickhouse), so nothing is actually lost.
One real find, same shape as nginx: ONLYOFFICE/DocumentServer publishes NO GitHub
advisories, and the registry pointed its CHANGELOG.md at the GitHub *blob* page -
636KB of markup in which the release headings do not survive HTML-stripping, so 24
CVEs were visible and NONE attributable. The raw URL attributes all 24. Rather than
fix one registry line, advisory-scan now normalises github.com/../blob/.. to
raw.githubusercontent.com, which fixes every entry present and future.
lasuite-drive bumps documentserver, so this was live.
Genuinely blind after all that: mattermost-lts and mumble - no advisory feed, no
attributable changelog, no CVE data anywhere the registry points. mattermost is the
notable one: its bulletins are client-side rendered, so a regex sweep sees nothing.
Their scans can report 0 while nothing was measured, so /cve-check now renders those
recipes as ? and says why.
The audit output distinguishes a blind RECIPE from an unparseable PAGE, because
conflating them made 5 harmless redundancies look like 5 gaps.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The sweep the operator asked for after the nginx finding: which other projects publish CVEs somewhere the scanner cannot use?
Before the changelog-attribution fix: 20 unusable sources. After: 5 — and all five are redundant, because the same project also publishes an advisory feed (redis, gitea, minio, clickhouse). Nothing is lost through those.
One real find, the same shape as nginx.
ONLYOFFICE/DocumentServerpublishes no GitHub advisories, and the registry pointed itsCHANGELOG.mdat the GitHub blob page — 636KB of markup in which the release headings do not survive HTML-stripping. Result: 24 CVEs visible, 0 attributable. The raw URL attributes all 24.Rather than fix one registry line,
advisory-scannow normalisesgithub.com/../blob/..→raw.githubusercontent.com, fixing every entry present and future. lasuite-drive bumps documentserver, so this was live.Genuinely blind after all that:
mattermost-ltsandmumble— no advisory feed, no attributable changelog, no CVE data anywhere the registry points. mattermost is the notable one: it does publish security bulletins, but client-side rendered, so a text sweep sees nothing. Their scans can therefore report0while nothing was measured, so/cve-checknow renders those two as?with the reason.The output deliberately separates a blind recipe from an unparseable page: conflating them made 5 harmless redundancies read as 5 gaps, which is the kind of noise that gets a security signal ignored.
76 tests unchanged.