{"id":"CVE-2026-62866","kind":"vulnerability","aliases":["CVE-2026-62866","GHSA-65gg-g7rw-6cpc","GO-2026-6548"],"related":[],"title":"Dasel: Selector lexer panics on trailing whitespace in `parseCurRune` in github.com/tomwright/dasel","description":"Dasel is a command-line tool and library for querying, modifying, and transforming data structures. From 3.0.0 until 3.11.2, selector/lexer/tokenize.go parseCurRune advances the input index across trailing whitespace and then reads the source at the exhausted index without an end-of-input check. A selector ending in whitespace, including input passed through lexer.NewTokenizer(...).Tokenize() or dasel.Query, can therefore cause an index-out-of-range panic and terminate the process. This issue is fixed in version 3.11.2.","summary":"Dasel, a Go library and CLI for querying data structures, panics when a selector ends in trailing whitespace. An attacker who controls the selector string can crash the process that parses it.","severity":"medium","cvss":6.2,"epss":0.00192,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/tomwright/dasel","fixed":[],"affected":"all versions","ecosystem":"go"},{"name":"github.com/tomwright/dasel/v2","fixed":[],"affected":"all versions","ecosystem":"go"},{"name":"github.com/tomwright/dasel/v3","fixed":["3.11.2"],"affected":">= 3.0.0, < 3.11.2","ecosystem":"go"}],"ecosystems":["go"],"tags":["dasel","go","package","self-hosted"],"not_affected_if":["dasel-v2-or-v1-only","selectors-not-user-controlled"],"how_to_check":"Run `go list -m github.com/tomwright/dasel/v3` and confirm the version is below 3.11.2.\nSearch the code for imports of github.com/tomwright/dasel or lexer.NewTokenizer/dasel.Query that take user-supplied selectors.","fix":"Upgrade github.com/tomwright/dasel/v3 to 3.11.2 or later.\nThe sources do not list a fixed version for the non-v3 module paths, so unknown.","status":"open","published_at":"2026-09-21T17:17:38+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T21:46:15+00:00","updated_at":"2026-10-23T21:46:15+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-23T21:46:15Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade github.com/tomwright/dasel/v3 to 3.11.2 or later.\nThe sources do not list a fixed version for the non-v3 module paths, so unknown.","reach":"unknown","impact":"low","summary":"Dasel, a Go library and CLI for querying data structures, panics when a selector ends in trailing whitespace. An attacker who controls the selector string can crash the process that parses it.","category":"package","who_cares":["go","dasel","self-hosted"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Attacker-supplied selector crashes the process, causing denial of service.","analyst_note":"Confirm which module paths (dasel, dasel/v2) are fixed and in which versions, via https://pkg.go.dev/vuln/GO-2026-6548.","how_to_check":"Run `go list -m github.com/tomwright/dasel/v3` and confirm the version is below 3.11.2.\nSearch the code for imports of github.com/tomwright/dasel or lexer.NewTokenizer/dasel.Query that take user-supplied selectors.\nunknown","needs_analyst":true,"not_affected_if":["dasel-v2-or-v1-only","selectors-not-user-controlled"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000542,"input_tokens":3074,"output_tokens":469,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':15A,23A,26A '-62866':16A,27A '-6548':24A '/tomwright/dasel':13A,30A '/tomwright/dasel/v2':33A '/tomwright/dasel/v3':36A '3.0.0':91C '3.11.2':93C,152C '65gg':19A '6cpc':21A 'across':100C 'advanc':96C 'attack':62B 'caus':134C 'check':118C 'cli':48B 'command':78C 'command-lin':77C 'control':64B 'crash':69B 'cve':14A,25A 'dasel':1A,37B,43B,74C 'dasel.query':131C 'data':51B,88C 'end':57B,115C,121C 'end-of-input':114C 'exhaust':110C 'fix':149C 'g7rw':20A 'ghsa':18A 'ghsa-65gg-g7rw-6cpc':17A 'github.com':12A,29A,32A,35A 'github.com/tomwright/dasel':11A,28A 'github.com/tomwright/dasel/v2':31A 'github.com/tomwright/dasel/v3':34A 'go':22A,38B,45B 'host':42B 'includ':124C 'index':99C,111C,137C 'index-out-of-rang':136C 'input':98C,117C,125C 'issu':147C 'lexer':3A 'lexer.newtokenizer':128C 'librari':46B,82C 'line':79C 'modifi':85C 'packag':39B 'panic':4A,53B,141C 'pars':73B 'parsecurrun':9A,95C 'pass':126C 'process':71B,145C 'queri':50B,84C 'rang':140C 'read':105C 'selector':2A,56B,66B,120C 'selector/lexer/tokenize.go':94C 'self':41B 'self-host':40B 'sourc':107C 'string':67B 'structur':52B,89C 'termin':143C 'therefor':133C 'token':129C 'tool':80C 'trail':6A,59B,101C 'transform':87C 'version':151C 'whitespac':7A,60B,102C,123C 'without':112C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-21T17:17:38+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6548","url":"https://pkg.go.dev/vuln/GO-2026-6548","severity":null,"published_at":"2026-10-01T20:23:38+00:00","modified_at":"2026-10-01T20:23:38+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-62866","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-62866","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-62866","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-62866","severity":null,"published_at":"2026-09-21T17:17:38+00:00","modified_at":"2026-09-24T21:25:27+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}