|
| 1 | +--- |
| 2 | +title: "Chainguard Libraries for Java" |
| 3 | +linktitle: "Chainguard Libraries for Java" |
| 4 | +description: "Learning lab for July 2026 on Chainguard Libraries for Java, covering CVE remediation, protected fallback to Maven Central, and cooldown policy." |
| 5 | +type: "article" |
| 6 | +date: 2026-07-24T12:00:00+00:00 |
| 7 | +lastmod: 2026-07-23T20:00:53+00:00 |
| 8 | +draft: false |
| 9 | +tags: ["Learning Labs", "Chainguard Libraries"] |
| 10 | +menu: |
| 11 | + docs: |
| 12 | + parent: "learning-labs" |
| 13 | +weight: 90 |
| 14 | +toc: true |
| 15 | +--- |
| 16 | + |
| 17 | +AI frontier models are accelerating the discovery of vulnerabilities in Java |
| 18 | +applications at a pace that teams can't keep up with. If your team is stuck on |
| 19 | +older Java versions that are hard to upgrade, you need support to remediate |
| 20 | +those vulnerabilities so you can get time back in your day to build. |
| 21 | + |
| 22 | +In the July 2026 Learning Lab, Manfred Moser shares the details behind |
| 23 | +Chainguard Libraries for Java, with an overview of how to start using |
| 24 | +remediated versions directly with Apache Maven. |
| 25 | + |
| 26 | +Manfred covers and demonstrates the following new features: |
| 27 | + |
| 28 | +- CVE remediation for Spring Framework and other libraries |
| 29 | +- Protected fallback to Maven Central |
| 30 | +- Cooldown and other policies |
| 31 | + |
| 32 | +The lab uses a hands-on demo project to migrate a typical Maven build to |
| 33 | +Chainguard Libraries. |
| 34 | + |
| 35 | +<!-- Add the recording after the event: {{< youtube VIDEO_ID >}} --> |
| 36 | + |
| 37 | +## Sections |
| 38 | + |
| 39 | +<!-- Add timestamped sections after the recording is published: |
| 40 | +- [0:00](#) Introduction and agenda |
| 41 | +--> |
| 42 | + |
| 43 | +## Questions |
| 44 | + |
| 45 | +The following questions were asked by the audience during the event, and answers |
| 46 | +are added: |
| 47 | + |
| 48 | +### How does Chainguard differ from eg: "pip-audit" for Python? or npm run audit for Node? ..etc. |
| 49 | + |
| 50 | +`pip-audit` and `npm audit` are reactive scanners that flag known |
| 51 | +vulnerabilities in dependencies you already pulled from public registries. |
| 52 | +Chainguard Libraries is preventive: dependencies are rebuilt from source in the |
| 53 | +hardened Chainguard Factory and served with malware scanning and cooldown |
| 54 | +controls, closing off the build and distribution attack surface a scanner cannot |
| 55 | +see. The two are complementary. The VEX feed from Chainguard includes |
| 56 | +information about remediated CVEs on Chainguard Libraries and can be used by |
| 57 | +scanners. |
| 58 | + |
| 59 | +### For backported fixes for Java specifically, does Chainguard have an n-? support model as to which versions fixes will be backported to? |
| 60 | + |
| 61 | +There is no fixed n-minus matrix. Backports target critical and high CVEs on |
| 62 | +older versions that customers still run and that upstream no longer patches, |
| 63 | +prioritized by usage and demand. Request specific libraries through your account |
| 64 | +team. Typically n-? policies also are not meaningful since they are heavily |
| 65 | +impacted by the release cadence of upstream projects and the presence of |
| 66 | +multiple maintained major version streams. Chainguard focuses on the customer |
| 67 | +demand for backports. |
| 68 | + |
| 69 | +### When you say. "source" - is it the source Github repo? or the public registry (Eg: PyPI for python) |
| 70 | + |
| 71 | +Source means the upstream code in a source code manager such as GitHub or |
| 72 | +GitLab, not the binary from a registry like PyPI, npm, or Maven Central. |
| 73 | +Chainguard verifies the project's source URL and rebuilds from that code, so |
| 74 | +packages without a valid, verifiable source URL are out of scope and no binary |
| 75 | +is produced. |
| 76 | + |
| 77 | +### I don't see "Manage pull tokens" option under my Profile for Libraries |
| 78 | + |
| 79 | +Creating pull tokens requires the ecosystem entitlement and the matching |
| 80 | +`pull_token_creator` role, such as `libraries.java.pull_token_creator`. Without |
| 81 | +both, the option does not appear. Tokens live under **Overview** on the **Manage |
| 82 | +pull tokens** tab, not a personal profile menu. Ask an administrator to confirm |
| 83 | +your entitlement and role, or create tokens with `chainctl auth pull-token`. |
| 84 | + |
| 85 | +### Is there a way to update the policy, change cooldown period |
| 86 | + |
| 87 | +Yes. With the Owner role, and upstream fallback enabled, create a policy with a |
| 88 | +cooldown value and enforce it: |
| 89 | + |
| 90 | +```bash |
| 91 | +chainctl libraries policy create --name=java-trust --cooldown-days=0 |
| 92 | +chainctl libraries policy enable java-trust --ecosystem=JAVA --mode=ENFORCE |
| 93 | +``` |
| 94 | + |
| 95 | +The default is 7 days, and `--cooldown-days=0` deactivates cooldown. One custom |
| 96 | +policy per ecosystem carries all your cooldown, block, and override rules. |
| 97 | + |
| 98 | +### Any support for other tech - Golang, Rust |
| 99 | + |
| 100 | +Chainguard Libraries currently covers the Java, JavaScript, and Python |
| 101 | +ecosystems. Future plans are considering Golang, Rust, .NET, and others. |
| 102 | + |
| 103 | +### How do you deal with custom / non-standard / non-one-step builds? E.e. build that require (undocumented) properties set? |
| 104 | + |
| 105 | +In the context of Chainguard Libraries on the Chainguard side, we determine how |
| 106 | +to build libraries with the help of our expert engineers and our agentic |
| 107 | +infrastructure. |
| 108 | + |
| 109 | +In the context of customers using Chainguard Libraries on their own projects, |
| 110 | +you must troubleshoot and debug these details with the help of Apache Maven and |
| 111 | +other tools. |
| 112 | + |
| 113 | +### For the fix using this as an example do these fixes get pushed to the open source package instead of a private Chainguard repo? If not how come? |
| 114 | + |
| 115 | +Remediated fixes ship from the dedicated `java-remediated` Chainguard repository |
| 116 | +with a `-0.cgr.N` suffix, not upstream as the released artifact. These backports |
| 117 | +target older versions upstream no longer patches. Chainguard cannot publish them |
| 118 | +under the same coordinates on Maven Central. Chainguard does collaborate with |
| 119 | +upstream projects to contribute fixes as source code where possible and the |
| 120 | +project is interested. |
| 121 | + |
| 122 | +### If we are overriding versions how do we ensure integrity and stability of the application? |
| 123 | + |
| 124 | +Overriding dependency versions with CVE-remediated Java libraries allows you to |
| 125 | +keep the version difference of the change minimal and isolated to the CVE fixes. |
| 126 | +Nevertheless you must test your application thoroughly to ensure the integrity |
| 127 | +and stability of your application. When upgrading more libraries, and |
| 128 | +introducing larger version drifts, this need for verification and potentially |
| 129 | +adjusted code becomes more and more critical, and can result in significant |
| 130 | +necessary changes, that must be tested and verified like any other application |
| 131 | +change. |
| 132 | + |
| 133 | +### How do you ensure that the dependencies that you use during build do not contain any malicious code? |
| 134 | + |
| 135 | +When using Chainguard Libraries for Java with the fallback to upstream Maven |
| 136 | +Central, you can rely on the extensive analysis and scanning of the artifacts |
| 137 | +performed by Chainguard. |
| 138 | + |
| 139 | +## Resources |
| 140 | + |
| 141 | +- [Demo project on GitHub](https://github.com/chainguard-demo/chainguard-libraries-java) |
| 142 | +- [Slide deck](/downloads/learning-lab-202607.pdf) |
| 143 | +- [Chainguard Libraries documentation](/chainguard/libraries/overview/) |
0 commit comments