Challenges in Building Accurate SBOMs for C and C++ Projects Highlighted by CodeScoring Analysis
In ecosystems with established package indexes such as Python, Java, or JavaScript, project composition analysis typically begins with a manifest that lists direct dependencies and allowed versions. Package managers resolve these requirements, fetch transitive dependencies, and record exact versions in a lock file. C and C++ projects rarely follow this model. A single library may be installed via a system package manager, built from source in a separate pipeline, or copied directly into the project directory, leaving no unified record of all components that end up in the final binary.
CodeScoring examined these difficulties while automating SBOM generation for large codebases, including LibreOffice, which contains over one hundred C/C++ libraries plus fonts, dictionaries, and a custom build system. Without a single source of truth, each component requires separate investigation from build commands back to project name, version, and origin. The company’s analysis shows that even when a library is found through linker arguments such as -lssl or explicit paths like /opt/libs/libfoo.a, the command line rarely reveals the original project, version, or applied patches.
Build-time and runtime inventories produce two distinct SBOMs. Build-time SBOMs record libraries linked during compilation, chosen targets, and observed commands. Runtime SBOMs reflect the dynamic libraries actually loaded in a given execution environment. Reconciling the two lists is necessary because a statically linked library disappears from the runtime view, while a dynamically loaded library may be replaced by a different compatible version at launch.
When metadata is absent, Johnny falls back to normalized function signatures, binary section analysis, and strings, yet compiler optimizations and strip operations limit precision to family or version range rather than exact version. The tool marks unverifiable entries with an unresolved suffix and supports manual correction via --lib-versions files using generic PURL identifiers. CMake, Yocto, and experimental SPDX generation features already produce partial SBOMs, but any library supplied as a raw artifact still requires separate provenance work.
The resulting SBOM records must include supplier, PURL or CPE identifier, and evidence of identity. CycloneDX supports confidence levels and completeness statements, allowing analysts to avoid fabricating versions when data is insufficient. This disciplined approach prevents blind spots that arise when one type of inventory is substituted for the other.
Related articles
Passwordless Kubernetes Image Pulling with Artifact Keeper via ServiceAccount Tokens
Kubernetes 1.34 and later enables kubelet to forward a pod's ServiceAccount token to an external image credential provider plugin, allowing the plugin to exchange it for short-lived read-only credentials from a compatible registry. Artifact Keeper, an open-source Rust-based OCI and package registry, implements an OIDC provider that validates these tokens and issues temporary credentials without requiring imagePullSecrets in manifests. The approach follows zero-trust principles by eliminating long-lived secrets that can leak across namespaces or clusters. A custom credential provider binary handles the token exchange, enforces audience restrictions, and redacts sensitive data from logs. The solution requires specific ClusterRole permissions for nodes, kubelet flags, and registry-side OIDC mappings that bind Kubernetes namespaces to read-only groups. Testing on kind 1.34.3 confirmed successful pulls for authorized ServiceAccounts and clear 401 errors for unauthorized ones when imagePullPolicy is set to Always.
Malicious Code Injected into LiteLLM Open Source AI Package via Supply Chain Attack
The open-source generative AI tool LiteLLM had malicious code inserted into its official distribution packages, enabling credential theft and remote code execution. The compromise affected version 1.107.0 released on October 21, 2026, and was delivered through legitimate channels in a classic software supply chain attack. Seven malicious wheel files were uploaded to PyPI, while official container images on Docker Hub and GitHub Container Registry were also tainted. Security firm JFrog discovered that the malware steals a wide range of secrets including cloud credentials, SSH private keys, browser-stored passwords, development tokens, and AI service API keys from LiteLLM's database. The code also supports execution of externally fetched payloads and abuses Python's startup mechanisms to run even when the application itself is not loaded. This marks the second supply chain incident involving the project in 2026, following a separate event in March.
GhostAction Campaign Compromises 790 GitHub Repositories via Malicious Workflows
Researchers from OpenSourceMalware have identified 790 publicly accessible GitHub repositories containing malicious workflows planted by the GhostAction campaign as of October 9. The campaign abuses trusted maintainer accounts to inject workflows that automatically exfiltrate secrets including AWS access keys and tokens for GitHub, GitLab, Google, Slack, SendGrid, OpenAI, Anthropic, and OpenRouter. Earlier counts by GitGuardian recorded 772 repositories between August 31 and September 30, though the datasets differ and are not cumulative. A separate wave on October 8 impacted 346 repositories linked to two maintainer accounts, including a project belonging to Uber. The malicious workflow runs on code pushes or manual triggers, scans repository files and full Git history for credentials, and sends findings in plaintext to attacker infrastructure. Removing the workflow file does not mitigate exposure, as successful executions already leak credentials and old commits may still contain secrets.
SberTech Launches Platform V Orchestrator for Security Services to Scan Software Before Corporate Deployment
SberTech has announced the launch of a new direction focused on analyzing the security of software prior to its integration into corporate infrastructures. The initiative is built around the company's own Laboratory for Software Verification and the technological platform Platform V Orchestrator for Security Services. This platform combines components for working with both built-in and external analysis tools, enabling checks of digital artifacts, control over software composition and changes, and detection of vulnerabilities, hidden threats, and defects in source code and repositories. SberTech aims to replace fragmented checks and manual result processing with a single managed process, allowing scaled verification without proportional team growth. The move responds to the adoption of hundreds of products from various vendors, widespread use of open-source components, and rising attacks on software supply chains. Primary customers include banks, industrial enterprises, telecom operators, energy companies, and the public sector. The solution is offered as a standalone product that supports on-premises deployment and operation in isolated environments such as private clouds and dedicated data processing contours.