export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);
if (user.id !== resource.ownerId)
throw new ForbiddenError('IDOR');
const token = process.env.STRIPE_SECRET_KEY;
db.query('SELECT * FROM users WHERE id=$1',[id]);
const hits = await osv.queryBatch(deps);
$ semgrep scan --config p/security-audit
jwt.verify(t, secret, { algorithms:['HS256'] });
if (severity==='critical') verdict='do-not-ship';
const clean = DOMPurify.sanitize(input);
await rateLimit(ip); // anti fuerza-bruta
// CWE-89: consulta parametrizada
finding.cvss = computeCVSS(finding);
res.setHeader('Content-Security-Policy', csp);
const box = new Docker({ network: 'none' });
fetch(validateUrl(target)); // SSRF guard
finding.validated = await reproduce(poc);
[P0] Clave de API expuesta al navegador
status: 403 Forbidden
+ resueltos: 8 ~ nuevos: 2 = abiertos: 4
rotate(secret); // asumir comprometido
export async function scanRepo(url) {
const files = await ingestGithub(target);