Skip to Content

Product security

Putki Security

Our assessment of vulnerabilities affecting supported Putki releases — what is exploitable, what is not, and when a fix ships. Published so your scanner findings arrive with our answer attached.

Updated 2026-10-17Patch cadence monthly, plus break-glassMachine-readable OpenVEX 0.2.0Advisory index ↓

Stop re-checking what we have already answered

We publish our assessment of every vulnerability in a form your scanner reads (OpenVEX), scoped to your edition. Findings we have already ruled out stop coming back to your team. Tell us which channel you are on and we will set up access.

Get the feed

Supported releases

ReleaseApache HopReleasedStatusSecurity fixes until
2026.092.19.02026-09-17Current2027-09-17
2026.062.18.12026-07-06Maintained2027-07-06
2026.03.062.17.12026-03-16Maintained2027-03-16
2025.08.032.14.02025-09-03End of life2026-09-03
2025.05.032.14.02025-07-03End of life2026-07-03

How we triage

Scheduled, with an exception

A patch release ships on a fixed date every month, batching everything found since the last one. Anything urgent ships out of band, in days.

What counts as urgent

Reachable in a shipped artifact under a supported configuration, and either listed in CISA KEV or trivially exploitable. Everything else waits for the monthly.

A high score describes how bad exploitation would be, not whether anyone can reach the code. We publish the reachability judgment alongside every finding, because that is the part your team would otherwise have to reconstruct from our release notes.

Current advisories

Order by

Putki

The platform itself. These images are built from Apache Hop and Hop Web with our own plugins and patches applied, and they are what every Putki deployment runs.

CVE-2026-75595 CVSS 9.8 io.netty/netty-handler ↑ Back to top

Affected on all supported releases. A vulnerable copy of Netty is bundled inside the gRPC transport library on the Hop runtime classpath. Most vulnerability scanners will not report it, because the bundling renames the library and hides its version — we confirmed it by opening the archive. No upstream release of that library yet carries a fixed Netty, so there is nothing to upgrade to; 2026.09 already carries a fixed copy of the standalone library.

2026.09AffectedPutki
2026.06AffectedPutki, Putki Web
2026.03AffectedPutki, Putki Web
2025.08 end of lifeAffectedPutki
2025.05 end of lifeAffectedPutki
CVE-2026-8763 CVSS 9.1 org.bouncycastle/bcprov-jdk18on ↑ Back to top

Affected, by a narrow path, and not being patched on the current lines. Bouncy Castle is bundled inside JRuby inside the documentation-generation plugin. Reaching the flaw needs a generated PDF that fetches a resource over HTTPS from a certificate authority using name constraints — a combination no Putki deployment is known to produce. The fix is a JRuby upgrade, which arrives with Apache Hop rather than from us.

2026.09AffectedPutki, Putki Web
2026.06AffectedPutki, Putki Web
2026.03AffectedPutki, Putki Web
2025.08 end of lifeAffectedPutki
2025.05 end of lifeAffectedPutki
CVE-2026-10050 org.eclipse.jetty/jetty-security ↑ Back to top

Hop's own HTTP stack runs Jetty 12.1.12, which carries the fix; the only vulnerable copies in the image are bundled inside the Spark and Hadoop client libraries, which never start a server because the Spark engine is not shipped. Fixed on 2026.03 and 2026.06 by the 2026.03.06 and 2026.06.01 patch releases. Older unsupported lines carry a vulnerable Jetty on the request path and are not patched.

2026.09Not affectedPutki, Putki Web
2026.06FixedPutki, Putki Web
2026.03FixedPutki, Putki Web
2025.08 end of lifeAffectedPutki
2025.05 end of lifeAffectedPutki
CVE-2026-2332 org.eclipse.jetty/jetty-http ↑ Back to top

Hop's own HTTP stack runs Jetty 12.1.12, which carries the fix; the only vulnerable copies in the image are bundled inside the Spark and Hadoop client libraries, which never start a server because the Spark engine is not shipped. Fixed on 2026.03 by the 2026.03.06 patch release; 2026.06 already shipped a fixed Jetty. Older unsupported lines carry a vulnerable Jetty on the request path and are not patched.

2026.09Not affectedPutki, Putki Web
2026.06not detected
2026.03FixedPutki, Putki Web
2025.08 end of lifeAffectedPutki
2025.05 end of lifeAffectedPutki
PUTKI-2026-0001 ↑ Back to top

Putki Web's pipeline execution API is reachable without authentication in the shipped default configuration. Putki Web is not supported for production use before 2026.12, and deployments should keep it behind their own access controls until then. Apache Hop 2.20 closes this by default and 2026.12 adopts it.

2026.09AffectedPutki Web
2026.06AffectedPutki Web
2026.03AffectedPutki Web
2025.08 end of lifeAffectedPutki Web
2025.05 end of lifeAffectedPutki Web
CVE-2026-47691 CVSS 10 io.netty/netty-resolver-dns ↑ Back to top

Not affected. Netty is present underneath the Google Cloud client libraries, as a client transport. Putki serves HTTP on Jetty, and nothing in the product uses the Netty component this flaw is in.

2026.09not detected
2026.06not detected
2026.03Not affectedPutki, Putki Web
2025.08 end of lifeNot affectedPutki, Putki Web
2025.05 end of lifeNot affectedPutki, Putki Web
CVE-2026-45674 CVSS 10 io.netty/netty-resolver-dns ↑ Back to top

Not affected. Netty is present underneath the Google Cloud client libraries, as a client transport. Putki serves HTTP on Jetty, and nothing in the product uses the Netty component this flaw is in.

2026.09not detected
2026.06not detected
2026.03Not affectedPutki, Putki Web
2025.08 end of lifeNot affectedPutki, Putki Web
2025.05 end of lifeNot affectedPutki, Putki Web
CVE-2026-65905 CVSS 9.8 org.apache.tomcat/tomcat-catalina ↑ Back to top

Not affected. The flaw is in Tomcat's DIGEST authenticator, which is only active when a web application asks for DIGEST authentication. Putki Web does not, in either configuration it ships. Apache Hop 2.20's authentication is handled by the application rather than by Tomcat, so this does not become reachable later.

2026.09Not affectedPutki Web
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-42581 CVSS 9.8 io.netty/netty-codec-http ↑ Back to top

Not affected. Netty is present underneath the Google Cloud client libraries, as a client transport. Putki serves HTTP on Jetty, and nothing in the product uses the Netty component this flaw is in.

2026.09not detected
2026.06not detected
2026.03Not affectedPutki, Putki Web
2025.08 end of lifeNot affectedPutki, Putki Web
2025.05 end of lifeNot affectedPutki, Putki Web
CVE-2026-11856 CVSS 9.8 curl, libcurl, libcurl4t64 ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-10536 CVSS 9.8 curl, libcurl, libcurl4t64 ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-41245 CVSS 9.3 com.github.junrar/junrar ↑ Back to top

Not affected. The flaw is in Junrar's extract-to-folder helper. The Tika transform reads RAR entries as streams to pull out text and metadata and never extracts to disk, so the affected code is never called.

2026.09not detected
2026.06Not affectedPutki, Putki Web
2026.03Not affectedPutki, Putki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-84939 CVSS 9.1 org.freemarker/freemarker ↑ Back to top

The flaw needs an attacker to hand FreeMarker a malformed locale while it loads a template. FreeMarker ships only as a dependency of the vCard library used by the vCard transform, and that library uses it for one thing: rendering contacts as an HTML page, which Hop never does. Even that code loads a single fixed template and never takes a locale from input.

2026.09Not affectedPutki, Putki Web
2026.06not detected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-68525 CVSS 9.1 org.apache.tomcat/tomcat-catalina ↑ Back to top

Not affected. The flaw requires a security rule that applies to some HTTP methods and not others. None of the rules Putki Web ships is written that way, so the condition the flaw needs does not arise — and that holds whether or not authentication is enabled.

2026.09Not affectedPutki Web
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-65182 CVSS 9.1 org.apache.tomcat/tomcat-catalina ↑ Back to top

Not affected in the shipped default, which runs Putki Web without authentication and so has no access rules for the flaw to bypass. Putki Web also ships an optional JDBC-backed login that is not in production use anywhere and is being replaced in 2026.12; with that enabled we do not claim this is safe. See the note below.

Only when HOP_ENABLE_AUTH=trueNot claimed as not_affected. docker/putki-web/config/web.xml declares, in order, two permissive constraints on longer paths (/login.html and friends; /rwt-resources/*, /static/*, /ui/images/*) before the restrictive constraint on /* — which is the shape the advisory names. The exclusions are deliberate, so RAP assets do not trigger a form-login savedRequest, but deliberate is not the same as unaffected, and we have not reproduced it.
Only when HOP_ENABLE_AUTH=trueNot claimed as not_affected. docker/putki-web/config/web.xml declares, in order, two permissive constraints on longer paths (/login.html and friends; /rwt-resources/*, /static/*, /ui/images/*) before the restrictive constraint on /* — which is the shape the advisory names. The exclusions are deliberate, so RAP assets do not trigger a form-login savedRequest, but deliberate is not the same as unaffected, and we have not reproduced it.
Only when HOP_ENABLE_AUTH=trueNot claimed as not_affected. docker/putki-web/config/web.xml declares, in order, two permissive constraints on longer paths (/login.html and friends; /rwt-resources/*, /static/*, /ui/images/*) before the restrictive constraint on /* — which is the shape the advisory names. The exclusions are deliberate, so RAP assets do not trigger a form-login savedRequest, but deliberate is not the same as unaffected, and we have not reproduced it.
2026.09Not affectedPutki Web
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-42584 CVSS 9.1 io.netty/netty-codec-http ↑ Back to top

Not affected. Netty is present underneath the Google Cloud client libraries, as a client transport. Putki serves HTTP on Jetty, and nothing in the product uses the Netty component this flaw is in.

2026.09not detected
2026.06not detected
2026.03Not affectedPutki, Putki Web
2025.08 end of lifeNot affectedPutki, Putki Web
2025.05 end of lifeNot affectedPutki, Putki Web
CVE-2026-42579 CVSS 9.1 io.netty/netty-codec-dns ↑ Back to top

Not affected. Netty is present underneath the Google Cloud client libraries, as a client transport. Putki serves HTTP on Jetty, and nothing in the product uses the Netty component this flaw is in.

2026.09not detected
2026.06not detected
2026.03Not affectedPutki, Putki Web
2025.08 end of lifeNot affectedPutki, Putki Web
2025.05 end of lifeNot affectedPutki, Putki Web
CVE-2026-13221 CVSS 9.1 libperl5.38t64, perl, perl-base, perl-modules-5.38 ↑ Back to top

Not affected. Perl is present in the base image and nothing in Putki runs it. The flaw also needs a regular expression with more than 65535 fixed-string branches, which no Putki code could produce even if it did.

2026.09not detected
2026.06Not affectedPutki Web
2026.03Not affectedPutki Web
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2023-44981 CVSS 9.1 org.apache.zookeeper/zookeeper ↑ Back to top

Not affected. The plugin archives have never contained ZooKeeper. The container images briefly inherited it from an upstream base during 2026.09 development; those jars and the Beam and Spark engines that pulled them in were removed before release, and the build now fails if they reappear.

2026.09Not affectedPutki, Putki Web, plugins-zip
2026.06Not affectedPutki, Putki Web, client-zip
2026.03Not affectedPutki, Putki Web, client-zip
2025.08 end of lifenot detected
2025.05 end of lifenot detected

Helper images

Optional images we publish alongside the platform for convenience. They are not required to run Putki, and most deployments do not ship them to production.

What we can and cannot promise for these images

These images are upstream software repackaged with our configuration — Grafana and Postgres plus our dashboards, provisioning and schema setup. We add no application code, so where a flaw is in the upstream image we can ship a fix only once upstream publishes one. What we control is the version we pin, the packages we add and the configuration we ship, and we assess and disclose findings in these images to the same standard as the platform.

Helper images are versioned independently of the Putki release they ship with. Where a newer upstream version fixes vulnerabilities and stays compatible with a line, we move the pin forward and republish, so an older Putki release can carry a newer Grafana.

Compose init

Nothing outstanding.

Grafana

14 advisories · 6 affected

CVE-2025-68121 CVSS 10.0 stdlib ↑ Back to top

Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same change. The same advisory also matches a start-up helper in the warehouse database image, where it is not affected: that helper never makes network connections, which is what the flaw requires.

2026.09Affected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-33186 CVSS 9.8 google.golang.org/grpc ↑ Back to top

Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same change.

2026.09Affected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2024-24790 CVSS 9.8 stdlib ↑ Back to top

Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same change.

2026.09Affected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2025-22871 CVSS 9.1 stdlib ↑ Back to top

This reaches the monitoring image only through an unmaintained third-party Grafana plugin that has since been removed; the plugin provided a datasource no dashboard used, and it never served HTTP.

2026.09Affected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2024-8986 CVSS 9.1 github.com/grafana/grafana-plugin-sdk-go ↑ Back to top

Affected in the monitoring image on releases up to 2026.09, through a third-party Grafana datasource plugin whose last update was June 2024. The plugin provided a datasource that no dashboard used and has been removed for 2026.12. It is not reachable from any dashboard Putki ships.

2026.09Affected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
GHSA-r277-6w6q-xmqw CVSS 9.1 github.com/getkin/kin-openapi ↑ Back to top

Affected in the monitoring image on 2026.03 and 2026.06, and resolved in 2026.09 by a newer Grafana base image.

2026.09not detected
2026.06Affected
2026.03Affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-11856 CVSS 9.8 curl, libcurl, libcurl4t64 ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03Not affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-10536 CVSS 9.8 curl, libcurl, libcurl4t64 ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03Not affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-9079 CVSS 9.8 curl, libcurl ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-8925 CVSS 9.8 curl, libcurl ↑ Back to top

Not affected. The flaw is in curl's optional GSASL authentication support, which the curl shipped in this image is not built against — the library it would need is not installed. Nothing in the image invokes curl in any case.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-11564 CVSS 9.1 curl, libcurl ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-8927 CVSS 9.1 curl, libcurl ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-8926 CVSS 9.1 curl, libcurl ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected
CVE-2026-8924 CVSS 9.1 curl, libcurl ↑ Back to top

Not affected. curl is present in this image only because the base image ships it; nothing in Putki invokes it or links against libcurl, so the flaw has no way to be reached.

2026.09not detected
2026.06Not affected
2026.03not detected
2025.08 end of lifenot detected
2025.05 end of lifenot detected

Warehouse DB

1 advisory · 0 affected

CVE-2025-68121 CVSS 10.0 stdlib ↑ Back to top

Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same change. The same advisory also matches a start-up helper in the warehouse database image, where it is not affected: that helper never makes network connections, which is what the flaw requires.

2026.09Not affected
2026.06Not affected
2026.03Not affected
2025.08 end of lifenot detected
2025.05 end of lifenot detected

A deployment may also run Marquez and Neo4j alongside Putki. We ship the latest available upstream version of each, but we do not own, modify or extend them, and they are outside the scope of this page.

What upgrading resolves

2026.06 → 2026.09

  • resolvedGHSA-r277-6w6q-xmqw — Affected in the monitoring image on 2026.03 and 2026.06, and resolved in 2026.09 by a newer Grafana base image.
  • still openCVE-2025-68121 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2026-75595 — Affected on all supported releases. A vulnerable copy of Netty is bundled inside the gRPC transport library on the Hop runtime classpath. Most vulnerability sca
  • still openCVE-2026-33186 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2024-24790 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2026-8763 — Affected, by a narrow path, and not being patched on the current lines. Bouncy Castle is bundled inside JRuby inside the documentation-generation plugin. Reachi
  • still openCVE-2025-22871 — This reaches the monitoring image only through an unmaintained third-party Grafana plugin that has since been removed; the plugin provided a datasource no dashb
  • still openCVE-2024-8986 — Affected in the monitoring image on releases up to 2026.09, through a third-party Grafana datasource plugin whose last update was June 2024. The plugin provided
  • still openPUTKI-2026-0001 — Putki Web's pipeline execution API is reachable without authentication in the shipped default configuration. Putki Web is not supported for production use befor

2026.03 → 2026.06

  • still openCVE-2025-68121 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2026-75595 — Affected on all supported releases. A vulnerable copy of Netty is bundled inside the gRPC transport library on the Hop runtime classpath. Most vulnerability sca
  • still openCVE-2026-33186 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2024-24790 — Affected in the monitoring image on releases up to 2026.09, through the same unmaintained third-party Grafana plugin as CVE-2024-8986, and removed in the same c
  • still openCVE-2026-8763 — Affected, by a narrow path, and not being patched on the current lines. Bouncy Castle is bundled inside JRuby inside the documentation-generation plugin. Reachi
  • still openCVE-2025-22871 — This reaches the monitoring image only through an unmaintained third-party Grafana plugin that has since been removed; the plugin provided a datasource no dashb
  • still openCVE-2024-8986 — Affected in the monitoring image on releases up to 2026.09, through a third-party Grafana datasource plugin whose last update was June 2024. The plugin provided
  • still openGHSA-r277-6w6q-xmqw — Affected in the monitoring image on 2026.03 and 2026.06, and resolved in 2026.09 by a newer Grafana base image.
  • still openPUTKI-2026-0001 — Putki Web's pipeline execution API is reachable without authentication in the shipped default configuration. Putki Web is not supported for production use befor

Machine-readable data

Every assessment above is generated from a single source and published as OpenVEX alongside the release artifacts in your distribution channel. Point your scanner at it to suppress findings we have already judged, rather than triaging them again.

curl -sS -u  \
  https://forge.putki.io/api/v1/repos/putki/putki-dist-professional/releases/tags/v2026.09 \
  | jq -r '.assets[] | select(.name|startswith("vex-")) | .browser_download_url'

The feed is scoped to your edition, so it describes the artifacts you actually receive. Statuses and justifications use the OpenVEX vocabulary, so no translation is needed on your side.

What this page deliberately omits

No component inventory

We do not publish a full dependency listing or raw scanner output. A scanner report is neither complete nor accurate on its own — it misses vulnerable code inside shaded archives and reports fixed components as vulnerable — so publishing one would mean publishing its errors as our security claims. Entitled customers get the complete picture through the VEX feed above, scoped to what they run.

Reporting a vulnerability

Email security@putki.io. We acknowledge within one business day and aim to confirm an assessment within five. If you have a proof of concept against a supported release, say so in the subject line and we will treat it as break-glass.

Putki is built on Apache Hop. Vulnerabilities in Apache Hop itself are reported upstream first; patches for vanilla Apache Hop installations are published alongside ours.