Chainguard Libraries for JavaScript and CVE remediation for Python libraries
Learning Lab for October 2025 about Chainguard Libraries for JavaScript and CVE remediation for Python libraries
Chainguard’s chainctl tool with the command libraries verify verifies that
your language ecosystem dependencies come from Chainguard Libraries, providing
critical visibility into your software supply chain security. By verifying
binary artifacts across your projects and repositories, you can ensure
dependencies are sourced from Chainguard’s hardened build environment rather
than potentially compromised public repositories, identify opportunities to
improve security posture, and maintain compliance with supply chain security
policies.
Command characteristics:
Before using chainctl to verify libraries, ensure you have the following installed and available on your path:
chainctl —
Chainguard-maintained tool that includes the libraries verify command.cosign — A
Sigstore-maintained tool used to verify signatures.You also need:
Confirm that chainctl and cosign are installed and available on the PATH
with the following commands:
chainctl versioncosign versionYou can authenticate with your Chainguard organization using chainctl. First,
initiate the login flow:
chainctl auth loginIf you are a member of one organization only, you can proceed to use libraries verify and other commands.
If you are a member of multiple organizations, you must provide the name of your
organization using the --parent flag as follows, replacing
<your-organization> with the name of your organization, with every command:
chainctl libraries verify --parent <your-organization> /path/to/artifact.jarTo avoid the need for the additional parameter, you can configure a default organization with the following steps.
Find your organization name with the entitlement:
chainctl iam organizations listSet the configuration for the default group:
chainctl config set default.group <your-organization>Verify the configuration:
chainctl config viewEnsure that you use this configuration or add the --parent parameter in all
the following examples as necessary.
Analyze a Python wheel file in the current directory:
chainctl libraries verify flask-3.0.1-py3-none-any.whlThe analysis of wheel files is fast because the provenance information is available within the archive.
Analyze a local Java .jar file:
chainctl libraries verify commons-lang3-3.17.0.jarVerifying a JAR file is performed by looking up checksums and provenance information from the Chainguard repositories. This requires network access and can take longer if you analyze multiple files or archives that contain multiple libraries.
Analyze a deployment archive for your custom application that contains other libraries:
chainctl libraries verify example-application.tar.gzNote that scanning larger archives that contain numerous libraries can take a
significant amount of time. Consider detailed output with the --detailed flag
for more information about the performed verification steps, and potentially
pipe the output into a file.
chainctl libraries verify --detailed commons-lang3-3.17.0.jar > run.log Use the --verbose flag for even more details.
Analyze multiple artifacts output:
chainctl libraries verify artifact1.jar artifact2.zipAnalyze a file and create JSON output:
chainctl libraries verify -o json commons-lang3-3.17.0.jarYou can also analyze container images to verify the libraries contained within the container. Note that this requires more time to verify depending on the container size, and the number and type of included libraries.
Analyze a container image:
chainctl libraries verify cgr.dev/chainguard/maven:latestNote that the analysis separately downloads the container tarball and analyzes it, rather than any container available in your local container setup.
Analyze a local image with localhost prefix:
chainctl libraries verify localhost/myapp:latestThe following examples use Maven Central and PyPI URLs and returns a negative result, because packages were not built by Chainguard. A practical use of this functionality points to an internal repository manager with a mixture of artifacts from Chainguard and elsewhere.
Analyze a remote artifact on Maven Central:
chainctl libraries verify remote:repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.17.0/commons-lang3-3.17.0.jarAnalyze a remote artifact on PyPI:
chainctl libraries verify remote:files.pythonhosted.org/packages/...../requests-2.31.0-py3-none-any.whlUse the help command for more command options and details for the verify command:
chainctl help libraries verifyLast updated: 2025-07-23 15:09