Habrβ€’September 26, 2026β€’πŸ‡·πŸ‡ΊTranslated from Russian

Sapper Revives Minefield to Deliver Accurate SBOM-Based Vulnerability Impact Reports for Cyber Resilience Act Compliance

Developer Perruer has continued the archived Minefield project from BitBom under the new name Sapper, adding critical fixes that enable accurate answers to the question of which products are affected by a given CVE through direct or transitive dependencies.

The original tool built a dependency graph from SBOMs where each package became a node identified by purl, storing parents and children in roaring bitmaps. Vulnerabilities from OSV were attached as additional nodes, turning impact queries into upward traversals from vulnerable packages. Minefield precomputed transitive closures using Tarjan's algorithm to collapse strongly connected components followed by dynamic programming, achieving O(n + m) performance.

SBOM Direction Bug Discovered After protobom Update

After updating the protobom library from 0.5 to 0.6, end-to-end tests showed dramatically inflated results: instead of six dependent packages, the system reported sixty. Investigation revealed that protobom 0.5 had silently dropped dependsOn edges from CycloneDX files, while version 0.6 correctly parsed both CycloneDX and SPDX relationships. The original Minefield code treated every edge as β€œfrom depends on to,” which is correct for CycloneDX but incorrect for SPDX predicates such as runtimeDependencyOf or containedBy that reverse the direction.

The fix introduces an explicit direction table that classifies each sbom.Edge_Type as fromDependsOnTo, toDependsOnFrom, or notADependency. After correction, test expectations were updated and independently verified by a Python script that parsed the same SBOM JSON files according to the CycloneDX and SPDX specifications.

Additional Reliability Fixes

  • Replaced mattn/go-sqlite3 with glebarez/sqlite to produce a single static binary without cgo.
  • Configured in-memory databases to use a single connection and enabled WAL mode with busy_timeout for file-based storage.
  • Fixed OSV range sorting that previously compared versions from the wrong slice, causing incorrect vulnerability status for multi-range records and Go pseudo-versions.
  • Added a package-name index that reduced full Go OSV database loading from tens of minutes to 7–8 seconds.

The new sapper report command traverses the cached graph to produce prioritized vulnerability impact lists ordered first by CISA KEV presence, then by EPSS score, then by number of affected products. It merges duplicate findings via alias relationships and respects OpenVEX documents that mark specific products as not affected.

Sapper remains fully air-gapped, accepts CycloneDX and SPDX files or archives, and can ingest KEV, EPSS, and OSV data. The project is available at github.com/Perruer/sapper under the Apache-2.0 license.

Related articles

Habrβ€’Supply Chain & Open Source

OIDC Configured but GitHub Actions Still Vulnerable: Megalodon and actions-cool Attacks Expose Runner Risks

Even after widespread adoption of OIDC for temporary cloud credentials in GitHub Actions, two major attacks in May 2026 demonstrated that the approach remains insufficient on its own. Attackers compromised actions-cool/issues-helper by substituting action tags to execute malicious commits that read Runner.Worker memory. The Megalodon campaign injected malicious workflows into 5,561 public repositories, harvesting environment variables, credential files, kubeconfig, SSH keys, and OIDC tokens. OIDC eliminates long-lived AWS_ACCESS_KEY_ID secrets but leaves short-lived tokens exposed inside the runner during job execution. Four mandatory protection layers are now required: strict cloud trust policies using StringEquals on the sub claim, job-level id-token: write permissions, outbound traffic controls such as Harden-Runner, and CODEOWNERS enforcement on .github/workflows/. GitHub Environments with mandatory reviewers add an essential human-approval gate that would have disrupted the Megalodon attack path.

Habrβ€’Supply Chain & Open Source

GitHub Repo Trap with 1774 Stars Mimics Microsoft Activation Scripts to Deliver Malware via Telegram Bot

A security researcher built a Telegram bot that daily delivers five trending GitHub repositories from trendshift.io along with README summaries. One repository named Microsoft Activation Scripts contained only a README with a reversed PowerShell command that decoded to download and execute a payload from a lookalike domain. The account was created 94 seconds before the repository and used classic one-liner installation syntax to blend with legitimate projects. Analysis of 321 trending repositories showed that simple filters such as recent account age or irm|iex patterns would incorrectly flag many legitimate projects including codex and opencode. Two independent detection rules were developed: one that normalizes and scans for obfuscated execution commands including base64, mshta, certutil and hidden window flags, and another that flags one-time owners created less than 30 days before the repository with under 10 KB of content. An additional groundedness check using the AIHOT method prevents DeepSeek from inserting unverified claims such as Ruby or Cypress into repository summaries.

BoletimSecβ€’Supply Chain & Open Source

GhostAction Campaign Expands to Inject Malicious GitHub Workflows Stealing AWS Keys and Tokens

The GhostAction campaign has returned with an expanded technique that targets a wider range of credentials across hundreds of repositories. On October 8, two compromised maintainer accounts injected a malicious workflow named security-audit.yml into 346 GitHub repositories, including high-profile projects such as uber/athenadriver and kitao/pyxel. The workflow disguises itself as a security audit routine and executes automatically on every code push, exfiltrating credentials via HTTP requests to attacker-controlled servers. Unlike previous waves that only harvested GitHub Actions secrets, the new version also scans the working directory and full git history for forgotten credentials in older commits. Targeted data includes AWS access keys, GitHub and GitLab tokens, Google API keys, Slack and SendGrid tokens, OpenAI and Anthropic credentials, PyPI passwords, and crates.io tokens. Since October 7, more than 500 GitHub accounts have planted similar workflows, building on earlier campaigns that affected 817 repositories in September 2025 and 772 between August and September.

Habrβ€’Supply Chain & Open Source

Security Researcher Builds SAST Scanner for AI-Generated Code and Audits 3,800 Public Repositories

A developer released AigisSAST, a lightweight open-source static analysis tool written in pure Python with no external dependencies, specifically tuned to detect common mistakes made by AI coding assistants. The scanner was run across roughly 3,800 repositories ranging from small pet projects to popular open-source platforms. It identified thousands of potential secrets and misconfigurations, yet manual review reduced the number of genuine leaks to approximately 30 cases, mostly Telegram bot tokens, database credentials, and committed .env files. The project also examined 471 production-grade Telegram bots handling payments and VPN services, uncovering 31 repositories that exposed real credentials either in current code or in Git history. AigisSAST includes 21 detection rules, 193 regression tests, automatic remediation via the fix command, and seamless integration with GitHub Actions. The author deliberately avoided validating any discovered keys to stay within ethical research boundaries.