Skip to content

Commit b862187

Browse files
authored
Merge pull request #9 from nberlee/path_sanitize
Path sanitize
2 parents 2fd7718 + dc4ed4f commit b862187

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

.github/workflows/dependabot.yml renamed to .github/dependabot.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
version: 2
77
updates:
8-
- package-ecosystem: "" # See documentation for possible values
8+
- package-ecosystem: "gomod" # See documentation for possible values
99
directory: "/" # Location of package manifests
1010
schedule:
11-
interval: "weekly"
11+
interval: "daily"

netns/netns.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ func GetNetNsPids(netNSNames []string) (pidNetNS *map[uint32]string) {
5050

5151
func getNetNsInodeFromBindMount(netNSNames []string) (inodes []string, err error) {
5252
for _, netNSName := range netNSNames {
53-
netNSPath := path.Join(NetNSPath, netNSName)
53+
sanitizedNetNSName := path.Base(netNSName)
54+
netNSPath := path.Join(NetNSPath, sanitizedNetNSName)
5455

5556
f, err := os.Open(netNSPath)
5657
if err != nil {
@@ -78,7 +79,8 @@ func getNetNsInodeFromBindMount(netNSNames []string) (inodes []string, err error
7879

7980
func getNetNsInodeFromSymlink(netNSNames []string) (inodes []string, err error) {
8081
for _, netNSName := range netNSNames {
81-
symlinkPath := path.Join(NetNSPath, netNSName)
82+
sanitizedNetNSName := path.Base(netNSName)
83+
symlinkPath := path.Join(NetNSPath, sanitizedNetNSName)
8284

8385
fileInfo, err := os.Stat(symlinkPath)
8486
if err != nil {

netns/netns_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,12 @@ func TestGetNetNsInodeFromSymlink(t *testing.T) {
221221
expected: nil,
222222
wantErr: false,
223223
},
224+
{
225+
name: "path exploits",
226+
netNSNames: []string{"../netns1", "../netns2"},
227+
expected: expectedInodes,
228+
wantErr: false,
229+
},
224230
}
225231

226232
// Temporarily replace the NetNSPath global variable

0 commit comments

Comments
 (0)