Summary
Full pipeline runs against real fixture projects with real tools installed. Tagged @pytest.mark.e2e so CI can skip them in quick-check mode.
Fixtures needed
tests/fixtures/log4j/ — pom.xml declaring log4j-core 2.14.1 (exists)
tests/fixtures/openssl/ — project declaring openssl 1.0.1 (missing, needs to be created)
tests/fixtures/synthetic_cpp/reachable/ — small C++ project with a call into a vulnerable function (missing)
tests/fixtures/synthetic_cpp/not_reachable/ — same project with the call removed (missing)
Verification scenarios
- Log4Shell:
fixtures/log4j/ -> CVE-2021-44228 as CRITICAL for log4j-core@2.14.1, reachability REACHABLE, exploit availability WEAPONIZED
- Heartbleed:
fixtures/openssl/ -> CVE-2014-0160 as CRITICAL for openssl@1.0.1
- Reachability filter: reachable fixture -> REACHABLE; not-reachable fixture -> NOT_REACHABLE
- Triage audit:
triage update -> triage history shows the exact change row (append-only confirmed)
- Report content: engineering report has CVE IDs + CVSS scores + fix versions; exec summary has ISO 21434 / UNECE R155 language
- Resume: full scan -> re-run with
--start-from 5 -> no duplicate SBOMSnapshot rows, Stage 1-4 data unchanged
Run
# requires syft, grype, osv-scanner, opengrep installed
cd cyberguard && uv run pytest tests/e2e/ -m e2e -v
Summary
Full pipeline runs against real fixture projects with real tools installed. Tagged
@pytest.mark.e2eso CI can skip them in quick-check mode.Fixtures needed
tests/fixtures/log4j/—pom.xmldeclaringlog4j-core 2.14.1(exists)tests/fixtures/openssl/— project declaringopenssl 1.0.1(missing, needs to be created)tests/fixtures/synthetic_cpp/reachable/— small C++ project with a call into a vulnerable function (missing)tests/fixtures/synthetic_cpp/not_reachable/— same project with the call removed (missing)Verification scenarios
fixtures/log4j/->CVE-2021-44228as CRITICAL forlog4j-core@2.14.1, reachability REACHABLE, exploit availability WEAPONIZEDfixtures/openssl/->CVE-2014-0160as CRITICAL foropenssl@1.0.1triage update->triage historyshows the exact change row (append-only confirmed)--start-from 5-> no duplicateSBOMSnapshotrows, Stage 1-4 data unchangedRun