Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit65b8c6a

Browse files
committed
Add test forCVE-2023-41040
1 parent64ebb9f commit65b8c6a

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

‎test/test_refs.py

Lines changed: 15 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
fromitertoolsimportchain
8+
frompathlibimportPath
89

910
fromgitimport (
1011
Reference,
@@ -20,9 +21,11 @@
2021
fromgit.objects.tagimportTagObject
2122
fromtest.libimportTestBase,with_rw_repo
2223
fromgit.utilimportActor
24+
fromgitdb.excimportBadName
2325

2426
importgit.refsasrefs
2527
importos.pathasosp
28+
importtempfile
2629

2730

2831
classTestRefs(TestBase):
@@ -616,3 +619,15 @@ def test_dereference_recursive(self):
616619

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp