GitHub Advisoryadvisory · Go
GHSA-m835-3cm9-rggg Joker linter executed project-local .jokerd/linter.* files during linting
HIGH
Official page ↗
- Aliases
- CVE-2026-59172
- Ecosystem
- Go
- Packages
- github.com/candid82/joker
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-829
- Reviewed
- 2026-09-09
Affected packages
• Go github.com/candid82/joker: < 1.8.2 → fixed in 1.8.2
Description
Impact
In Joker versions before 1.8.2, `joker --lint ` located a `.jokerd/` directory by walking up from the linted file and executed matching `linter.*` files from that directory before linting. Because these files are executable Joker/Clojure code, linting a file inside an untrusted repository could execute code supplied by that repository.
This could be triggered by editor integrations or CI jobs that automatically run `joker --lint` on checked-out source code.
Patches
Fixed in Joker v1.8.2. Executable linter customization files are now loaded only from the user's home `.jokerd` directory (`~/.jokerd/linter.cljc`, `~/.jokerd/linter.clj`, `~/.jokerd/linter.cljs`, or `~/.jokerd/linter.joke`). Project-local `.jokerd/linter.*` files are no longer executed.
Workarounds
Users who cannot upgrade should avoid running `joker --lint` on untrusted repositories, especially through editor integrations or unattended CI. Removing or disabling project-local `.jokerd/linter.*` files before linting also avoids the code-execution path.
Credits
Reported by Younghun Ko of AhnLab (@koyokr).
Related
Alias · CVE (1)
- CVE-2026-59172 Joker is a small Clojure interpreter, linter and formatter written in Go. vulnerability
Weakness · CWE (1)
- CWE-829 Inclusion of Functionality from Untrusted Control Sphere weakness