Ecosyste.ms: Advisories
An open API service providing security vulnerability metadata for many open source software ecosystems.
Security Advisories: GSA_kwCzR0hTQS12Yzg5LWhjY2YtcnE1Nc0hAg
Hash collision in typelevel jawn
Impact
Extenders of the org.typelevel.jawn.SimpleFacade
and org.typelevel.jawn.MutableFacade
who don't override objectContext()
are vulnerable to a hash collision attack. Most applications do not implement these traits directly, but inherit from a library:
Affected implementations include:
org.http4s
::http4s-play-json
org.typelevel :: jawn-ast
(< 0.8.0)org.typelevel :: jawn-play
(discontinued)org.typelevel :: jawn-rojoma
(discontinued)org.typelevel :: jawn-spray
(discontinued)
Unaffected implementations include:
io.argonaut :: argonaut-jawn
io.circe :: circe-parser
org.typelevel :: jawn-ast
(>= 0.8.0)org.typelevel :: jawn-json4s
(discontinued)org.typelevel :: jawn-argonaut
(discontinued)
Patches
jawn-parser-1.3.2
fixes the issue.
Workarounds
Override objectContext()
to use a collision-safe collection. See the patch for an example in both SimpleFacade
and MutableFacade
.
References
Credits
- @kag0, for the report and the patch
For more information
If you have any questions or comments about this advisory:
- Open an issue in typelevel/jawn
- E-mail a maintainer:
JSON: https://advisories.ecosyste.ms/api/v1/advisories/GSA_kwCzR0hTQS12Yzg5LWhjY2YtcnE1Nc0hAg
Source: GitHub Advisory Database
Origin: Unspecified
Severity: Moderate
Classification: General
Published: almost 3 years ago
Updated: almost 2 years ago
CVSS Score: 5.9
CVSS vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Percentage: 0.00117
EPSS Percentile: 0.46529
Identifiers: GHSA-vc89-hccf-rq55, CVE-2022-21653
References:
- https://github.com/typelevel/jawn/security/advisories/GHSA-vc89-hccf-rq55
- https://nvd.nist.gov/vuln/detail/CVE-2022-21653
- https://github.com/typelevel/jawn/pull/390
- https://github.com/advisories/GHSA-vc89-hccf-rq55
Blast Radius: 1.0
Affected Packages
maven:org.typelevel:jawn-parser
Affected Version Ranges: < 1.3.2Fixed in: 1.3.2