1
1
import go
2
2
3
+ /**
4
+ * Provide File system access sinks of [fasthttp](https://github.com/valyala/fasthttp) web framework
5
+ */
3
6
class FastHttpFileSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
4
7
FastHttpFileSystemAccess ( ) {
5
8
exists ( DataFlow:: Method mcn |
@@ -33,6 +36,9 @@ class FastHttpFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNo
33
36
}
34
37
}
35
38
39
+ /**
40
+ * Provide File system access sinks of `net/http` package
41
+ */
36
42
class HttpServeFile extends FileSystemAccess:: Range , DataFlow:: CallNode {
37
43
HttpServeFile ( ) {
38
44
exists ( DataFlow:: Function mcn |
@@ -44,6 +50,9 @@ class HttpServeFile extends FileSystemAccess::Range, DataFlow::CallNode {
44
50
override DataFlow:: Node getAPathArgument ( ) { result = this .getArgument ( 2 ) }
45
51
}
46
52
53
+ /**
54
+ * Provide File system access sinks of [beego](https://github.com/beego/beego) web framework
55
+ */
47
56
class BeegoFileSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
48
57
BeegoFileSystemAccess ( ) {
49
58
exists ( DataFlow:: Method mcn |
@@ -67,6 +76,9 @@ class BeegoFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode
67
76
}
68
77
}
69
78
79
+ /**
80
+ * Provide File system access sinks of [beego](https://github.com/beego/beego) web framework
81
+ */
70
82
class EchoFileSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
71
83
EchoFileSystemAccess ( ) {
72
84
exists ( DataFlow:: Method mcn |
@@ -78,6 +90,9 @@ class EchoFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode {
78
90
override DataFlow:: Node getAPathArgument ( ) { result = this .getArgument ( 0 ) }
79
91
}
80
92
93
+ /**
94
+ * Provide File system access sinks of [gin](https://github.com/gin-gonic/gin) web framework
95
+ */
81
96
class GinFileSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
82
97
GinFileSystemAccess ( ) {
83
98
exists ( DataFlow:: Method mcn |
@@ -94,6 +109,9 @@ class GinFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode {
94
109
}
95
110
}
96
111
112
+ /**
113
+ * Provide File system access sinks of [iris](https://github.com/kataras/iris) web framework
114
+ */
97
115
class IrisFileSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
98
116
IrisFileSystemAccess ( ) {
99
117
exists ( DataFlow:: Method mcn |
@@ -115,6 +133,9 @@ class IrisFileSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode {
115
133
}
116
134
}
117
135
136
+ /**
137
+ * Provide File system access sinks of [fiber](https://github.com/gofiber/fiber) web framework
138
+ */
118
139
class FiberSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
119
140
FiberSystemAccess ( ) {
120
141
exists ( DataFlow:: Method mcn |
@@ -133,6 +154,10 @@ class FiberSystemAccess extends FileSystemAccess::Range, DataFlow::CallNode {
133
154
}
134
155
}
135
156
157
+ /**
158
+ * Provide File system access sinks of [afero](https://github.com/spf13/afero) filesystem framework
159
+ * The Only Type that is not vulnerable to path traversal is `afero.IOFS`
160
+ */
136
161
class AferoSystemAccess extends FileSystemAccess:: Range , DataFlow:: CallNode {
137
162
AferoSystemAccess ( ) {
138
163
exists ( DataFlow:: Function mcn |
0 commit comments