VDB
Sign up
HIGH7.8

GHSA-m835-3cm9-rggg

Joker linter executed project-local .jokerd/linter.* files during linting

Quick fix

GHSA-m835-3cm9-rggg — github.com/candid82/joker: upgrade to the fixed version with the command below.

go get github.com/candid82/joker@v1.8.2

Details

## 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).

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/github.com/candid82/joker
Introduced in: 0Fixed in: 1.8.2
Fixgo get github.com/candid82/joker@v1.8.2

References