Explicitly warn about any URI that uses an unsecure protocol (git, http) even if it's a fallback URI. This is necessary because an attacker may block HTTPS connections, effectively forcing the fallback to the unsecure protocol. --- eclass/git-r3.eclass | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/eclass/git-r3.eclass b/eclass/git-r3.eclass index 42b586811368..1eb0baedc67f 100644 --- a/eclass/git-r3.eclass +++ b/eclass/git-r3.eclass @@ -570,6 +570,15 @@ git-r3_fetch() { [[ ${repos[@]} ]] || die "No URI provided and EGIT_REPO_URI unset" + local r + for r in "${repos[@]}"; do + if [[ ${r} == git:* || ${r} == http:* ]]; then + ewarn "git-r3: ${r%%:*} protocol in unsafe and may be subject to MITM attacks" + ewarn "(even if used only as fallback). Please use https instead." + ewarn "[URI: ${r}]" + fi + done + local -x GIT_DIR _git-r3_set_gitdir "${repos[0]}" @@ -582,7 +591,7 @@ git-r3_fetch() { fi # try to fetch from the remote - local r success saved_umask + local success saved_umask if [[ ${EVCS_UMASK} ]]; then saved_umask=$(umask) umask "${EVCS_UMASK}" || die "Bad options to umask: ${EVCS_UMASK}" -- 2.14.1