Este parece ter sido um problema que existia no LShell 0.9.15, um shell restrito implementado em python.
A função vulnerável foi chamada check_path()
, que foi usada para verificar se um usuário tinha permissão para acessar o caminho fornecido na linha de comando.
O problema era que essa função usava eval()
como um meio de extrair aspas da linha de comando, e isso também executaria qualquer expressão python válida.
for item in line: # remove potential quotes try: item = eval(item) except: pass
Esse problema foi corrigido posteriormente na confirmação a seguir substituindo a chamada eval()
por uma substituição de expressão regular: link