GitHub Advisoryadvisory · Go

GHSA-m835-3cm9-rggg Joker linter executed project-local .jokerd/linter.* files during linting

HIGH Published 2026-09-09 Modified 2026-09-09 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

References