CVE-2026-59168: Dasel: Unbounded recursion in JSON and XML readers causes unrecoverable stack-overflow DoS

Published Sep 21, 2026
·
Updated

Dasel is a command-line tool and library for querying, modifying, and transforming data structures. From 3.0.0 until 3.11.1, parsing/json/jsonreader.go decodeValue, decodeObject, and decodeArray, and parsing/xml/reader.go parseElement, recurse once per input nesting level without a depth guard. Deeply nested attacker-controlled JSON or XML supplied through parsing.Format(...).NewReader(...).Read(data), the command-line interface, or the parse selector function can exhaust the Go goroutine stack and raise an unrecoverable fatal error that terminates the entire process. The XML input-size limit does not prevent depth exhaustion, and defer or recover cannot intercept the failure. This issue is fixed in version 3.11.1.

Affected Software

1 affected component
Dasel Dasel>=3.0.0<3.11.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade dasel to a version that resolves this vulnerability.

    Fixed in 3.11.1

Event History

Sep 21, 2026
CVE Published
via MITRE·04:55 PM
Data Sourced
via MITRE·04:55 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·05:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are realistically exposed to this denial of service?

Any application, service, or command-line workflow using affected Dasel versions that parses attacker-controlled JSON or XML is exposed. The affected parsing paths include Format(...).NewReader(...).Read(data), the command-line interface, and the parse selector function.

2

What must an attacker provide to trigger the issue?

An attacker needs to supply JSON or XML with sufficiently deep nesting to an affected parser. No privileges or user interaction are required according to the provided CVSS vector.

3

Does limiting XML input size prevent exploitation?

No. The XML input-size limit does not prevent depth-based stack exhaustion, because the issue is caused by nesting depth rather than total input size.

4

Can an application recover from an attempted exploit with defer or recover?

No. Exhausting the Go goroutine stack causes an unrecoverable fatal error that terminates the entire process, and defer or recover cannot intercept it.

5

What version fixes the issue?

Upgrade Dasel to version 3.11.1. Versions from 3.0.0 until 3.11.1 are affected.

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