Skip to content
Fencer Vulns
low 3.0

CVE-2024-41948 json

biscuit-java vulnerable to public key confusion in third party block

published 2024-07-31 2 y ago modified 2026-06-17 4 mo ago also GHSA-5hcj-rwm6-xmw4 , EUVD-2024-2267

cvss
3.0
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 20%
public exploits
0
none known

Summary

biscuit-java is the java implementation of Biscuit, an authentication and authorization token for microservices architectures. Third-party blocks can be generated without transferring the whole token to the third-party authority. Instead, a ThirdPartyBlock request can be sent, providing only the necessary info to generate a third-party block and to sign it, which includes the public key of the previous block (used in the signature) and the public keys part of the token symbol table (for public key interning in datalog expressions). A third-part block request forged by a malicious user can trick the third-party authority into generating datalog trusting the wrong keypair. This vulnerability is fixed in 4.0.0.

Patch / fix

  • maven org.biscuitsec:biscuit 4.0.0
  • biscuitsec biscuit-java 4.0.0

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 3.0 CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:N/I:L/A:N
NVD 3.1 5.0 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:N
GitHub 3.1 3.0 CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:C/C:N/I:L/A:N

Affected packages

ecosystem package affected fixed in
maven org.biscuitsec:biscuit
>=3.0.0, <4.0.0
4.0.0

Affected products

  • biscuit-auth biscuit-java

Classification

Weakness
  • CWE-1259 Improper Restriction of Security Token Assignment

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.