Private dependencies are covered
Some open source testers depended on private repositories without knowing it. ORT Server supports private repositories, so these dependencies are analysed too.
OCCTET toolkit
What the OCCTET toolchain found on every Eclipse Foundation project, on 96 popular open source projects across ten ecosystems and on real SME products, as reported in deliverable D3.3.
All the projects of the Eclipse Foundation have been analysed with the OCCTET toolkit. The OCCTET ORT Server instance holds each project with its GitHub and GitLab repositories, and consolidates repository, package and vulnerability evidence into one operational view of the whole portfolio. The same free, open source toolchain that an SME can deploy scales to the portfolio of an open source foundation.
A triage backlog to prioritise
46,211 vulnerability findings are still unresolved across the portfolio. Knowing which ones to handle first is what makes this volume manageable: that is the job of the OCCTET Curator and of VEX statements.
About ten of the most downloaded and most widely adopted repositories were selected in each of ten language ecosystems: C/C++, C#, Swift, Rust, Ruby, Python, Go, PHP, JavaScript and the JVM. ORT Server resolved the full transitive dependency graph of each project and checked every package against the OSV and VulnerableCode advisory databases.
Every analysis completed. 74 runs were clean; 22 reported issues, mostly sub-projects that could not be resolved, which often points to build practices worth improving in the project itself.
| Package | Found in | Severity | Score | Advisory IDs | Fixed in |
|---|---|---|---|---|---|
axios@1.12.2 | boostorg/boost | Critical | 10.0 | 19 | ≥ 1.13.5 |
bcprov-jdk18on@1.79 | qt/qtbase | Critical | 10.0 | 4 | ≥ 1.84 |
minimist@0.0.8 | mxcl/PromiseKit | Critical | 9.8 | 5 | ≥ 1.2.6 |
flatted@3.3.1 | rails/rails | Critical | 9.8 | 4 | ≥ 3.4.0 |
openssl@0.10.71 (Rust crate) | openssl/openssl | High | 9.3 | 10 | ≥ 0.10.78 |
How findings are counted
Each finding is one advisory matched against one package version of the dependency graph. If one advisory affects five packages, it counts five times: the totals measure the volume to triage, not the number of distinct advisories.
Five renowned projects hosted on GitHub were analysed with ORT Server and compared with GitHub’s dependency graph. ORT Server runs the project’s own package managers, so it sees the dependencies as the build resolves them, transitive ones included, without any change to the project.
| Project | ORT Server | GitHub | Vulnerabilities (ORT Server) | What explains the gap |
|---|---|---|---|---|
| Apache Kafka | 96 | 74 | 51 | ORT Server finds the Python dependencies declared with ~= (64 vs 25) and the Maven dependencies of a non-standard scope (32 vs 10). GitHub also lists 39 GitHub Actions. |
| Apache Tomcat | 40 | 51 | 45 | The same 40 Maven dependencies; the 11 extra entries on GitHub are GitHub Actions. |
| Eclipse Jetty | 725 | 5,396 | 104 | GitHub also counts Maven plugins and the project’s own modules as packages; ORT Server keeps what ships with the product. |
| Apache Hadoop | 1,677 | 4,142 | 1,103 | Maven dependencies are counted differently. GitHub misses the transitive Python dependencies (1 vs 21) and Bower (27); ORT Server could not analyse the NuGet projects. |
| Eclipse Mosquitto | – | 34 | 0 | C/C++ without a package manager: neither tool can resolve the dependencies, and GitHub only lists GitHub Actions. ORT Server accepts dependencies declared by hand, for example in SPDX. |
| GitHub dependency graph | ORT Server | |
|---|---|---|
| Advisory source | The GitHub Advisory Database. | OSV and VulnerableCode, through ORT advisor plugins; other sources can be plugged in. |
| Dependency resolution | Mostly reads the supported manifest and lock files of the repository. | Runs the build’s package managers and resolves the full transitive graph, without changing the project. |
| Coverage | Includes GitHub Actions workflows. | A wider set of package managers; GitHub Actions are not analysed. |
| Scope | One repository at a time. | Organisations, products and repositories, with dashboards at each level. |
| Evidence for triage | Repository security alerts. | Advisory IDs, severity, affected versions, references and minimum fixed versions per package, plus SPDX and CycloneDX SBOMs. |
| Cost and hosting | Advanced Security features may require a paid plan for private repositories. | Free and open source (Eclipse Apoapsis), self-hosted or on the OCCTET instance. |
Apart from GitHub Actions, ORT Server generally draws a more complete picture of what ships with the product: transitive and non-standard dependencies are found, and build-time plugins are told apart from distributed components.
Broad technology coverage is not only theoretical. Five SME testers set up nine use cases with their real products and delivery models: software products, SaaS deliveries and IoT devices. Four more testers are being set up.
8 supported 1 not supported 89%
The unsupported case relies on legacy build tools (Visual Studio Build Tools VC2017 and CMake 3.17.3). Supporting older versions of build systems is out of the project’s scope.
Some open source testers depended on private repositories without knowing it. ORT Server supports private repositories, so these dependencies are analysed too.
Support for Yocto, used by one tester, was introduced in 2026 and keeps growing with that tester’s feedback.
Unsupported legacy build systems are identified upfront, which makes adoption planning easier.
Why continuous monitoring matters
On ReductStore, a first run found 116 vulnerability findings. A second run, with no code change at all, found 121: five new vulnerabilities had been published for its transitive dependencies in between. Scheduled runs catch them without waiting for the next release.
Findings are only the start. The OCCTET Curator retrieves the ORT Server results through its API and adds review, enrichment and export, so that the outcome is auditable security documentation.
The Curator was validated with SME testers, on ReductSoftware’s ReductStore and on Obeo’s Sirius Web, where it detected 1,148 components and 48 vulnerabilities and generated the SBOM. It was also run on open source projects in .NET, Python, Swift, Go, Ruby, the JVM and JavaScript, and on iconic projects such as Adoptium, the Eclipse IDE, Eclipse Mosquitto, Apache Tomcat and Apache Kafka.
The tools are open source. Use the hosted OCCTET instances as a tester, or deploy them yourself.
New to the toolchain?
The getting started guide takes you from your first project to reviewed evidence, step by step.