Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit 9129db3

Browse files
author
huntr.dev | the place to protect open source
authored
Merge pull request #1 from d3m0n-r00t/master
Fixed Arbitrary code execution in tensorlayer
2 parents 93905f0 + 0707e18 commit 9129db3

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

tensorlayer/files/utils.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import pickle
1111
import re
1212
import shutil
13-
# import ast
13+
import ast
1414
import sys
1515
import tarfile
1616
import time
@@ -231,25 +231,25 @@ def eval_layer(layer_kwargs):
231231
layer_type = args.pop('layer_type')
232232
if layer_type == "normal":
233233
generate_func(args)
234-
return eval('tl.layers.' + layer_class)(**args)
234+
return ast.literal_eval('tl.layers.' + layer_class)(**args)
235235
elif layer_type == "layerlist":
236236
ret_layer = []
237237
layers = args["layers"]
238238
for layer_graph in layers:
239239
ret_layer.append(eval_layer(layer_graph))
240240
args['layers'] = ret_layer
241-
return eval('tl.layers.' + layer_class)(**args)
241+
return ast.literal_eval('tl.layers.' + layer_class)(**args)
242242
elif layer_type == "modellayer":
243243
M = static_graph2net(args['model'])
244244
args['model'] = M
245-
return eval('tl.layers.' + layer_class)(**args)
245+
return ast.literal_eval('tl.layers.' + layer_class)(**args)
246246
elif layer_type == "keraslayer":
247247
M = load_keras_model(args['fn'])
248248
input_shape = args.pop('keras_input_shape')
249249
_ = M(np.random.random(input_shape).astype(np.float32))
250250
args['fn'] = M
251251
args['fn_weights'] = M.trainable_variables
252-
return eval('tl.layers.' + layer_class)(**args)
252+
return ast.literal_eval('tl.layers.' + layer_class)(**args)
253253
else:
254254
raise RuntimeError("Unknown layer type.")
255255

0 commit comments

Comments
 (0)