CVE-2026-46377: TomWright Dasel index out of bounds panic in selector lexer

CVE-2026-46377 · Severity: high · CVSS 7.5 · Published 2026-07-16

Dasel is a command-line tool and library used for querying and transforming data structures like JSON, YAML, and XML. A vulnerability in how it processes query strings allows an attacker to crash the application by providing a specially crafted query ending in a backslash. This results in a denial-of-service, potentially disrupting automated workflows or web services that rely on the tool to process data.

Technologies: github.com/tomwright/dasel (Go), github.com/tomwright/dasel/v2 (Go), github.com/tomwright/dasel/v3 (Go), TomWright Dasel. Vendors: Go, TomWright.

Quick answers

Is CVE-2026-46377 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-46377 being exploited in the wild.
How severe is CVE-2026-46377?
High severity, with a CVSS score of 7.5, published 16 July 2026.
Which products and versions are affected?
github.com/tomwright/dasel (Go) SEMVER:introduced=0; github.com/tomwright/dasel/v2 (Go) SEMVER:introduced=0; github.com/tomwright/dasel/v3 (Go) >= 3.0.0, <= 3.10.0, SEMVER:introduced=3.0.0, SEMVER:introduced=3.0.0,last_affected=3.10.0; TomWright Dasel >= 3.0.0, < 3.10.1, >= 3.0.0, <= 3.10.0.
Is there a fix for CVE-2026-46377?
A patch was published on 2026-05-13: Version 3.10.1 released with fix Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-46377 attacked?
It is attacked with local access, in a software library.
Am I affected by CVE-2026-46377?
Check whether you run github.com/tomwright/dasel (Go), github.com/tomwright/dasel/v2 (Go), github.com/tomwright/dasel/v3 (Go) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

An index-out-of-range vulnerability exists in the dasel selector lexer within the `(*Tokenizer).parseCurRune` function in `selector/lexer/tokenize.go`. When the lexer encounters an escape character (backslash) as the final character of a quoted string, it increments the position pointer beyond the source buffer's length and attempts a read without a bounds check. This causes a Go runtime panic. An attacker who can influence the selector or query string passed to dasel can exploit this to cause a denial-of-service (DoS) by crashing the process. The issue is resolved in version 3.10.1 by adding a check for `UnexpectedEOFError`.

Affected products

  • TomWright dasel >= 3.0.0, < 3.10.1

Identifiers

  • CVE-2026-46377
  • GHSA-m5j3-4634-c2vq
  • GO-2026-5491

Timeline

  • 2026-05-13: advisory: GitHub Security Advisory published
  • 2026-05-13: patched: Version 3.10.1 released with fix
  • 2026-07-16: disclosed: CVE-2026-46377 published to NVD

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.