Browse Source
* maint-2.31: Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudomaint
Johannes Schindelin
2 years ago
7 changed files with 257 additions and 12 deletions
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
Git v2.30.5 Release Notes |
||||
========================= |
||||
|
||||
This release contains minor fix-ups for the changes that went into |
||||
Git 2.30.3 and 2.30.4, addressing CVE-2022-29187. |
||||
|
||||
* The safety check that verifies a safe ownership of the Git |
||||
worktree is now extended to also cover the ownership of the Git |
||||
directory (and the `.git` file, if there is any). |
||||
|
||||
Carlo Marcelo Arenas Belón (1): |
||||
setup: tighten ownership checks post CVE-2022-24765 |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
Git v2.31.4 Release Notes |
||||
========================= |
||||
|
||||
This release merges up the fixes that appear in v2.30.5 to address |
||||
the security issue CVE-2022-29187; see the release notes for that |
||||
version for details. |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
# Helpers for running git commands under sudo. |
||||
|
||||
# Runs a scriplet passed through stdin under sudo. |
||||
run_with_sudo () { |
||||
local ret |
||||
local RUN="$TEST_DIRECTORY/$$.sh" |
||||
write_script "$RUN" "$TEST_SHELL_PATH" |
||||
# avoid calling "$RUN" directly so sudo doesn't get a chance to |
||||
# override the shell, add aditional restrictions or even reject |
||||
# running the script because its security policy deem it unsafe |
||||
sudo "$TEST_SHELL_PATH" -c "\"$RUN\"" |
||||
ret=$? |
||||
rm -f "$RUN" |
||||
return $ret |
||||
} |
@ -0,0 +1,93 @@
@@ -0,0 +1,93 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='verify safe.directory checks while running as root' |
||||
|
||||
. ./test-lib.sh |
||||
. "$TEST_DIRECTORY"/lib-sudo.sh |
||||
|
||||
if [ "$GIT_TEST_ALLOW_SUDO" != "YES" ] |
||||
then |
||||
skip_all="You must set env var GIT_TEST_ALLOW_SUDO=YES in order to run this test" |
||||
test_done |
||||
fi |
||||
|
||||
if ! test_have_prereq NOT_ROOT |
||||
then |
||||
skip_all="These tests do not support running as root" |
||||
test_done |
||||
fi |
||||
|
||||
test_lazy_prereq SUDO ' |
||||
sudo -n id -u >u && |
||||
id -u root >r && |
||||
test_cmp u r && |
||||
command -v git >u && |
||||
sudo command -v git >r && |
||||
test_cmp u r |
||||
' |
||||
|
||||
if ! test_have_prereq SUDO |
||||
then |
||||
skip_all="Your sudo/system configuration is either too strict or unsupported" |
||||
test_done |
||||
fi |
||||
|
||||
test_expect_success SUDO 'setup' ' |
||||
sudo rm -rf root && |
||||
mkdir -p root/r && |
||||
( |
||||
cd root/r && |
||||
git init |
||||
) |
||||
' |
||||
|
||||
test_expect_success SUDO 'sudo git status as original owner' ' |
||||
( |
||||
cd root/r && |
||||
git status && |
||||
sudo git status |
||||
) |
||||
' |
||||
|
||||
test_expect_success SUDO 'setup root owned repository' ' |
||||
sudo mkdir -p root/p && |
||||
sudo git init root/p |
||||
' |
||||
|
||||
test_expect_success 'cannot access if owned by root' ' |
||||
( |
||||
cd root/p && |
||||
test_must_fail git status |
||||
) |
||||
' |
||||
|
||||
test_expect_success 'can access if addressed explicitly' ' |
||||
( |
||||
cd root/p && |
||||
GIT_DIR=.git GIT_WORK_TREE=. git status |
||||
) |
||||
' |
||||
|
||||
test_expect_success SUDO 'can access with sudo if root' ' |
||||
( |
||||
cd root/p && |
||||
sudo git status |
||||
) |
||||
' |
||||
|
||||
test_expect_success SUDO 'can access with sudo if root by removing SUDO_UID' ' |
||||
( |
||||
cd root/p && |
||||
run_with_sudo <<-END |
||||
unset SUDO_UID && |
||||
git status |
||||
END |
||||
) |
||||
' |
||||
|
||||
# this MUST be always the last test |
||||
test_expect_success SUDO 'cleanup' ' |
||||
sudo rm -rf root |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue