Cyber Resilience

CVE-2025-31129

HighRCE

Published: 31 March 2025

Published
31 March 2025
Modified
15 April 2026
KEV Added
Patch
CVSS Score v3.1 8.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS Score 0.0046 64.7th percentile
Risk Priority 18 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2025-31129 is a high-severity Deserialization of Untrusted Data (CWE-502) vulnerability. Its CVSS base score is 8.8 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked in the top 35.3% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified are NIST 800-53 SI-2 (Flaw Remediation) and RA-5 (Vulnerability Monitoring and Scanning).

Deeper analysis

CVE-2025-31129 affects Jooby, a web framework for Java and Kotlin, specifically in the pac4j module's io.jooby.internal.pac4j.SessionStoreImpl#get function, which deserializes untrusted data. This deserialization flaw, mapped to CWE-502, impacts Jooby versions prior to 2.17.0 in the 2.x series and 3.7.0 in the 3.x series. Published on 2025-03-31, it carries a CVSS v3.1 base score of 8.8 (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), indicating high severity due to potential for significant impact.

A remote, unauthenticated attacker can exploit this vulnerability over the network with low attack complexity, though it requires user interaction, such as tricking a victim into triggering the deserialization process. Successful exploitation enables high confidentiality, integrity, and availability impacts, potentially allowing arbitrary code execution or other severe consequences typical of unsafe deserialization.

Mitigation is available through upgrades to Jooby 2.17.0 (2.x) or 3.7.0 (3.x), as detailed in the project's GitHub security advisory GHSA-7c5v-895v-w4q5 and fixing commit 3e13562cf36d7407813eae464e0f4b598de15692. Vulnerable code locations are visible in SessionStoreImpl.java at lines 39-45 (v2.x) and 77-84 (v3.6.1).

EU & UK References

Vulnerability details

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).

CWE(s)

Related Threats

MITRE ATT&CK Enterprise TechniquesAI

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Why these techniques?

Unsafe deserialization (CWE-502) in public-facing Java web framework enables remote code execution via crafted network requests, directly mapping to exploitation of public-facing applications.

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

CVEs Like This One

CVE-2024-13770Shared CWE-502
CVE-2026-27303Shared CWE-502
CVE-2025-53586Shared CWE-502
CVE-2025-64353Shared CWE-502
CVE-2025-31047Shared CWE-502
CVE-2026-27096Shared CWE-502
CVE-2023-49886Shared CWE-502
CVE-2026-23542Shared CWE-502
CVE-2025-66631Shared CWE-502
CVE-2026-40044Shared CWE-502

Affected Assets

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

prevent

Directly requires timely identification, reporting, and correction of flaws like the unsafe deserialization in Jooby's SessionStoreImpl by upgrading to fixed versions 2.17.0 or 3.7.0.

prevent

Mandates validation of untrusted information inputs such as session data deserialized by SessionStoreImpl#get to block malicious payloads.

detect

Enables vulnerability scanning to identify deployments of vulnerable Jooby versions affected by CVE-2025-31129 for remediation.

References