Customer Knowledge Base
Breadcrumbs

HCMS: Understanding Security Scan Findings in Java Application Packages

Overview

Some customers use automated security scanning tools (e.g., AWS Inspector, Trivy, Prisma, Azure Defender) to analyse Docker images that include HCMS.
These tools may report critical vulnerabilities in certain Java libraries or dependencies packaged inside the container.

In many cases, these findings do not correspond to actual vulnerabilities in the running HCMS application.
This article explains why such “false positives” can appear and how to interpret them.

However, not all findings are false positives—some libraries may legitimately contain vulnerabilities and require upgrades.

Why Security Scanners Report Vulnerabilities

Most security tools scan the entire filesystem of a container image, including:

  • Java library JAR files

  • Nested JARs within JARs

  • Build metadata stored in META-INF/maven/.../pom.xml


These pom.xml files often contain:

  • Version numbers of dependencies used at build time

  • Transitive dependencies from parent projects

  • Deprecated or unused component references

These metadata files do not represent the libraries actually loaded and executed by HCMS at runtime.

What Causes the False Positives

It is common for Java libraries to include a pom.xml inside their JAR for Maven build metadata.
For example:

META-INF/maven/<group>/<artifact>/pom.xml

A scanner may detect:

  • Very old dependency versions declared in these metadata files

  • Transitive dependencies that were overridden or removed

  • Libraries referenced but not actually included in the HCMS runtime classpath

Common examples include:

  • commons-logging

  • handy-uri-templates

  • logback-classic

  • Older jackson-databind versions listed in metadata

These files may list vulnerable versions even when the real application is using newer, patched versions.

Important Clarification

A vulnerability listed in a pom.xml inside a nested JAR does not mean that the vulnerable library is present or used by HCMS.

HCMS may:

  • Override the transitive dependency with an updated version

  • Not use the library at all

  • Include the metadata but not the corresponding code

This is how Java/Maven packaging works and is normal for large Java applications.

However:
Some findings are real, and libraries may actually require updates.
Evaluating each CVE is therefore essential and must be done by the development team.

What You Should Do When Scanning HCMS Images

1. Compare Findings to Actual Runtime Libraries

The runtime JARs (mostly) located directly under:

/opt/corpus/censhare-Satellite/bundles/ 

should be evaluated.

Metadata inside nested JARs does not reflect runtime behavior.

2. Review the True Library Versions

If a scanner reports a vulnerability for a library:

  • Confirm the actual JAR version delivered with HCMS

  • Compare it against published CVE advisories

  • Validate whether the vulnerable version is actually included

3.  Distinguish Metadata‑Only Findings

Findings referring to:

  • pom.xml

  • META-INF/maven/...

  • nested JAR metadata

typically do not represent runtime vulnerabilities.

4. Recognise Real Vulnerabilities

If the runtime JAR version matches an actual CVE, the finding is not a false positive and may require:

  • dependency updates

  • override adjustments

  • developer review

If you have questions about specific findings, please provide:

  • File path from the scanner

  • CVE ID

  • Scanner tool used

  • HCMS version

  • Docker build process (if applicable)

Support can help determine whether the finding reflects:

  • real runtime vulnerability, or

  • metadata‑based false positives

Summary

Security scanning tools often flag non‑runtime metadata inside Java packages, creating false positives. These findings usually relate to Maven POM files that do not correspond to the actual libraries used by HCMS.

However, not all findings are false positives—some vulnerabilities may genuinely affect runtime libraries and require upgrades.

Each finding must be validated individually.