GHSA-vc89-hccf-rq55MediumCVSS 5.9

Hash collision in typelevel jawn

Published
January 6, 2022
Last Modified
December 16, 2025

🔗 CVE IDs covered (1)

📋 Description

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

  • https://github.com/typelevel/jawn/pull/390

Credits

  • @kag0, for the report and the patch

For more information

If you have any questions or comments about this advisory:

🎯 Affected products18

  • maven/org.typelevel:jawn-parser_0.25:< 1.3.2
  • maven/org.typelevel:jawn-parserg:< 1.3.2
  • maven/org.typelevel:jawn-parser_0.27:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.10:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.11:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.12:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.13:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.13.0-M5:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.13.0-RC1:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.13.0-RC2:< 1.3.2
  • maven/org.typelevel:jawn-parser_2.13.0-RC3:< 1.3.2
  • maven/org.typelevel:jawn-parser_3:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-M1:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-M2:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-M3:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-RC1:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-RC2:< 1.3.2
  • maven/org.typelevel:jawn-parser_3.0.0-RC3:< 1.3.2

🔗 References (4)