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-jsonorg.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-jawnio.circe :: circe-parserorg.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:
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_0.25 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_0.27 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.10 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.11 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.12 | < 1.3.2 | 1.3.2 |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.13 | < 1.3.2 | 1.3.2 |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.13.0-M5 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.13.0-RC1 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.13.0-RC2 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_2.13.0-RC3 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3 | < 1.3.2 | 1.3.2 |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-M1 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-M2 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-M3 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-RC1 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-RC2 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parser_3.0.0-RC3 | all versions | no fix |
| Java / Kotlin (Maven) | org.typelevel:jawn-parserg | all versions | no fix |
References
- CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H- Weakness (CWE)
CWE-326, CWE-400- Platform
- Java / Kotlin (Maven)
- Package
org.typelevel:jawn-parser_0.25, org.typelevel:jawn-parser_0.27, org.typelevel:jawn-parser_2.10- Disclosed
- 06.01.2022
- Updated
- 11.10.2026 12:22
Sources and licenses
OSV / GitHub Advisory Database - GHSA-vc89-hccf-rq55 - CC BY 4.0
Vulnerability history: org.typelevel:jawn-parser_2.11
All published vulnerabilities of this package (Java / Kotlin (Maven)), newest first. Shows whether this is a one-off slip or a package that needs watching.
This is the only known vulnerability of this package.
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.