Patch the CVE in the version you already run. No upgrade. Your CVE. Patched in your version.
CVE fix · Seal Security

Patch the CVE. Zero upgrades.

Your scanner flagged it, and the advisory says upgrade. Upgrading means a migration and a regression cycle. Transitive? Even worse.
Seal backports the security fix to the version you are running today and delivers it as a drop-in build. Same coordinates, same API, no upgrade, no code changes.

Across Seal's patching platform

Engineering hours saved
1.2M+
Estimated engineering hours returned to roadmaps by avoiding forced upgrades and regression work.
Average patch size
6.5lines
A small, focused security fix that your team can review without taking on a migration.
Time to fix
Pre-CVE
Before the CVE, and before a fixed version is released, in the packages Seal covers.

Engineering hours are estimated from CVEs patched and the average upgrade and regression effort avoided per fix.

Why upgrades stall

The ticket says "upgrade." Your roadmap says otherwise.

Most CVEs get fixed upstream, in some later release. That is the industry's answer and it is why the backlog never clears: the fix ships to a version you are not running, and the work to get there is a migration, not a patch.

!

The fix exists, just not for your version

Upstream patches the line it is currently maintaining. Pinned to something older? The advisory reads as "upgrade to fix", and your only options are a migration or an open finding that stays open.

⇡

Most of them are not your code

A modern app pulls in hundreds of transitive dependencies. You did not choose the vulnerable version, you inherited it, and you still own the finding on the report.

⏱

Seal watches upstream before the CVE

Seal monitors Tomcat, Spring, Log4j, Netty, React, Next.js and more for silent security fixes upstream, so the next one is often sealed before its CVE goes public.

The fix path

Patch now. Upgrade on your own timeline.

Seal backports the security fix into the exact version you run and ships it as a sealed, drop-in build. Seal fixes up to 99% of vulnerabilities in critical and high severity, across Maven, npm, PyPI, Go, NuGet, RubyGems, Composer and OS packages, and the patch itself is usually fewer than 10 lines. As we showed in our research on the patch gap, waiting on somebody else's release train is the slowest path there is.

How we do it

The fix, without the migration. A sealed version is your exact version plus the security patch, 6.5 lines on average.

Running in your build
spring-beans
4.3.30.RELEASE 4.3.30.RELEASE-sp1
CVE-2022-22965 · critical 9.8 sealed · no CVE
4.3.x reached end of life on 31 Dec 2020
CachedIntrospectionResults.java · spring-beans 5.3.18
31 Mar 2022
  PropertyDescriptor[] pds = this.beanInfo.getPropertyDescriptors();context
  for (PropertyDescriptor pd : pds) {context
+    if (Class.class == beanClass && (!"name".equals(pd.getName())the fix
+        && !pd.getName().endsWith("Name"))) {the fix
+        continue;  // only name variants of Classthe fix
+    }the fix
+    if (ClassLoader.class … ProtectionDomain.class) {the fix
+        continue;  // nobody needs to bind to thosethe fix
    if (logger.isTraceEnabled()) {context
Shipped in 5.3.18 and 5.2.20 only. Never in 4.3.x.

Verified against your version, not the newest one

Every backport is built and tested before it ships.

Builds clean against 4.3.30.RELEASE
Spring 4.3 test suite passes
Public API byte-compatible, no call sites change
Spring4Shell payload no longer binds

Delivered where your builds already look

A distinct version your tooling can resolve, pin, and audit.

JFrog Artifactory
Seal remote repository, resolves transparently
Sonatype Nexus
Same coordinates, sealed version
Seal CLI in CI
Discovery, substitution, scanner sync
Signed evidence
Patch source, SBOM entry, provenance

No application code changes. No manifest rewrites. Version pins stay yours.

The finding closes on the next scan

A real version bump, so your system of record moves on its own.

Finding
Severity
Status
CVE-2022-22965
Critical 9.8
No fix for 4.3.x Fixed in 4.3.30.RELEASE-sp1

Synced back to Snyk · Black Duck · GHAS · Wiz · Checkmarx · Aqua

the security fix · 6 lines
+ if (Class.class == beanClass && …
+    continue;
+ if (ClassLoader.class … ) continue;
How we do it

The fix, without the migration. A sealed version is your exact version plus the security patch, 6.5 lines on average.

Running in your build
spring-beans
4.3.30.RELEASE CVE-2022-22965 · critical 9.8 · no fix for 4.3.x
sealed ↓
4.3.30.RELEASE-sp1 sealed · no CVE
No application code changes. No manifest rewrites. Version pins stay yours.
  1. 01
    Isolate
    Take only the added lines from the release that fixes it.
  2. 02
    Backport
    Apply them to the version you actually run.
  3. 03
    Verify
    Build it, test it, prove the vulnerability is gone.
  4. 04
    Deliver
    The sealed version lands in your artifact repo and CI.
  5. 05
    Close
    Your scanner sees a fixed version and the finding closes.
FAQ

Common questions

Get protected

Bring us the CVE ID. Keep the version.

Get a tested patch for the version you already run.

Book 30 minutes, name the CVE you are carrying and the version you are pinned to, and see the sealed build for your stack. No migration plan required.

Book a demo Or scan your dependencies free