Résumé
Joker linter executed project-local .jokerd/linter.* files during linting
Détails de l’avis
Impact
In 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.
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).
Références
Vulnérabilités liées
Tout Supply chain →- HIGHCVE-2026-86063
Claude Code: Plugin Hash Pin Bypass Allows Bypass of Hash Pinning
- HIGHCVE-2026-61437
PraisonAI: Unsafe Dynamic Module Loading Leads to Arbitrary Code Execution via tools.py in AgentFlow
- MEDIUMCVE-2026-105745
Docling imports plugin entry points before the allow_external_plugins check
- HIGHCVE-2026-105677
Ghost: Remote Code Execution via Theme Translation Files
- HIGHCVE-2026-86540
knowns OS Command Injection via Insecure LSP Binary Path Config in .knowns/config.json
- HIGHCVE-2026-92950
vm2 CLI provides no sandbox isolation - host-realm require() is reachable from sandboxed scripts