SC
Add artifact malware quarantine guard
SCIBASE-AI/SCIBASE.AI#410

/claim #14

Summary

  • Adds a self-contained artifact-malware-quarantine-guard/ slice for Scientific/Engineering Data & Code Hosting issue #14.
  • Evaluates hosted uploads before preview, reproduce-run, API access, or export using synthetic scan evidence, checksums, top-level artifact batch shape, artifact manifest shape, archive shape, archive entry/link traversal, macro/model/notebook risk, normalized malware verdicts, scan freshness, and sanitized reviewer metadata.
  • Emits deterministic JSON, Markdown, SVG, and MP4 reviewer artifacts with SHA-256 audit digests.

Scope

This focuses specifically on malware, archive-bomb, malformed top-level artifact batches, malformed artifact manifests, malformed archive entry manifests, archive entry/link traversal, archive link-target traversal, missing or blank archive link-target evidence, macro-enabled spreadsheet, unsafe model deserialization, embedded notebook script, denylisted checksum, stale-scan gates, quarantine path redaction, and metadata keyword redaction before hosted artifacts are released.

It is distinct from the existing FAIR manifest/access, artifact package integrity, preview cache, raw/notebook preview, retention/tombstone, model-card lineage, license compatibility, sensitive-redaction, schema-evolution, data-dictionary, persistent-ID, SBOM, upload checkpoint, replica consistency, and column-sensitivity slices.

Hardening Updates

  • fa82895: refreshed committed reviewer artifacts after redaction hardening so risky-packet.json and summary.svg now show the sanitized archive-entry message and digest b07e1bcffbe6... instead of stale pre-redaction evidence.
  • d8f24e1: artifact metadata keywords are sanitized before DataCite/schema output, preventing private or unsafe metadata labels from being emitted in release evidence.
  • 646c981: quarantine path evidence is redacted before reviewer packets expose archive traversal paths.
  • 9fea4c2: malformed top-level artifact batches such as assessArtifactBatch(null) now quarantine as MALFORMED_ARTIFACT_BATCH with blocked preview/reproduce/API/export lanes instead of crashing at batch.artifacts before reviewer packet generation.
  • Added and regenerated deterministic JSON/Markdown/SVG evidence so reviewers can inspect malformed-batch quarantine, traversal, stale-scan, manifest, metadata, and redaction paths.
  • ZIP Slip-style archive path traversal quarantine covers parent-directory, absolute, drive-rooted, UNC, and null-byte archive entries.
  • Future-dated scan timestamps are treated as stale scan evidence requiring rescan before release.
  • Malware scan verdicts are normalized before release decisions, so variants such as MALICIOUS are quarantined.
  • Archive symlink/hardlink target paths are scanned for traversal, so a safe-looking entry name cannot point outside the artifact workspace.
  • Archive link entries that omit target evidence are quarantined instead of being released as clean.
  • Archive link entries with blank or whitespace-only target evidence are treated as missing target evidence and quarantined.
  • Malformed archive entry manifests are quarantined with ARCHIVE_ENTRY_MANIFEST_MALFORMED instead of crashing before a reviewer packet can be produced.
  • Malformed top-level artifact manifests now quarantine with MALFORMED_ARTIFACT_MANIFEST before release lanes are opened, and malformed artifact rows emit MALFORMED_ARTIFACT_ENTRY without suppressing valid sibling metadata evidence.

Validation

  • Latest report-refresh gate verified the current head after fa82895.
  • cd artifact-malware-quarantine-guard && npm test passed: 15 tests.
  • cd artifact-malware-quarantine-guard && npm run check passed JS syntax checks and Python compile check.
  • cd artifact-malware-quarantine-guard && npm run demo regenerated 7 JSON packets plus Markdown/SVG artifacts; risky-packet.json now carries the redacted archive traversal message and digest b07e1bcffbe6.
  • cd artifact-malware-quarantine-guard && npm run demo:video regenerated reports/demo.mp4.
  • Parsed all 7 generated JSON packet files successfully.
  • ffprobe confirmed reports/demo.mp4 is H.264, 1280x720, 7.5s, 24fps, 106,051 bytes.
  • git diff --check and git diff --cached --check passed; Git only reported Windows line-ending normalization warnings before staging.
  • Focused restricted-string scan found no payout, credential, token, bank, or service-role strings in the staged patch.
  • Staged allowlist check confirmed only artifact-malware-quarantine-guard/ paths were committed.

Demo Artifacts

  • artifact-malware-quarantine-guard/reports/blank-link-target-packet.json
  • artifact-malware-quarantine-guard/reports/malformed-archive-entries-packet.json
  • artifact-malware-quarantine-guard/reports/malformed-artifact-manifest-packet.json
  • artifact-malware-quarantine-guard/reports/malformed-batch-packet.json
  • artifact-malware-quarantine-guard/reports/clean-packet.json
  • artifact-malware-quarantine-guard/reports/quarantine-report.md
  • artifact-malware-quarantine-guard/reports/risky-packet.json
  • artifact-malware-quarantine-guard/reports/stale-scan-packet.json
  • artifact-malware-quarantine-guard/reports/summary.svg
  • artifact-malware-quarantine-guard/reports/demo.mp4

Safety

Synthetic data only. No credentials, private research files, network calls, live malware scanner calls, storage mutations, payment processor calls, or private dashboard data are included.

AI-assisted with OpenAI Codex; I reviewed and locally verified the diff before submitting.

Claim

Total prize pool $375
Total paid $0
Status Pending
Submitted May 27, 2026
Last updated May 27, 2026

Contributors

KO

KoiosSG

@KoiosSG

100%

Sponsors

SC

SCIBASE.AI

@SCIBASE.AI

$375