Content-Length: 304055 | pFad | http://github.com/gitpython-developers/GitPython/commit/a96ba17c5546a28ef40c196ebd6206705190d169

A0 Add test for CVE-2023-41040 · gitpython-developers/GitPython@a96ba17 · GitHub
Skip to content

Commit a96ba17

Browse files
committed
Add test for CVE-2023-41040
1 parent a56113e commit a96ba17

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

test/test_refs.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# the BSD License: http://www.opensource.org/licenses/bsd-license.php
66

77
from itertools import chain
8+
from pathlib import Path
89

910
from git import (
1011
Reference,
@@ -20,9 +21,11 @@
2021
from git.objects.tag import TagObject
2122
from test.lib import TestBase, with_rw_repo
2223
from git.util import Actor
24+
from gitdb.exc import BadName
2325

2426
import git.refs as refs
2527
import os.path as osp
28+
import tempfile
2629

2730

2831
class TestRefs(TestBase):
@@ -616,3 +619,14 @@ def test_dereference_recursive(self):
616619

617620
def test_reflog(self):
618621
assert isinstance(self.rorepo.heads.master.log(), RefLog)
622+
623+
def test_refs_outside_repo(self):
624+
# Create a file containing a valid reference outside the repository. Attempting
625+
# to access it should raise an exception. This tests for CVE-2023-41040.
626+
git_dir = Path(self.rorepo.git_dir)
627+
repo_parent_dir = git_dir.parent.parent
628+
with tempfile.NamedTemporaryFile(dir=repo_parent_dir) as ref_file:
629+
ref_file.write(b"91b464cd624fe22fbf54ea22b85a7e5cca507cfe")
630+
ref_file.flush()
631+
ref_file_name = Path(ref_file.name).name
632+
self.assertRaises(BadName, self.rorepo.commit, f"../../{ref_file_name}")

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/gitpython-developers/GitPython/commit/a96ba17c5546a28ef40c196ebd6206705190d169

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy