{"id":"CVE-2026-59172","aliases":["GO-2026-6450"],"url":"https://o3.security/vulnerability/CVE-2026-59172","summary":"Joker linter executed project-local .jokerd/linter.* files during linting","details":"## Impact\n\nIn Joker versions before 1.8.2, `joker --lint <file>` 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.\n\nThis could be triggered by editor integrations or CI jobs that automatically run `joker --lint` on checked-out source code.\n\n## Patches\n\nFixed 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.\n\n## Workarounds\n\nUsers 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.\n\n## Credits\n\nReported by Younghun Ko of AhnLab (@koyokr).","published":"2026-09-09T23:48:46Z","modified":"2026-09-17T17:41:02.160584664Z","cvss":{"score":7.8,"severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Go","name":"github.com/candid82/joker","fixedVersion":"1.8.2"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/candid82/joker/security/advisories/GHSA-m835-3cm9-rggg"},{"type":"PACKAGE","url":"https://github.com/candid82/joker"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-09-17T17:41:02.160584664Z"}}