Joker linter executes repository-supplied linter files
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-829.
Summary
Joker, a Clojure interpreter, linter and formatter written in Go, is affected before 1.8.2. When linting a file, it walks up to find a .jokerd/ directory and executes the linter.* files there before linting. The flaw is CWE-829, inclusion of functionality from an untrusted control sphere: a user who lints a file in an untrusted repository runs code the repository supplies, with that user's privileges. Editor integrations and CI jobs that lint checked-out source can trigger this automatically.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Joker is a small Clojure interpreter, linter and formatter written in Go. Prior to 1.8.2, `joker --lint <file>` walks upward from the linted file to locate a `.jokerd/` directory and executes matching `linter.*` files before linting. Those files contain executable Joker/Clojure code, so linting a file inside an untrusted repository can execute repository-supplied code with the linter user's privileges. Editor integrations and CI jobs that automatically lint checked-out source can trigger this behavior. The patch stops executing project-local linter customizations and loads executable customization only from the user's home directory. This issue is fixed in version 1.8.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| candid82 | joker | before 1.8.2 | 1.8.2 | Patch available | CNA |
| — | github.com/candid82/joker (Go) | before 1.8.2 | 1.8.2 | Patch available | GHSA-m835-3cm9-rggg |
- joker Vendorcandid82 Affected before 1.8.2 Fixed in 1.8.2 Patch available CNA
- github.com/candid82/joker (Go) Vendor— Affected before 1.8.2 Fixed in 1.8.2 Patch available GHSA-m835-3cm9-rggg
Remediation
Update Joker to version 1.8.2, which loads linter customization only from the user's home directory. The Go module github.com/candid82/joker lists 1.8.2 as its fixed version.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA joker (candid82) Fixed in 1.8.2
- Fix · GHSA-m835-3cm9-rggg github.com/candid82/joker (Go) Fixed in 1.8.2 Advisory →
Timeline
- 2026-10-28 Threatist record created from CVE-2026-59172
- 2026-10-28 CISA SSVC decision points changed
- 2026-10-28 Priority changed: MEDIUM → LOW
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences