Chainguard Libraries for Java
Learning Lab in May 2025 with Manfred Moser
For the complete documentation index, see llms.txt.
AI frontier models are accelerating the discovery of vulnerabilities in Java applications at a pace that teams can’t keep up with. If your team is stuck on older Java versions that are hard to upgrade, you need support to remediate those vulnerabilities so you can get time back in your day to build.
In the July 2026 Learning Lab, Manfred Moser shares the details behind Chainguard Libraries for Java, with an overview of how to start using remediated versions directly with Apache Maven.
Manfred covers and demonstrates the following new features:
The lab uses a hands-on demo project to migrate a typical Maven build to Chainguard Libraries.
The following questions were asked by the audience during the event, and responses are added since time ran out to answer them all:
pip-audit and npm audit are reactive scanners that flag known
vulnerabilities in dependencies you already pulled from public registries.
Chainguard Libraries is preventive: dependencies are rebuilt from source in the
hardened Chainguard Factory and served with malware scanning and cooldown
controls, closing off the build and distribution attack surface a scanner cannot
see. The two are complementary. The VEX feed from Chainguard includes
information about remediated CVEs on Chainguard Libraries and can be used by
scanners.
There is no fixed n-minus matrix. Backports target critical and high CVEs on older versions that customers still run and that upstream no longer patches, prioritized by usage and demand. Request specific libraries through your account team. Typically n-? policies also are not meaningful since they are heavily impacted by the release cadence of upstream projects and the presence of multiple maintained major version streams. Chainguard focuses on the customer demand for backports.
Source means the upstream code in a source code manager such as GitHub or GitLab, not the binary from a registry like PyPI, npm, or Maven Central. Chainguard verifies the project’s source URL and rebuilds from that code, so packages without a valid, verifiable source URL are out of scope and no binary is produced.
Creating pull tokens requires the ecosystem entitlement and the matching
pull_token_creator role, such as libraries.java.pull_token_creator. Without
both, the option does not appear. Tokens live under Overview on the Manage
pull tokens tab, not a personal profile menu. Ask an administrator to confirm
your entitlement and role, or create tokens with chainctl auth pull-token.
Yes. With the Owner role, and upstream fallback enabled, create a policy with a cooldown value and enforce it:
chainctl libraries policy create --name=java-trust --cooldown-days=0
chainctl libraries policy enable java-trust --ecosystem=JAVA --mode=ENFORCEThe default is 7 days, and --cooldown-days=0 deactivates cooldown. One custom
policy per ecosystem carries all your cooldown, block, and override rules.
Chainguard Libraries currently covers the Java, JavaScript, and Python ecosystems. Future plans are considering Golang, Rust, .NET, and others.
In the context of Chainguard Libraries on the Chainguard side, we determine how to build libraries with the help of our expert engineers and our agentic infrastructure.
In the context of customers using Chainguard Libraries on their own projects, you must troubleshoot and debug these details with the help of Apache Maven and other tools.
Remediated fixes ship from the dedicated java-remediated Chainguard repository
with a -0.cgr.N suffix, not upstream as the released artifact. These backports
target older versions upstream no longer patches. Chainguard cannot publish them
under the same coordinates on Maven Central. Chainguard does collaborate with
upstream projects to contribute fixes as source code where possible and the
project is interested.
Overriding dependency versions with CVE-remediated Java libraries allows you to keep the version difference of the change minimal and isolated to the CVE fixes. Nevertheless you must test your application thoroughly to ensure the integrity and stability of your application. When upgrading more libraries, and introducing larger version drifts, this need for verification and potentially adjusted code becomes more and more critical, and can result in significant necessary changes, that must be tested and verified like any other application change.
When using Chainguard Libraries for Java with the fallback to upstream Maven Central, you can rely on the extensive analysis and scanning of the artifacts performed by Chainguard.
Last updated: 2026-07-24 18:43