CVE-2025-31129 jooby-pac4j: deserialization of untrusted data

High 8.8 Published Updated

Attackers can execute arbitrary code by sending malicious serialized data to the Jooby web framework's pac4j session store.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2025-31129?

CVE-2025-31129 is a high-severity unsafe deserialization vulnerability in jooby-project jooby, published on 31 Mar 2025. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official description

Jooby is a web framework for Java and Kotlin. The pac4j io.jooby.internal.pac4j.SessionStoreImpl#get module deserializes untrusted data. This vulnerability is fixed in 2.17.0 (2.x) and 3.7.0 (3.x).

Weakness: CWE-502

Which versions are affected by CVE-2025-31129?

4 open source packages ship an affected version, including io.jooby:jooby-pac4j.

PackageAffectedFixed in
io.jooby:jooby-pac4j MavenAll versions2.17.0
io.jooby:jooby-pac4j MavenAll versions2.17.0
io.jooby:jooby-pac4j MavenFrom 3.0.0.M13.7.0
io.jooby:jooby-pac4j MavenFrom 3.0.0.M13.7.0

How do I fix CVE-2025-31129?

Upgrade io.jooby:jooby-pac4j to a fixed version for your release line: 2.17.0 or 3.7.0.

Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.

Is CVE-2025-31129 being exploited?

There is no known exploitation of CVE-2025-31129 in the wild and no public exploit code.

Public exploit code: 1 proofs of concept on GitHub.

Sources

Also known as GHSA-7c5v-895v-w4q5.

Is CVE-2025-31129 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free