Lockfile Faltante (Config de Proyecto)
Un proyecto sin un lockfile commiteado puede instalar diferentes versiones de dependencias en cada máquina, haciendo builds no reproducibles y ataques de supply chain más difíciles de detectar.
Cómo Funciona
Este problema extiende la verificación de lockfile de supply chain (ID 141) a la perspectiva de configuración del proyecto. Sin un lockfile en la raíz del repo, tu CI, builds de Docker y nuevas máquinas de desarrolladores resuelven versiones de dependencias de forma independiente.
# MAL: package-lock.json listado en .gitignore
# .gitignore
package-lock.json
yarn.lock
pnpm-lock.yaml
# npm install en CI jala lo que sea que esté disponible — no determinístico# BIEN: lockfile commiteado, CI usa 'npm ci' para instalaciones reproducibles
# .gitignore — lockfiles NO listados
# Dockerfile
COPY package.json package-lock.json ./
RUN npm ci --only=production # falla si el lockfile no coincide con package.jsonEjemplo Real
Los proyectos que ponen en gitignore su lockfile frecuentemente descubren divergencia de dependencias — diferentes miembros del equipo corriendo diferentes versiones del mismo paquete, llevando a bugs de 'funciona en mi máquina' y postura de seguridad inconsistente entre entornos.
Cómo Prevenirlo
- Elimina package-lock.json de .gitignore inmediatamente si está ahí
- Commitea el lockfile y usa npm ci en todos los builds de CI/CD y Docker
- Configura npm para siempre generar un lockfile: agrega 'package-lock=true' a .npmrc
- Periódicamente corre npm audit con el lockfile para detectar vulnerabilidades en versiones fijadas
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Sin Archivo .env.example
lowSin un archivo .env.example, los nuevos colaboradores no saben qué variables de entorno se requieren, lo que lleva a soluciones inseguras como hardcodear valores.
Sin Linting de Seguridad
lowSin reglas de ESLint orientadas a seguridad, vulnerabilidades comunes como sinks XSS, dangerouslySetInnerHTML y uso de eval() pasan desapercibidas en code review.
Sin Git Hooks de Seguridad
lowSin hooks de pre-commit que escaneen en busca de secrets y problemas de seguridad, los desarrolladores pueden accidentalmente pushear API keys y contraseñas al repositorio.
.gitignore Inadecuado
mediumUn .gitignore que no cubre archivos .env, artefactos de build y configuraciones de IDE puede llevar a que secrets o datos sensibles sean accidentalmente commiteados.