CVE-2026-61814: Jawn: Quadratic parsing effort in AsyncParser

Published Sep 23, 2026
·
Updated

AsyncParser can be forced to perform O(n^2) work on the length of the input. When a single JSON token arrives across many small chunks, each absorb call rescans the incomplete token from the start.

Impact

Denial of service via CPU exhaustion when parsing untrusted JSON.

Preconditions: - Application uses AsyncParser - Attacker can send large tokens with control over chunk sizes.

Patches

Fixed in jawn-parser-1.7.0.

Workarounds

If you can't upgrade immediately: - Use the synchronous Parser. - Buffer incoming bytes into larger chunks before calling absorb

Other sources

Jawn is an open source JSON parser. Prior to 1.7.0, Jawn's AsyncParser can perform quadratic work when a single JSON token is delivered across many small chunks because each absorb call rescans the incomplete token from the start. A remote attacker who controls untrusted JSON input and its chunk sizes can exhaust CPU resources and cause denial of service in applications using AsyncParser. This issue is fixed in version 1.7.0.

MITRE

Affected Software

3 affected componentsFixes available
Jawn Jawn<1.7.0
maven/org.typelevel:jawn-parser_3<=1.6.0
1.7.0
maven/org.typelevel:jawn-parser_2.13<=1.6.0
1.7.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade maven/org.typelevel:jawn-parser_3 to a version that resolves this vulnerability.

    Fixed in 1.7.0
  2. Upgrade

    Upgrade maven/org.typelevel:jawn-parser_2.13 to a version that resolves this vulnerability.

    Fixed in 1.7.0
  3. Upgrade

    Upgrade maven/org.typelevel:jawn-parser_2.12 to a version that resolves this vulnerability.

    Fixed in 1.7.0
  4. Upgrade

    Upgrade jawn-parser to a version that resolves this vulnerability.

    Fixed in 1.7.0
  5. Compensating control

    Buffer incoming bytes into larger chunks before calling absorb to reduce rescanning of incomplete tokens.

  6. Compensating control

    Use the synchronous Parser instead of AsyncParser when processing untrusted JSON.

Event History

Sep 23, 2026
CVE Published
via MITRE·06:39 PM
Data Sourced
via MITRE·06:39 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·09:23 PM
Data Sourced
via GitHub·09:23 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which applications are exposed to this denial-of-service issue?

Applications using Jawn's AsyncParser on untrusted JSON are exposed when an attacker can control both the JSON input and how it is split into chunks. The impact is CPU exhaustion, resulting in denial of service.

2

Does exploitation require authentication or user interaction?

No. The vector is network-accessible, requires low attack complexity, and requires neither privileges nor user interaction.

3

What input pattern triggers the excessive CPU use?

A single JSON token must be delivered across many small chunks. Before the token is complete, each absorb call can rescan the incomplete token from its start, producing quadratic parsing work.

4

What version contains the fix?

The issue is fixed in Jawn version 1.7.0. Upgrading to 1.7.0 removes the vulnerable AsyncParser behavior.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203