Skip to content
HighSupply chainBLWK-DEV-003

Git allows the ext:: transport, which runs commands from a URL (‹path›) ​

What this means ​

‹path› sets protocol.allow (or protocol.ext.allow) to always. An ext:: remote is a shell command, so a submodule URL or a link in a project can run arbitrary code on this machine when Git fetches it. Git disables it by default for exactly this reason.

How to fix it ​

Remove the setting: git config --global --unset protocol.allow and git config --global --unset protocol.ext.allow. If one tool needs ext::, pass -c protocol.ext.allow=always on that one command.

Check it yourself ​

Run a scan and look for BLWK-DEV-003 in the results:

sh
bulwark scan

Installed the standalone CLI package instead of the app? The command is bulwarkctl.

How Bulwark decides

Bulwark reads dev_tool_config and reports this check when:

text
kind == "git" and ext_protocol_allowed == true

If a value can't be read, Bulwark reports the check as undetermined rather than passing it. View the rule source.

References ​

Released under the Apache License 2.0.