vuln-microsoft – Gitea MSRC CVRF mirror
This repository mirrors raw Microsoft Security Response Center CVRF 3.0 JSON per monthly advisory document, starting in 2017. It is NOT a normalized CSAF/VEX database.
- Source:
https://api.msrc.microsoft.com/cvrf/v3.0/updates - Documents:
https://api.msrc.microsoft.com/cvrf/v3.0/cvrf/{YYYY-Mon} - Full original source objects in
data/cvrf/YYYY/YYYY-Mon.json - Full index in
data/index/updates.json - Synchronization history/state in
state/sync.json - Gitea runner executes every 4h at minute 37 UTC; also manually via Actions.
Setup
-
Create an empty
VULN/vuln-microsoftrepository and push this folder as branchmain. -
On the existing Linux Gitea host runner, install
git,python3,flock(util-linux) andbase64(coreutils). -
Create the persistent folder:
sudo install -d -o act_runner -g act_runner -m 700 /var/lib/act_runner/cache/vuln-microsoft -
The workflow bootstraps the checkout automatically on its first run. No manual clone is needed. Ensure the runner can write to the cache path.
-
Gitea → repository → Settings → Actions: enable write permission for workflow token.
secrets.GITEA_TOKENis Gitea's native token; if your installation uses the customGITEATOKEN, change only the workflow env line. -
Trigger the workflow manually for the initial import.
Manual operation
python3 scripts/sync.py --since-year 2017
python3 scripts/sync.py --since-year 2017 --full (force all monthly documents to be rechecked)
python3 scripts/validate.py
Incremental behavior
The release listing is fetched every run. Missing/new documents, documents with changed release dates, and documents updated in the last 45 days are downloaded. A forced --full periodically helps reconcile older revisions whose metadata may not change. It does not delete unpublished documents automatically; deletion must be handled by a separately reviewed reconcile process.
Security: Host runners execute repository code locally on the Gitea VM; protect main and restrict workflow edit rights.