CSAF Documents

New Document
Tracking IDTitle CategoryStatus CVSS v3CVSS v4 Release Date
ndaal-sa-2026-001 ndaal Security Advisory: nvulnlookup v0.1.23 Initial Release csaf_informational_advisory final - -
ndaal-sa-2026-002 ndaal Security Advisory: nvulnlookup Security Assessment Results csaf_informational_advisory final - -
ndaal-sa-2026-013 rust-doctor: detect_programming_language complexity — accepted risk csaf_informational_advisory final - -
ndaal-sa-2026-014 thiserror-impl multiple versions in dependency tree — no impact csaf_informational_advisory final - -
ndaal-sa-2026-015 foldhash multiple versions in dependency tree — no impact csaf_informational_advisory final - -
ndaal-sa-2026-017 ndaal Security Advisory: nvulnlookup /api/v1/* public-read design — Python test auth-assertion failures are by design csaf_vex final 5.3 6.9
ndaal-sa-2026-018 ndaal Security Advisory: vl-web Nuclei scan 2026-04-22 — clickjacking header gap fixed; 8 findings confirmed false positives csaf_vex final 4.3 5.3
ndaal-sa-2026-019 ndaal Security Advisory: RUSTSEC-2026-0104 — rustls-webpki CRL parser panic — fixed in nvulnlookup 0.1.32 csaf_security_advisory final 5.3 6.9
ndaal-sa-2026-033 ndaal VEX Advisory: 7 rprobe-transitive RUSTSEC findings — not_affected (test-only dev-dependency) csaf_vex final - -
ndaal-sa-2026-035 ndaal Security Advisory: v0.1.37 vendor-dashboard handler hangs on empty-source SOURCE_INDEX scan — fixed in v0.1.38 csaf_security_advisory final 7.5 8.7
ndaal-sa-2026-037 ndaal Informational Advisory: v0.1.40 — VulnStorage::new_in_memory() refactor enables miri soundness gate (16 test files migrated to redb InMemoryBackend, ~130 call sites simplified) csaf_informational_advisory final - -
ndaal-sa-2026-038 ndaal Informational Advisory: v0.1.40 — EPSS/KEV enrichment feeder switches from community KEV-restricted GitHub CSV to FIRST.org bulk dataset; KEV flag now accurately cross-referenced against the CISA KEV catalog (table grows from ~1,200 to ~300,000+ rows; kev: true no longer hard-coded) csaf_informational_advisory final - -
ndaal-sa-2026-039 ndaal Informational Advisory: v0.1.41 — vendor-dashboard recent-25 tables on CVE-5.0 sources (vulnrichment / cvelistv5 / ubuntu / rust) regressed to render empty Severity / Published / Title columns from v0.1.36 onwards; the helpers in `routes/vendor_dashboard.rs` only walked legacy CSAF / OSV paths and missed `/containers/cna/...` and `/cveMetadata/...`. v0.1.41 ships a shared `routes/cve5.rs` module with the canonical CVE 5.0 / NVD / CSAF / OSV / EUVD extractors and rewires both `routes/home.rs` and `routes/vendor_dashboard.rs` to delegate to it; the dashboard helpers retain their CSAF / OSV first-pass logic and fall back to cve5 for CVE-5.0-shaped rows. Bonus fix: the lifted `extract_title` now also reads `/containers/cna/title` and `/containers/cna/descriptions[lang=en].value`, two paths the pre-v0.1.41 `home.rs::extract_title` was also missing. csaf_informational_advisory final - -
ndaal-sa-2026-040 ndaal Informational Advisory: v0.1.42 — CSAF Trusted Provider downloader (`crates/vl-feeders/src/csaf_downloader.rs`) parsed RFC 4180 quoted CSV fields verbatim from v0.1.0 through v0.1.41. Red Hat (the canonical quoted-CSV provider) ships every path in `changes.csv` as `"YYYY/rhsa-YYYY_NNNN.json"`; the parser stored those quotes inside `AdvisoryRef::path` and `join_url` percent-encoded each `"` as `%22`, yielding dead URLs of the form `…/advisories/%22YYYY/rhsa-YYYY_NNNN.json%22` that always returned HTTP 404. Net effect: zero Red Hat advisories ever imported on v0.1.0..v0.1.41 and the 404 storm contributed to operator-facing HTTP timeouts under feeder load. v0.1.42 introduces `strip_csv_quotes(s: &str) -> &str` and applies it to every CSV field consumed by `parse_changes_csv` and `parse_index_txt`; three regression-pin tests in `csaf_downloader::tests` lock the fix. csaf_informational_advisory final - -
ndaal-sa-2026-041 ndaal Informational Advisory: v0.1.42 — daemon's tokio runtime split into dedicated HTTP and feeder executors so heavy feeder phases (CWE enrichment scan, NVD page parse, Debian 72 MB tracker parse, EPSS gz decompress) no longer starve HTTP request handlers. v0.1.0..v0.1.41 spawned every feeder loop on the same 4-worker `#[tokio::main]` runtime that served HTTP, producing multi-minute timeouts on /dashboards/* and /api/v1/* during each feeder cycle. v0.1.42 introduces `crates/vl-web/src/feeder_runtime.rs` with a `pub fn build_feeder_runtime()` helper, trims the HTTP runtime from `worker_threads = 4` to `worker_threads = 2`, rewires every `tokio::spawn(...)` in the feeder block of `main.rs` to `feeder_handle.spawn(...)` (25 sites), and adds `VL_FEEDER_WORKER_THREADS` for operator tuning. Total daemon capacity 4 → 6 worker threads (2 HTTP + 4 feeder); isolation enforced. csaf_informational_advisory final - -
ndaal-sa-2026-042 ndaal Informational Advisory: introduction of the dashboard-branding CSAF 2.1 vendor extension across the ndaal CSAF Trusted Provider feed. All 41 existing 2026 advisories (ndaal-sa-2026-001 through ndaal-sa-2026-041) gained one `document.x_extensions[]` element carrying operator-facing dashboard labels — `publisher_brand: 'ndaal Advisories Database'` (rendered in the nvulnlookup `/dashboards/<slug>` page <h1>) and `dashboard_short_name: 'ndaal'` (rendered in the navbar dropdown). Two new schema files ship at `csaf/extensions/dashboard-branding_1.0.0.json` (extension content schema, $id `https://ndaal.eu/.well-known/csaf/extensions/dashboard-branding_1.0.0.json`, SemVer-suffixed per CSAF 2.1 extension URL regex) and `csaf/extensions/dashboard-branding-metadata_1.0.0.json` (extension metadata, `valid_locations: [{path: '/document/x_extensions', max_occurrence: 1}]`, `requirement: 'Optional'`). `csaf/provider-metadata.json` additionally carries `publisher.x_publisher_brand` + `publisher.x_dashboard_short_name` (provider.json schema does not set additionalProperties:false on publisher). All 123 sidecar files (41 advisories x SHA-256 / SHA-512 / SHA3-512) regenerated so on-disk hashes match the post-enrichment JSON bytes. Validator behaviour unchanged: 0 NEW errors per advisory after enrichment. Compliant with OASIS CSAF 2.1 Draft 2+. csaf_informational_advisory final - -
ndaal-sa-2026-043 ndaal Informational Advisory: strict CSAF 2.1 validation repair sweep across 41 prior 2026 advisories. Adds `csaf/repair_csaf_validation_errors.sh` (idempotent, 18 reparation patterns A-R) plus `repair_csaf_validation_errors.bats` (16-test bats sister). Repairs three categories of pre-existing schema violations: (1) CSAF 2.0 vestiges that 2.1 rejects (`cwe`->`cwes[]`, `scores`->`metrics`, `purl`->`purls[]`, missing `cwes[].version`); (2) §6.1.x semantic rules not previously enforced (informational must not have /vulnerabilities, security_advisory must have known_affected, vex must have per-vulnerability notes + cve/ids, known_not_affected needs flags[], conflicting product_status buckets, status/version/revision_history reconciliation, informational external reference); (3) CVSS v3/v4 misalignments (cvss_v4 v3-name fields, vectorString not decomposed into named properties, baseScore mismatches recomputable via the `cvss` Python module). Patterns N + O optionally consume the `cvss` Python module for v3/v4 score recompute + vector decomposition; both no-op if absent. Validation result post-sweep: 42 / 42 PASS strict csaf-validator 0.4.1 (no `--allow-validator-bugs` filter) + 42 / 42 PASS OASIS-hosted jsonschema (Python jsonschema Draft 2020-12). Important spec correction: an earlier note in CLAUDE.md claimed `purl` was a `csaf-validator 0.4.1` schema bug — it is NOT. CSAF 2.1 actually renamed `product_identification_helper.purl` (string) to `purls` (array of strings); Pattern H performs the migration. Idempotent: re-runs on a clean tree produce zero byte-changes. Sidecar checksums regenerated for all 41 modified advisories (123 sidecars across SHA-256 / SHA-512 / SHA3-512). csaf_informational_advisory final - -
ndaal-sa-2026-044 ndaal Informational Advisory: strict CSAF 2.1 stance pinned for non-UTF-8 advisories + per-distribution resilience added to the CSAF importer. (1) 77 of 85,559 (0.09%) openSUSE/SUSE CSAF advisories ship non-UTF-8 bytes inside JSON string fields, violating RFC 8259 §8.1 and CSAF 2.1 §9.1.5; `crates/vl-feeders/src/csaf_generic.rs` now skips these advisories cleanly with an RFC-cited `tracing::warn!` and a pinning unit test (`test_read_to_string_rejects_non_utf8`) freezes the strict-decode contract. (2) TuxCare's provider-metadata.json advertises 144 distributions of which 4 (on repo.tuxcare.com — centos7-els + oraclelinux7-els × advisories+vex) return HTTP 404 on both index.txt and changes.csv; `crates/vl-feeders/src/csaf_downloader.rs` no longer propagates the first per-distribution discovery failure with `?` — it logs a warning, increments `report.failed`, and continues with sibling distributions, so the 140 working TuxCare distributions on security.tuxcare.com now import successfully instead of being aborted by the first 404. Byte distribution across the 77 non-UTF-8 files: 30× 0xae (®), 26× 0xe9 (é), 20× 0xa0 (NBSP), 16× 0xf6 (ö), 10× 0xb3 (³), 10× 0xb9 (¹), 9× 0xa7 (§), 4× 0xea (ê), 3× 0xfc (ü), 3× 0xb0 (°), 2× 0xe1 (á), 1× 0xb6 (¶), 1× 0xf8 (ø), 1× 0xb2 (²), 1× 0xed (í). Year distribution: 2019:1, 2020:7, 2021:3, 2022:6, 2023:12, 2024:5, 2025:17, 2026:23. Not a security vulnerability under CVSS — no CIA impact; severity informational. Sidecar checksums (.sha-256/.sha-512/.sha3-512/.blake3-512/.shake256-512) regenerated. csaf_informational_advisory final - -
ndaal-sa-2026-045 ndaal Informational Advisory: capability-based filesystem hardening — cap-std / cap-tempfile workspace declaration, `vl_core::path_security` primitive promotion, and 57-vector exhaustive path-traversal regression suite csaf_informational_advisory final - -
ndaal-sa-2026-046 ndaal Security Advisory: GitHub Actions CI workflow hardening — pin third-party actions to commit SHAs, persist-credentials: false, concurrency block, permission documentation (warden WRD-311 / WRD-730 / WRD-840 / WRD-842) csaf_security_advisory final - -
ndaal-sa-2026-047 ndaal Security Advisory: Path traversal in CSAF export via attacker-controlled tracking ID (CWE-22) — fixed in csaf-crud 0.3.3 csaf_security_advisory final - -
ndaal-sa-2026-073 ndaal Security Advisory: CVSS v4 metric serialized with CVSS v3 property names in the CSAF data model — fixed in 0.3.4 csaf_security_advisory final 3.3 4.8
ndaal-sa-2026-075 ndaal Information Advisory: ndaal_public_nvulnlookup 0.1.48 — CWE dashboard relocated under /attacks/ with 308 redirects, five-family hash sidecar contract enforced everywhere, new test_ndaal_binsec gate csaf_informational_advisory final - -
ndaal-sa-2026-077 ndaal Information Advisory: update_ansible_role.sh hardening — version-drift fix + section-aware Cargo.toml fetch + 5-sidecar contract on both Ansible roles csaf_informational_advisory final - -
ndaal-sa-2026-079 ndaal Information Advisory: mimetype-cli 0.1.3 — cap-std / cap-tempfile v3 → v4 supported-major bump (3.4.5 → 4.0.2) + 5 transitive crates drop off the dependency graph csaf_informational_advisory final - -
ndaal-sa-2026-082 ndaal Information Advisory: ndaal_public_nvulnlookup vl-web — JSON-API full-text search (/api/v1/vulnerabilities/search) returned 503/empty without Meilisearch and rejected the limit query parameter; embedded redb fallback + limit parsing restore parity with the HTML /search page csaf_informational_advisory final - -
ndaal-sa-2026-091 ndaal Informational Advisory: /kev and /recent pagination never advanced — numeric query parameters were dropped by parse_query csaf_informational_advisory final - -
ndaal-sa-2026-223 grundschutz-oscal-viewer 1.6.36 — bug-hunt hardening release (5 Low-severity fixes + Playwright E2E suite + cargo-mutants coverage); no new remotely-exploitable weakness csaf_security_advisory final - -
ndaal-sa-2026-224 grundschutz-oscal-viewer 1.6.37 — TISAX 2027 pack + CISO mapping-pack generator + markuplint/a11y hardening + framework default changes; no new vulnerability csaf_security_advisory final - -
ndaal-sa-2026-233 grundschutz-oscal-viewer 1.6.40 — release announcement: CMMI Maturity Level field on annotations (six levels 0 Incomplete … 5 Innovating), the exhaustive fifteen-version --seed-demo / test sequence walking the maturity level, full endpoint Bruno coverage and proptest/fuzz/cargo-mutants/Miri verification, and a parse_args complexity refactor; the release also carries fifteen Low-severity hardening fixes tracked in ndaal-sa-2026-234 through -248 csaf_security_advisory final - -
ndaal-sa-2026-254 ndaal Security Advisory: quick-xml 0.39.4 -> 0.41.0 (+ rss 2.1.0, atom_syndication 0.12.9) remediates RUSTSEC-2026-0194 + RUSTSEC-2026-0195 (two HIGH XML-parser DoS) in nvulnlookup csaf_security_advisory final 7.5 8.7
ndaal-sa-2026-292 grundschutz-oscal-viewer 1.6.46 — release announcement: anti-DNS-rebinding request-Host allowlist plus a test/assurance hardening pass (testable annotation write-path seams, live schemathesis + cargo-tarpaulin gates, server DoS-mitigation resilience harness); advisories 287–291 csaf_informational_advisory final - -
ndaal-sa-2026-366 grundschutz-oscal-viewer 1.6.50: release + test-assurance hardening; no vulnerability csaf_security_advisory final - -
ndaal-sa-2026-373 grundschutz-oscal-viewer 1.6.51: catalog refresh 2026-07-29 + binary hardening; no vulnerability csaf_security_advisory final - -
ndaal-sa-2026-402 ndaal Security Advisory: tar 0.4.44 -> 0.4.46 remediates CVE-2026-33056, CVE-2026-33055 in archmeld 1.2.3 csaf_security_advisory final 5.4 5.1
ndaal-sa-2026-416 ndaal Security Advisory: Database restore accepted unverified dumps and replayed SQL with unrestricted engine authority (grundschutz-oscal-viewer < 1.6.54) csaf_security_advisory final 6.6 6.8
ndaal-sa-2026-417 ndaal Security Advisory: Encryption key rotation was impossible and attempting it silently orphaned every sealed value (grundschutz-oscal-viewer < 1.6.54) csaf_security_advisory final 4.4 6.7
ndaal-sa-2026-434 ndaal Security Advisory: Bundled h2 accepted unbounded empty HTTP/2 DATA frames (RUSTSEC-2026-0258) (grundschutz-oscal-viewer < 1.6.54) csaf_security_advisory final 3.7 6.3
ndaal-sa-2026-442 csaf-crud 1.4.13 -- security fix (bundled h2, RUSTSEC-2026-0258) plus a query-decoding fix and four-engine fuzzing csaf_security_advisory draft - -
ndaal-sba-2298 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 10.0 6.9
ndaal-sba-2298-0001 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 9.0 -
ndaal-sba-2298-0002 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 10.0 -
ndaal-sba-2298-0003 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 7.2 -
ndaal-sba-2298-0004 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 7.4 -
ndaal-sba-2298-0005 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 8.6 -
ndaal-sba-2298-0006 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 8.1 -
ndaal-sba-2298-0007 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 5.3 -
ndaal-sba-2298-0008 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final - 6.9
ndaal-sba-2298-0009 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final - 6.3
ndaal-sba-2298-0010 Vulnerabilities found in SBOM demo-sbom.cdx.json csaf_security_advisory final 6.6 -
Previous Showing 1-50 of 113 Next

Are you sure?