Skip to content

Add Collabora Online security advisory importer#2205

Open
NucleiAv wants to merge 2 commits intoaboutcode-org:mainfrom
NucleiAv:feat/collabora-importer-1899
Open

Add Collabora Online security advisory importer#2205
NucleiAv wants to merge 2 commits intoaboutcode-org:mainfrom
NucleiAv:feat/collabora-importer-1899

Conversation

@NucleiAv
Copy link
Copy Markdown

@NucleiAv NucleiAv commented Mar 11, 2026

Adds CollaboraImporterPipeline to collect published security advisories from the GitHub Security Advisory REST API for CollaboraOnline/online. Each advisory is parsed for its GHSA id (advisory_id), CVE id (alias), summary, CVSS 3.x severity with version detected from the vector prefix, CWE weaknesses, published date, and reference URL. Pagination is handled via the Link header cursor returned by the GitHub API. Package ecosystem is empty string in the API response so affected_packages is not populated.

…code-org#1899

Adds CollaboraImporterPipeline to collect published security advisories
from the GitHub Security Advisory REST API for CollaboraOnline/online.

Parses GHSA id, CVE alias, CVSS 3.x severity (version detected from
vector prefix), CWE weaknesses, date, and reference URL. Pagination
is handled via the Link header cursor returned by the GitHub API.

Includes 5 unit tests with real API fixture data covering CVSS 3.1,
CVSS 3.0 with CWE, missing GHSA id, missing CVE id, and missing CVSS.

Signed-off-by: newklei <magmacicada@proton.me>
@NucleiAv NucleiAv force-pushed the feat/collabora-importer-1899 branch from 0e0f78b to cc58a31 Compare March 11, 2026 04:28
Signed-off-by: newklei <magmacicada@proton.me>
@NucleiAv NucleiAv force-pushed the feat/collabora-importer-1899 branch from c2577d8 to 77542d8 Compare March 11, 2026 15:24
@NucleiAv NucleiAv closed this Mar 16, 2026
@NucleiAv NucleiAv deleted the feat/collabora-importer-1899 branch March 16, 2026 13:35
@NucleiAv NucleiAv restored the feat/collabora-importer-1899 branch March 16, 2026 13:38
@NucleiAv NucleiAv reopened this Mar 16, 2026
weaknesses.append(int(suffix))

return AdvisoryDataV2(
advisory_id=ghsa_id,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reason to use ghsa_id and not cve_id ?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TG1999 I used GHSA ID as advisory_id since it's always present in the response, while CVE IDs are optional and not every advisory has one. The CVE ID goes into aliases when available.

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.

Ensure we track vulnerabilities from Collabora online

2 participants