Joker: Execution of repository-supplied linter code during linting
Summary
Joker is a Clojure interpreter, linter and formatter written in Go. Before version 1.8.2, running "joker --lint" on a file executed linter files from a project-local .jokerd directory, which can contain attacker-controlled Clojure code. Linting a file from an untrusted repository, for example through an editor integration or a CI job, can therefore run code with the privileges of the linter user.
Affected
- Joker versions before 1.8.2 (candid82/joker, Go module github.com/candid82/joker)
Fixed in
- Joker 1.8.2
Workaround
- Do not run "joker --lint" on untrusted repositories, especially through editor integrations or unattended CI.
- Remove or disable project-local .jokerd/linter.* files before linting. A repository checkout can recreate these files, so this is only a stopgap.
Exploitation
- The vendor reports that exploitation requires a user to lint a file in a malicious repository (user interaction required).
- A third-party write-up describes a proof of concept; it has not been verified.
- No evidence of active exploitation was found. CISA SSVC assessment: exploitation none, automatable no.
- EPSS: 0.16 % (percentile 5).
Our recommendation
- Check developer workstations, CI runners and editor setups for Joker, for example via Go module lists or package inventories.
- Upgrade Joker to version 1.8.2 or later where it is installed.
- Until the upgrade is done, avoid linting untrusted code and disable automatic linting of checked-out third-party code in editors and CI.
- Monitor for unexpected processes started by the linter.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-m835-3cm9-rggg github.com
- Fix commit f207521 github.com
- Joker v1.8.2 tag github.com
- OSV entry GHSA-m835-3cm9-rggg osv.dev
- GitLab advisory CVE-2026-59172 advisories.gitlab.com
- Go vulnerability database pkg.go.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 21:54.
Original description (NVD)
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.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
